cpu参数

Linux性能之CPU使用率

China☆狼群 提交于 2020-04-08 00:40:20
CPU使用率 Linux 通过 /proc 虚拟文件系统,向用户空间提供了系统内部状态的信息,而 /proc/stat 提供的就是系统的 CPU 和任务统计信息 proc - process information pseudo-file system 查询 man proc 关键指标常用参数 user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的 nice 时间,但包括了 guest 时间。 nice(通常缩写为 ni),代表低优先级用户态 CPU 时间,也就是进程的 nice 值被调整为 1-19 之间时的 CPU 时间。这里注意,nice 可取值范围是 -20 到 19,数值越大,优先级反而越低。 system(通常缩写为 sys),代表内核态 CPU 时间。 idle(通常缩写为 id),代表空闲时间。注意,它不包括等待 I/O 的时间(iowait)。 iowait(通常缩写为 wa),代表等待 I/O 的 CPU 时间。 irq(通常缩写为 hi),代表处理硬中断的 CPU 时间。 softirq(通常缩写为 si),代表处理软中断的 CPU 时间。 steal(通常缩写为 st),代表当系统运行在虚拟机中的时候,被其他虚拟机占用的 CPU 时间。 guest(通常缩写为 guest),代表通过虚拟化运行其他操作系统的时间,也就是运行虚拟机的

tensorflow - GPU 加速

旧街凉风 提交于 2020-04-07 10:16:17
首先检测是否可用 GPU import tensorflow as tf print('GPU', tf.test.is_gpu_available()) # GPU True tf.device Tensorflow 通过 tf.device 指定每个操作运行的设备,可以指定本地的 CPU、GPU,还可以指定远程服务器; Tensorflow 会给每个本地设备一个名称,如 /cpu:0,即使电脑有多块 CPU ,tf 不会做区分,统一叫 /cpu:0,而 如果有多块 GPU,第 n 块 GPU 叫 /gpu:n,n 从 0 开始; with tf.device('/cpu:0'): d1 = tf.Variable(1.) d2 = tf.Variable(2., name='d2') with tf.device('/gpu:0'): d3 = tf.add(d1, d2) with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: sess.run(tf.global_variables_initializer()) print(sess.run(d3)) log_device_placement tf 提供了 log_device_placement 来查看 计算在 哪个设备上运行;

CPU上下文切换

北城余情 提交于 2020-04-06 23:50:43
CPU上下文 在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄存器和程序计数器(Program Counter,PC)。 CPU 寄存器,是 CPU 内置的容量小、但速度极快的内存。而程序计数器,则是用来存储 CPU 正在执行的指令位置、或者即将执行的下一条指令位置。它们都是 CPU 在运行任何任务前,必须的依赖环境,因此也被叫做 CPU 上下文。 CPU 上下文切换 就是先把前一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来 加载新任务的上下文到这些寄存器和程序计数器 跳转到程序计数器所指的新位置,运行新任务。 根据任务的不同,CPU 的上下文切换就可以分为几个不同的场景,也就是进程上下文切换、线程上下文切换以及中断上下文切换。 进程和线程 进程是资源分配和执行的基本单位;线程是任务调度和运行的基本单位。线程没有资源,进程给指针提供虚拟内存、栈、变量等共享资源,而线程可以共享进程的资源。 进程上下文切换 Linux 按照特权等级,把进程的运行空间分为内核空间和用户空间。 CPU 特权等级的 Ring 0 和 Ring 3。 内核空间(Ring 0)具有最高权限,可以直接访问所有资源;用户空间(Ring 3)只能访问受限资源,不能直接访问内存等硬件设备,必须通过系统调用陷入到内核中

linux 调试常用命令

大兔子大兔子 提交于 2020-04-06 13:25:47
top 参数 1 ,查看多核cpu 也可用 mpstat -P ALL pstate PID 查看进程堆栈 pmap -x PID 查看进程 内存段 ldd XXX.so 查看 .so 的link 信息 linux 查看线程 方法一:PS 在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为<pid>的进程创建的所有线程。 1.$ ps -T -p <pid> 2 “SID”栏表示线程ID,而“CMD”栏则显示了线程名称。 方法二: Top top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。 1.$ top -H 2.要让top输出某个特定进程<pid>并检查该进程内运行的线程状况: $ top -H -p <pid> Linux系统下,大多数的性能监测工具保存在/proc目录下。这里我们将Linux AS 和 SUSE LINUX EnterpriseServer中的命令行及图形方式下的性能监测工具做概括性介绍。这些工具有些在系统工具盘里,有些可以从网上下载。sar,iostat,和pstat这三个工具在distributionCD里,也可以从网上下载,网址是 http://perso.wanadoo.fr

