cpu参数

设计模式之建造者模式

旧街凉风 提交于 2019-12-24 09:18:41
建造者模式是日常开发中比较常见的设计模式,它的主要作用就是将复杂事物创建的过程抽象出来,该抽象的不同实现方式不同,创建出的对象也不同。通俗的讲,创建一个对象一般都会有一个固定的步骤,这个固定的步骤我们把它抽象出来,每个抽象步骤都会有不同的实现方式,不同的实现方式创建出的对象也将不同。举个常见的例子,想必大家都买过电脑,电脑的生产或者组装其实就是属于建造者模式,我们知道,电脑的生产都需要安装CPU、内存条、硬盘等元器件。我们可以把这个安装步骤抽象出来,至于到底装哪种CPU,比如i5还是i7就是对该抽象安装步骤的具体实现。 建造者模式分为两种,一种为经典建造者模式,另一种为变种建造者模式。我们来挨个看下: 经典Builder模式 我们先来看下经典Builder模式,先上UML类图: 从上图可以看到,经典Buider模式中有四个角色: 要建造的产品Product – 组装的电脑 抽象的Builder – 装CPU、内存条、硬盘等抽象的步骤 Builder的具体实现ConcreteBuilder – 对上述抽象步骤的实现,比如装i5CPU、8G内存条、1T硬盘 使用者Director – 电脑装机人员 接下来我们来看下用代码如何实现上述组装电脑的过程: 1.首先我们先来创建一个Computer类: public class Computer { /*CPU*/ private String

全能系统监控工具dstat

两盒软妹~` 提交于 2019-12-22 11:31:22
一、什么是dstat? 通过man帮助,可以看到官方对dstat的定义为:多功能系统资源统计生成工具( versatile tool for generating system resource statistics)。在获取的信息上有点类似于top、free、iostat、vmstat等多个工具的合集,官方解释为vmstat、iostat、ifstat等工具的多功能替代品,且添加了许多额外的功能(Dstat is a versatile replacement for vmstat, iostat and ifstat. Dstat overcomes some of the limitations and adds some extra features.);其结果可以保持到csv文件,使用脚本或第三方工具对性能进行分析利用(如通过监控平台监控,也可以保持到数据库)。在Centos 6.x系统上安装基本服务器即默认安装,而在其他操作系统可能需要手动安装。 二、dstat的基本使用: 2.1 dstat的默认选项 与许多命令一样,dstat命令有默认选项,执行dstat命令不加任何参数,它默认会收集-cpu-、-disk-、-net-、-paging-、-system-的数据,一秒钟收集一次。 默认输入 dstat 等于输入了dstat -cdngy 1或dstat -a 1。

Linux下查看CPU信息[/proc/cpuinfo]

牧云@^-^@ 提交于 2019-12-22 09:20:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近在研究linux系统负载的时候,接触到一些关于CPU信息查看的知识,和大家分享一下。通过对/proc/cpuinfo文件中的参数的分析,也学到了不少东西。 在linux操作系统中,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo 查看一下: 上图是本人电脑的CPU信息,下面我们来分析其中几个比较重要的指标: processor 逻辑处理器的id。 physical id 物理封装的处理器的id。 core id 每个核心的id。 cpu cores 位于相同物理封装的处理器中的内核数量。 siblings 位于相同物理封装的处理器中的逻辑处理器的数量。 我们返回去看上图,我的physical id 都为0,说明我只有一个物理处理器; 我的processor有两个不同的编号,并且同属于一个physical id,同时cpu cores 的值为2,这也就说明了我的CPU是双核心的,并且每个核心只有一个逻辑处理器。 为了加深大家对这几个参数的理解,我们再来看另外一张图片,这是一台工作站的服务器: 在这个服务器上,'cpu cores' 为4,physical id 有两个,core id有8个,siblings的值为8

【讲清楚,说明白!】资源管理三板斧之--htop、vmstat、dstat

只愿长相守 提交于 2019-12-21 23:19:01
目录: (一)htop命令 (二)vmstat命令 (三)pmap命令 (四)glances命令 (五)dstat命令 (一)htop命令 (1.1)EPEL(Extra Packages for Enterprise Linux)是由Fedora社区打造,为RHEL及衍生发行版如CentOS等提供高质量软件包的项目。装上了EPEL,就像在Fedora上一样,可以通过yum install的方式安装,即可安装很多以前需要编译安装的软件、常用的软件或一些比较流行的软件,比如现在流行的nginx、htop、ncdu、vnstat等等,都可以使用EPEL很方便的安装更新。 (1.2)在管理进程时通常要借助一些工具,比较常用的就是ps和top了,不过CentOS还为我们提供了一个更加强大的工具htop,htop是一个Linux下的交互式的进程浏览器,可以用来替换Linux下的top命令。我们使用CentOS 7系统,并通过aliyun下载epel源,按照如下的操作方式进行。 # cd /etc/yum.repos.d/---进入到/etc/yum.repos.d/目录 # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup---将CentOS-Base.repo重命名为CentOS

iOS Instruments Time Profiler

跟風遠走 提交于 2019-12-21 19:11:30
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Time Profiler 有两种方式可以打开Time Profiler 。我们先来介绍第一种: 一、从Debug 界面打开Time Profiler 1)首先打开Xcode,在编译成功后运行App,这里测试Demo是选择在游伴项目中直接添加一部分进行测试,打开Debug面板,如下图所示。 @测试代码中主要是增加了两个for循环,为了方便Time Profiler分析。 2)右键点击图片左侧中的CPU,显示如下界面 @(1) : 图片右侧红色线框圈住的部分。CPU占用百分比。这里是刚启动的时候,CPU占用比较高。CPU 最大为400%,这里可以认为是MAC机器的CPU共计400%,但只分配给Simulator 100%。 @(2) : 图片右侧蓝色线框圈住的部分。CPU使用的比较。由于是用Simulator进行演示分析,这里有MAC机器的其他程序也在运行。可以看到紫色部分是我们的项目MSGS占用98%,Other Processes可以忽略不计。 @(3) : 图片右侧紫色线框圈住的部分。CPU启动的时间。这里有三个参数。 Duration:CPU运行时间 (7 sec) High: 最高占用比 (98%) Low: 最低占用比 (13%) @(4): 图片右侧黑色线框圈住的部分。各个线程占用CPU的详情

线程安全—可见性和有序性

馋奶兔 提交于 2019-12-21 18:57:04
在并发编程中,需要处理的两个关键问题: 线程之间如何通信 以及 线程之间如何同步 。 通信 是指线程之间以或者机制交换信息,java的并发采用的是共享内存模型,线程之间共享程序的公共状态,通过读写内存中的公共状态进行隐式通信。 同步 是是指程序中用于控制不同线程间操作发生相对顺序的机制。 最开始首先应该知道计算机中的 缓存 在其中起的作用 CPU Cache(高速缓存):由于计算机的存储设备与处理器的处理设备有着几个数量级的差距,所以现代计 算机都会加入一层读写速度与处理器处理速度接近相同的高级缓存来作为内存与处理器之间的缓冲,将运 算使用到的数据复制到缓存中,让运算能够快速的执行,当运算结束后,再从缓存同步到内存之中,这 样,CPU就不需要等待缓慢的内存读写了。 主(内)存:一个计算机包含一个主存,所有的CPU都可以访问主 存,主存比缓存容量大的多(CPU访问缓存层的速度快于访问主存的速度!但通常比访问内存寄存器的速度还是要慢点) 运作原理:通常情况下,当一个CPU要读取主存(RAM - Main Mernory)的时候,他会将主存中的数据读 取到CPU缓存中,甚至将缓存内容读到内部寄存器里面,然后再寄存器执行操作,当运行结束后,会 将寄存器中的值刷新回缓存中,并在某个时间点将值刷新回主存。 为什么需要CPU Cache? 答:CPU 的频率太快了,快到主存跟不上

使用多线程的准备知识

旧巷老猫 提交于 2019-12-21 07:21:47
一、为什么要使用多线程? 【使计算机所有资源在执行任务的时候能够全部利用上,以提升计算机资源利用率的方式来提升系统执行效率】   CPU的单核运行速度由于硬件技术问题已经遇到瓶颈,而概念性的“光脑”貌似离我们还很遥远,现在的计算机性能提升方向是向多核发展。多核同时工作,协同完成任务。大家熟知的神威·太湖之光超级计算机总共使用了40960颗处理器,总计拥有10649600颗核心、1.31PB内存。即使是目前市场上的主流家用电脑也一般达到四核心八线程的配置标准。那么对于这些多核的CPU, 在开发软件的时候就不得不考虑如何充分利用上每一个核的性能,以至于使系统运行的效率更高。 二、CPU是执行的是线程任务还是进程任务? 【CPU执行的是线程中定义的任务】 进程是对内存资源的抽象,线程是对执行任务的抽象。 CPU执行的是线程任务 ,和进程没有任何关系。所以, CPU中的核在任意时间点只能执行某一个线程的任务 ,具体执行哪个线程就要看操作系统的任务调度策略。 在单核多线程任务中,操作系统会把CPU资源按照时间片划分,根据线程的优先级选择线程进行执行任 务。 三、 程序中线程的数量控制在核数的1~2倍对吗? 【不对!】 左图为工作时win10 四核八线程 线程数: 2094。右图为闲置centos7 单核 线程数 :127 。 线程数量远远超过CPU核心数量的上百倍 。 所以在开发程序过程中

Rancher入门到精通-2.0 [alert] 2984#0: 1024 worker_connections are not enough

China☆狼群 提交于 2019-12-21 06:51:20
进到容器内部查看nginx.cnf cat /etc/nginx/nginx.conf \ nginx 连接数 太小; nginx的连接数,有以下两个参数决定,分别是:worker_rlimit_nofile 和 worker_connections 1. 设置 nginx要开启的进程数 worker_processes 一般等于cpu的总核数 其实一般情况下开4个或8个,通过下面命令查看 设置 worker_processes 12; CPU总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq 2.设置nginx 每个进程连接数 worker_connections 这个参数表示每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为 worker_processes * worker_connections, 其中,如果nginx系统服务器是12核cpu,所以worker_processes参数=12。 而查看worker_connections,我们发现,配置的是默认的102 来源: CSDN 作者

【硬件】- 英特尔CPU命名规则

倖福魔咒の 提交于 2019-12-21 04:47:16
前言 一款 Intel CPU的命名,一般由5个部分组成:品牌,品牌标识符,Gen标识,SKU数值,产品线后缀 。 以下图为例; 品牌 英特尔旗下处理器有许多子品牌,包括我们熟悉的凌动(ATOM)、赛扬(CELERON)、奔腾(PENTIUM)、酷睿(CORE)、至强(XEON)等。 凌动(ATOM) 是移动端处理器,用于平板、手机。 赛扬(CELERON)、奔腾(PENTIUM)、酷睿(CORE) 属于桌面级(包括笔记本电脑),多用于台式机和笔记本电脑。 至强(XEON) 则属于企业级,多用于服务器和工作站。 品牌标识符 用于区分产品的定位 。以酷睿为例,有i3、 i5、 i7,分别代表了品牌定位低、中、高端。 一般来说,性能方面i3<i5<i7, 但是不意味着一定是i3<i5<i7 ,因为当到某一款具体的CPU,可能会有性能方面低段位cpu>高段位cpu的情况,举个极端一点的例子,在性能上,i5 7600K > i7 2600K。 Gen标识 Gen是Generation的缩写,也就是平常我们所说的“第几代”。 截止目前,Intel最新一代CPU是第七代“Kaby Lake”。 跟旧的一代相比,新的一代意味着更好的制作工艺、设计,所以也意味着更强的性能。但是当到某一款具体的CPU,不意味着前一代的CPU一定弱于后一代 ,比如 i5 6600K > i5 7500。 SKU数值

计算机基础系列一:计算机硬件

 ̄綄美尐妖づ 提交于 2019-12-21 04:41:30
一 为何要学习计算机基础 python是编程语言,即python是语言 语言有英语、法语、葡萄牙语等,但凡是语言,都是用来沟通的介质。 程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质 程序员要想让计算机工作,必须知道计算机能干什么,怎么干的,这也就是我们必须学习计算机基础的原因 然而光有编程语言和硬件也并不能满足大家的编程需求,为什么这么说呢? 程序用编程语言写程序,最终开发出的结果就是一个软件,既然是软件,那就与腾讯qq、暴风影音、快播等软件没有区别了。这些软件必须运行在操作系统之上,你肯定会问:为何要有操作系统呢?没错,远古时代的程序员确实是在没有操作系统的环境下,用编程语言之间操作硬件来编程的,你可能觉得这没有问题,但其实问题是相当严重的,因为此时你必须掌握如何操作硬件的所有具体细节,比如如何具体操作硬盘(现在你得把硬盘拆开,然后你能看见的所有的东西,你都得研究明白,因为你编程时要用到它),这就严重影响了开发的效率,操作系统的出现就是运行于硬件之上,来控制硬件的,我们开发时,只需要调用操作系统为我们提供的简单而优雅的接口就可以了 所以一套完整的计算机系统分为:计算机硬件,操作系统,应用软件,如下图。因而我们的python编程之路分为计算机硬件基础,操作系统基础,和python编程三部分,就让我们先从计算机硬件学起吧 二 本节目标