Linux终端监控工具之dstat

人盡茶涼 提交于 2020-04-06 08:42:37
1、安装 yum install dstat 2、示例 1)直接跟数字,表示#秒收集一次数据,默认为一秒;dstat 5表示5秒更新一次 这是默认输出显示的信息: CPU状态: CPU的使用率。这项报告更有趣的部分是显示了用户,系统和空闲部分,这更好地分析了CPU当前的使用状况。如果你看到"wait"一栏中,CPU的状态是一个高使用率值,那说明系统存在一些其它问题。当CPU的状态处在"waits"时,那是因为它正在等待I/O设备(例如内存,磁盘或者网络)的响应而且还没有收到。 磁盘统计: 磁盘的读写操作,这一栏显示磁盘的读、写总数。 网络统计: 网络设备发送和接受的数据,这一栏显示的网络收、发数据总数。 分页统计: 系统的分页活动。分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散,大多数情况下你都希望看到page in(换入)和page out(换出)的值是0 0。 系统统计: 这一项显示的是中断(int)和上下文切换(csw)。这项统计仅在有比较基线时才有意义。这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。 默认情况下,dstat每秒都会刷新数据。如果想退出dstat,你可以按"CTRL-C"键。 需要注意的是报告的第一行

计算机硬件知识整理

偶尔善良 提交于 2020-04-06 07:11:05
编程语言的作用及与操作系统和硬件的关系 答: 1) 编程语言可以让计算机(操作系统和硬件)产生智能. 2) 操作系统与硬件的关系:操作系统是位于硬件层上的第一层软件,它直接管理着计算机的硬件,合理组织计算机工作流程,并提高了硬件的利用率。。 应用程序-》操作系统-》硬件 答: 1) 应用程序是让操作系统管理的硬件(铁和石头)产生智能用的 2) 操作系统是用来管理让铁和石头做的硬件进行逻辑运算用的 3) 硬件是石头和铁做的 cpu-》内存-》磁盘 答: 磁盘是装花生的口袋,内存是抓花生的手,CPU是吃花生的嘴 cpu与寄存器,内核态与用户态及如何切换 答: 1) 用户态程序将一些数据值放在寄存器中, 或者使用参数创建一个堆栈(stack frame), 以此表明需要操作系统提供的服务. 2) 用户态程序执行陷阱指令 3) CPU切换到内核态, 并跳到位于内存指定位置的指令, 这些指令是操作系统的一部分, 他们具有内存保护, 不可被用户态程序访问 4) 这些指令称之为陷阱(trap)或者系统调用处理器(system call handler). 他们会读取程序放入内存的数据参数, 并执行程序请求的服务 5) 系统调用完成后, 操作系统会重置CPU为用户态并返回系统调用的结果 存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池 答:

c语言中的代码优化《转》

痴心易碎 提交于 2020-04-06 03:03:44
在性能优化方面永远注意80-20原则,即20%的程序消耗了80%的运行时间,因而我们要改进效率,最主要是考虑改进那20%的代码。不要优化程序中开销不大的那80%,这是劳而无功的。 第一招:以空间换时间   计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值: 方法A:通常的办法 #define LEN 32 char string1 [LEN]; memset (string1,0,LEN); strcpy (string1,"This is a example!!"); 方法B: const char string2[LEN] ="This is a example!"; char * cp; cp = string2 使用的时候可以直接用指针来操作。 从上面的例子可以看出,A和B的效率是不能比的。在同样的存储空间下,B直接使用指针就可以操作了,而A需要调用两个字符函数才能完成。B的缺点在于灵活 性没有A好。在需要频繁更改一个字符串内容的时候,A具有更好的灵活性;如果采用方法B,则需要预存许多字符串,虽然占用了大量的内存,但是获得了程序执 行的高效率。 如果系统的实时性要求很高,内存还有一些,那我推荐你使用该招数。 第二招: 使用宏而不是函数。   这也是第一招的变招

计算机基础

亡梦爱人 提交于 2020-04-06 00:32:10
一、为何要学习计算机基础?       Python是一门编程语言,即通俗一点说就是语言。     程序用编程语言来写程序,最终开发的结果就是一个软件。 操作系统 是出现在硬件之上的,是用来 控制硬件的。 所以,我们开发时只需要 调用操作系统为我们提供的简单的接口 就可以了。    如上图所示,我把计算机的系统分为了上面三大块。 硬件,操作系统,应用程序 。 二、计算机硬件介绍 1. 硬件 的目的:为了运行软件给它的一些指令。我们可以优先从硬件中提取出这三个主要的东西,分别是: CPU,内存,硬盘 在计算机中,用来计算的是什么呢?当然是 CPU 了。多数CPU都有两种模式,即内核态与用户态。这里的即内核态与用户态将会在下面的内容中讲到。     CPU是人的大脑,负责运算        内存是人的记忆,负责临时存储        硬盘是人的笔记本,负责永久存储        输入设备是人的耳朵或眼睛,负责接受外部的信息传给CPU        以上所有的设备都通过总线连接,总线相当于人的神经 总线示意图 三、处理器(寄存器及内核态与用户态切换)     1.计算机的大脑是CPU,它从内存中取指令-▶解码-▶执行,然后在取指令,解码,执行,周而复始,直至整个程序被执行完成。    2. 寄存器是一个存储设备, 最快的一种存储设备 就是寄存器。 3.寄存器的分类      

Linux终端下 dstat 监控工具

家住魔仙堡 提交于 2020-04-06 00:20:28
dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。 dstat可以让你实时地看到所有系统资源,例如,你能够通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内)。 dstat将以列表的形式为你提供选项信息并清晰地告诉你是在何种幅度和单位显示输出。这样更好地避免了信息混乱和误报。更重要的是,它可以让你更容易编写插件来收集你想要的数据信息,以从未有过的方式进行扩展。 Dstat的默认输出是专门为人们实时查看而设计的,不过你也可以将详细信息通过CSV输出到一个文件,并导入到Gnumeric或者Excel生成表格中。 特性 结合了vmstat,iostat,ifstat,netstat以及更多的信息 实时显示统计情况 在分析和排障时可以通过启用监控项并排序 模块化设计 使用python编写的,更方便扩展现有的工作任务 容易扩展和添加你的计数器(请为此做出贡献) 包含的许多扩展插件充分说明了增加新的监控项目是很方便的 可以分组统计块设备/网络设备,并给出总数 可以显示每台设备的当前状态 极准确的时间精度,即便是系统负荷较高也不会延迟显示

买VPS,CPU和内存哪个重要?

百般思念 提交于 2020-04-05 22:04:23
转载请注明出处: 买VPS,CPU和内存哪个重要? 许多新手,包括之前的我,买VPS时总有一个疑问:CPU和内存哪个重要?哪个对系统的性能影响更大? 内存比CPU重要 永远不会错的答案是:分用途和场景。然而根据本人多年的测试和实践,得出的答案是: 绝大部分情况下内存比较重要,尽量购买内存大/内存主频高的VPS 。 得出这样一个结论,有以下依据支持: 本人之前跑科学计算程序,同样的编译参数, 2.2G CPU、1600MHz DDR3内存 的Mac笔记本竟然比 3.5G CPU、1333MHz DDR3内存 的服务器运行更快。该程序不涉及到硬盘读写,只用到CPU和内存,(大概率)说明快的内存可能比高主频的CPU更重要(程序为memory-bounded型); 本人见过很多个人或小企业建网站,上来就买4核8G的服务器。然而大半年过去了,网站的日ip仅有寥寥几十不到百,白白浪费钱;本人也见过1核1G内存搭配swap的VPS, 配置好缓存后 ,稳稳承载日ip上万的网站;查看系统状态,除了内存紧张,cpu大多时间都比较空闲; cpu性能不够,最多只是慢;内存(加swap)不够,那可是会让服务崩盘的。内存不够时,OOM killer大概率就先把数据库、Redis等重要服务杀死,然后服务就GG了。前几天很火的新闻: Redis 官网昨日宕机,错误提示为无法连接 Redis ,就说明内存有多重要;