linux cpu使用率怎么把cpu搜索跑80

linux怎么查看cpu使用率取整_百度知道
linux怎么查看cpu使用率取整
我有更好的答案
html" target="_blank">http://jingyan.baidu.com/article/636f38bbb84610af。可以参考:<a href="http://jingyan.baidu.com/article/636f38bbb84610af,方法 有很多的linux查cpu使用率
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。1249人阅读
大数据(61)
性能优化:
就是找到系统处理中的瓶颈以及去除这些的过程,性能优化其实是对OS 各子系统达到一种平衡的定义,这些子系统包括了:
CPU Memory IO Network
这些子系统之间关系是相互彼此依赖的,任何一个高负载都会导致其他子系统出现问题.比如:
大量的页调入请求导致内存队列的拥塞 网卡的大吞吐量可能导致更多的 CPU开销
大量的CPU开销又会尝试更多的内存使用请求
大量来自内存的磁盘写请求可能导致更多的 CPU 以及 IO问题
所以要对一个系统进行优化,查找瓶颈来自哪个方面是关键,虽然看似是某一个子系统出现问题,其实有可能是别的子系统导致的.1.1 确定应用类型
基于需要理解该从什么地方来入手优化瓶颈,首先重要的一点,就是理解并分析当前系统的特点,多数系统所跑的应用类型,主要为2种:
IO Bound(译注:IO 范畴): 在这个范畴中的应用,一般都是高负荷的内存使用以及存储系统,这实际上表示IO 范畴的应用,就是一个大量数据处理的过程.IO 范畴的应用不对CPU以及网络发起更多请求(除非类似NAS这样的网络存储硬件).IO 范畴的应用通常使用CPU 资源都是为了产生IO 请求以及进入到内核调度的sleep 状态.通常数据库软件(译注:mysql,oracle等)被认为是IO 范畴的应用类型.CPU Bound(译注:CPU 范畴): 在这个范畴中的应用,一般都是高负荷的CPU 占用. CPU 范畴的应用,就是一个批量处理CPU 请求以及数学计算的过程.通常web server,mail server,以及其他类型服务被认为是CPU 范畴的应用类型.1.2 确定基准线统计
系统利用率情况,一般随管理员经验以及系统本身用途来决定.唯一要清楚的就是,系统优化希望达成什么效果,以及哪些方面是需要优化,还有参考值是什么?因此就建立一个基准线,这个统计数据必须是系统可用性能状态值,用来比较不可用性能状态值.
在以下例子中,1个系统性能的基准线快照,用来比较当高负荷时的系统性能快照.
# vmstat 1
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy wa id
1 0 32 244 0 0 1 18 109 19 2 1 1 96
0 0 32 244 0 0 0 0 105 46 0 1 0 99
0 0 32 244 0 0 0 0 198 62 40 14 0 45
0 0 32 244 0 0 0 0 117 49 0 0 0 100
0 0 24 244 0 0 0 176 220 938 3 4 13 80
0 0 24 244 0 0 0 0 358
1 0 24 244 0 0 0 0 368
0 0 24 244 0 0 0 0 352
# vmstat 1
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy wa id
2 0 52 592 0 1 1 18 109 19 2 1 1 96
2 0 56 652 0 0 0 468 789 108 86 14 0 0
3 0 84 640 0 360 0 360 498 71 91 9 0 0
2 0 64 788 0 340 0 340 672 41 87 13 0 0
2 0 88 452 0 740 0
2 0 48 580 0 720 0 720 690 41 96 4 0 0
2 0 44 592 0 720 0 720 605 44 95 5 0 0
2 0 00 260 0 372 0 372 639 45 81 19 0 0
2 0 92 412 0 372 0 372 457 47 90 10 0 0
从上面第一个结果可看到,最后一列(id) 表示的是空闲时间,我们可以看到,在基准线统计时,CPU 的空闲时间在79% - 100%.在第二个结果可看到,系统处于100%的占用率以及没有空闲时间.从这个比较中,我们就可以确定是否是CPU 使用率应该被优化.2.0 CPU 介绍
CPU 利用率主要依赖于是什么资源在试图存取.内核调度器将负责调度2种资源种类:线程(单一或者多路)和中断.调度器去定义不同资源的不同优先权.以下列表从优先级高到低排列:
Interrupts(译注:中断) - 设备通知内核,他们完成一次数据处理的过程.例子,当一块网卡设备递送网络数据包或者一块硬件提供了一次IO 请求.Kernel(System) Processes(译注:内核处理过程) - 所有内核处理过程就是控制优先级别.User Processes(译注:用户进程) - 这块涉及"userland".所有软件程序都运行在这个user space.这块在内核调度机制中处于低优先级.
从上面,我们可以看出内核是怎样管理不同资源的.还有几个关键内容需要介绍,以下部分就将介绍context(译注:上下文切换),run queues(译注:运行队列)以及utilization(译注:利用率).2.1 上下文切换
多数现代处理器都能够运行一个进程(单一线程)或者线程.多路超线程处理器有能力运行多个线程.然而,Linux 内核还是把每个处理器核心的双核心芯片作为独立的处理器.比如,以Linux 内核的系统在一个双核心处理器上,是报告显示为两个独立的处理器.
一个标准的Linux 内核可以运行50 至 50,000 的处理线程.在只有一个CPU时,内核将调度并均衡每个进程线程.每个线程都分配一个在处理器中被开销的时间额度.一个线程要么就是获得时间额度或已抢先获得一些具有较高优先级(比如硬件中断),其中较高优先级的线程将从区域重新放置回处理器的队列中.这种线程的转换关系就是我们提到的上下文切换.
每次内核的上下文切换,资源被用于关闭在CPU寄存器中的线程和放置在队列中.系统中越多的上下文切换,在处理器的调度管理下,内核将得到更多的工作.2.2 运行队列
每个CPU 都维护一个线程的运行队列.理论上,调度器应该不断的运行和执行线程.进程线程不是在sleep 状态中(译注:阻塞中和等待IO中)或就是在可运行状态中.如果CPU 子系统处于高负荷下,那就意味着内核调度将无法及时响应系统请求.导致结果,可运行状态进程拥塞在运行队列里.当运行队列越来越巨大,进程线程将花费更多的时间获取被执行.
比较流行的术语就是"load",它提供当前运行队列的详细状态.系统 load 就是指在CPU 队列中有多少数目的线程,以及其中当前有多少进程线程数目被执行的组合.如果一个双核系统执行了2个线程,还有4个在运行队列中,则 load 应该为 6. top 这个程序里显示的load averages 是指1,5,15 分钟以内的load 情况.2.3 CPU 利用率
CPU 利用率就是定义CPU 使用的百分比.评估系统最重要的一个度量方式就是CPU 的利用率.多数性能监控工具关于CPU 利用率的分类有以下几种:
User Time(译注:用户进程时间) - 关于在user space中被执行进程在CPU 开销时间百分比.System Time(译注:内核线程以及中断时间) - 关于在kernel space中线程和中断在CPU 开销时间百分比.Wait IO(译注:IO 请求等待时间) - 所有进程线程被阻塞等待完成一次IO 请求所占CPU 开销idle的时间百分比.Idle(译注:空闲) - 一个完整空闲状态的进程在CPU 处理器中开销的时间百分比.3.0 CPU 性能监控
理解运行队列,利用率,上下文切换对怎样CPU 性能最优化之间的关系.早期提及到,性能是相对于基准线数据的.在一些系统中,通常预期所达到的性能包括:
Run Queues - 每个处理器应该运行队列不超过1-3 个线程.例子,一个双核处理器应该运行队列不要超过6 个线程.CPU Utiliation - 如果一个CPU 被充分使用,利用率分类之间均衡的比例应该是
65% - 70% User Time 30% - 35% System Time
0% - 5% Idle Time
Context Switches - 上下文切换的数目直接关系到CPU 的使用率,如果CPU 利用率保持在上述均衡状态时,大量的上下文切换是正常的.
很多Linux 上的工具可以得到这些状态值,首先就是 vmstat 和 top 这2个工具.3.1 vmstat 工具的使用
vmstat 工具提供了一种低开销的系统性能观察方式.因为 vmstat 本身就是低开销工具,在非常高负荷的服务器上,你需要查看并监控系统的健康情况,在控制窗口还是能够使用vmstat 输出结果.这个工具运行在2种模式下:average 和 sample 模式.sample 模式通过指定间隔时间测量状态值.这个模式对于理解在持续负荷下的性能表现,很有帮助.下面就是
vmstat 运行1秒间隔的示例:
# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 5 26 7 14 4 1 95 0
Table 1: The vmstat CPU statistics
Field Description (显示参数定义)
a.r列表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,就说明CPU资源不足,可以考虑增加CPU;
b.b列表示在等待资源的进程数,比如正在等待I/O或者内存交换等。
a.swpd列表示切换到内存交换区的内存数量(以KB为单位)。如果swpd的值不为0或者比较大,而且si、so的值长期为0,那么这种情况一般不用担心,不会影响系统性能;
b.free列表示当前空闲的物理内存数量(以KB为单位);
c.buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲;
d.cache列表示page cached的内存数量,一般作文件系统的cached,频繁访问的文件都会被cached。如果cached值较大,就说明cached文件数较多。如果此时IO中的bi比较小,就说明文件系统效率比较好。
a.si列表示由磁盘调入内存,也就是内存进入内存交换区的数量;
b.so列表示由内存调入磁盘,也就是内存交换区进入内存的数量
c.一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足,需要考虑是否增加系统内存。
a.bi列表示从块设备读入的数据总量(即读磁盘,单位KB/秒)
b.bo列表示写入到块设备的数据总量(即写磁盘,单位KB/秒)
这里设置的bi+bo参考值为1000,如果超过1000,而且wa值比较大,则表示系统磁盘IO性能瓶颈。
a.in列表示在某一时间间隔中观察到的每秒设备中断数;
b.cs列表示每秒产生的上下文切换次数。
上面这两个值越大,会看到内核消耗的CPU时间就越多。
a.us列显示了用户进程消耗CPU的时间百分比。us的值比较高时,说明用户进程消耗的CPU时间多,如果长期大于50%,需要考虑优化程序啥的。
b.sy列显示了内核进程消耗CPU的时间百分比。sy的值比较高时,就说明内核消耗的CPU时间多;如果us+sy超过80%,就说明CPU的资源存在不足。
c.id列显示了CPU处在空闲状态的时间百分比;
d.wa列表示IO等待所占的CPU时间百分比。wa值越高,说明IO等待越严重。如果wa值超过20%,说明IO等待严重。
e.st列一般不关注,虚拟机占用的时间百分比。
3.2 案例学习:持续的CPU 利用率
在这个例子中,这个系统被充分利用
# vmstat 1
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy wa id
0 0 0 0 718 26 81 19 0 0
0 0 0 0 758 23 96 4 0 0
0 0 0 0 820 20 96 4 0 0
0 412 0 412 763 70 84 16 0 0
0 0 0 0 874 25 89 11 0 0
0 0 0 0 940 24 86 14 0 0
0 0 0 0 929 27 95 3 0 2
0 0 0 0 874 36 93 6 0 1
0 0 0 0 850 26 77 23 0 0
0 0 0 0 736 23 83 17 0 0
0 0 0 0 861 21 91 8 0 1
根据观察值,我们可以得到以下结论:
1,有大量的中断(in) 和较少的上下文切换(cs).这意味着一个单一的进程在产生对硬件设备的请求.
2,进一步显示某单个应用,user time(us) 经常在85%或者更多.考虑到较少的上下文切换,这个应用应该还在处理器中被处理.
3,运行队列还在可接受的性能范围内,其中有2个地方,是超出了允许限制.3.3 案例学习:超负荷调度
在这个例子中,内核调度中的上下文切换处于饱和
# vmstat 1
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy wa id
0 0 880 520 443 907 22 10 67 0
0 0 892 0 438
根据观察值,我们可以得到以下结论:
1,上下文切换数目高于中断数目,说明kernel中相当数量的时间都开销在上下文切换线程.
2,大量的上下文切换将导致CPU 利用率分类不均衡.很明显实际上等待io 请求的百分比(wa)非常高,以及user time百分比非常低(us).
3,因为CPU 都阻塞在IO请求上,所以运行队列里也有相当数目的可运行状态线程在等待执行.
vmstat是个动态的分析工具,利用它主要可以知道
:通过process的r,如果r大于cpu个数(队列出现等待)并且cpu idle过小(30%,那么说明cpu瓶颈
2 内存瓶颈:
2.1 看free很小了
2.2 每隔1秒观察一次,运行10次后,看swpd 的使用有无变话,如果迅速加大说明有可能磁盘不足
2.3 swap交换页面si,so频繁使用
总结:如果swpd迅速变大,si,so频繁使用,那么内存不足。
1 cpu wa( waitio)超过20%
2 bi,bo(块设备从ram 读入写磁盘) 读出写入量很大,超过2000
那么出现IO瓶颈
top指令详解
在使用top命令的时候会看到这么一行:
里面的各个值分别是什么意思呢?
今天被问到这个问题,发现答的不是很清楚。果然啊,天天用最多的top命令都还没摸透。。。惭愧。。。于是就查了些资料:
Cpu(s)表示的是cpu信息。各个值的意思是:
us: user cpu time (or) % CPU time spent in user space
sy: system cpu time (or) % CPU time spent in kernel space
ni: user nice cpu time (or) % CPU time spent on low priority processes
id: idle cpu time (or) % CPU time spent idle
wa: io wait cpu time (or) % CPU time spent in wait (on disk)
hi: hardware irq (or) % CPU time spent servicing/handling hardware interrupts
si: software irq (or) % CPU time spent servicing/handling software interrupts
st: steal time - - % CPU time in involuntary wait by virtual cpu while hypervisor is servicing another processor (or) % CPU time stolen from a virtual machine
翻译一下:
us:用户态使用的cpu时间比
sy:系统态使用的cpu时间比
ni:用做nice加权的进程分配的用户态cpu时间比
id:空闲的cpu时间比
wa:cpu等待磁盘写入完成时间
hi:硬中断消耗时间
si:软中断消耗时间
st:虚拟机偷取时间
好了,如果说列出上面的条条框框说我懂了,那真是自欺欺人了。下面是我自己的理解
首先这个百分比是怎么算出来的呢?
比如一秒内有100个cpu时间片,这个cpu时间片就是cpu工作的最小单位。那么这100个cpu时间片在不同的区域和目的进行操作使用,就代表这个区域所占用的cpu时间比。也就是这里得出的cpu时间百分比。
比如下面一个程序:
将文件从磁盘的src位置拷贝到磁盘的dst位置。文件会从src先读取进入到内核空间,然后再读取到用户空间,然后拷贝数据到用户空间的buf上,再通过用户空间,内核空间,数据才到磁盘的dst上。
所以从上面这个程序来看,cpu消耗在kernel space的时候就是sy(系统态使用的cpu百分比),cpu消耗在user space的时候就是us(用户态使用的cpu百分比)。
好了,下面说说hi和si
如果程序都没什么问题,那么是没有hi和si的,但是实际上有个硬中断和软中断的概念。比如硬中断,cpu在执行程序的时候,突然外设硬件(比如硬盘出现问题了)机器需要立刻通知cpu进行现场保存工作。这个时候会cpu会出现上下文切换。就是cpu会有一部分时间会被硬中断占用了,这个时间就是hi。相类似,si是软中断的cpu占用时间,软中断是由软件的指令方式触发的。
相关软中断和硬中断的概念可以参考:
ni是nice的意思,nice是什么呢,每个linux进程都有个优先级,优先级高的进程有优先执行的权利,这个叫做pri。进程除了优先级外,还有个优先级的修正值。即比如你原先的优先级是20,然后修正值为-2,那么你最后的进程优先级为18。这个修正值就叫做进程的nice值。
那么nice是一个进程的优先级修正值,为什么会占用cpu时间呢?
ni是指用做nice加权的进程使用的用户态cpu时间比,我的理解就是一个进程的所谓修正值就意味着多分配一些cpu时间给这个进程的用户态,这个中间所多分配的cpu时间就是我们这里的ni。(这个理解没啥把握,如果有错误麻烦帮忙指出下)
wa指的是CPU等待磁盘写入完成的时间,就是说前提是要进行IO操作,在进行IO操作的时候,CPU等待时间。比如上面那个程序,最后一步,从系统空间到dst硬盘空间的时候,如果程序是阻塞的,那么这个时候cpu就要等待数据写入磁盘才能完成写操作了。所以这个时候cpu等待的时间就是wa。
所以如果一台机器看到wa特别高,那么一般说明是磁盘IO出现问题,可以使用iostat等命令继续进行详细分析。
st的名字很生动,偷取。。。是专门对虚拟机来说的,一台物理是可以虚拟化出几台虚拟机的。在其中一台虚拟机上用top查看发现st不为0,就说明本来有这么多个cpu时间是安排给我这个虚拟机的,但是由于某种虚拟技术,把这个cpu时间分配给了其他的虚拟机了。这就叫做偷取。
剩下的id就是除了上面那么多cpu处理上下文以外的cpu时间片。当然在这些时间片上,cpu是空闲的。
top的所有这些cpu时间应该是相加为100%的。linux系统怎样查看服务器性能命令_百度知道
linux系统怎样查看服务器性能命令
我有更好的答案
5分钟,可以在1分钟内对系统资源使用情况有个大致的了解,CPU出于忙于执行指令, 19,而15分钟平均负载很低: Kill process 18694 (perl) score 246 or sacrifice child[1880957。上面例子中的输出,可以看见最近1分钟的平均负载非常高,且远高于最近15分钟负载。dmesg | tail$ dmesg | tail[150] perl invoked oom-killer: gfp_mask=0x280da, order=0。示例中的输出,可以看见一次内核的oom kill和一次TCP丢包。这些日志可以帮助排查性能问题。这些数据可以让我们对系统资源使用有一个宏观的了解。命令的输出分别表示1分钟.563408] Killed process 18694 (perl) total-vm:1972392kB, anon-rss:1953348kB, file-rss:0kB[447] TCP: Possible SYN flooding on port 7001. Dropping request.
Check SNMP counters.该命令会输出系统日志的最后10行:r:26 up 21:31,那么机器的CPU资源已经饱和。free通过执行以下命令。这些命令的输出,
load average.02, 26.43、15分钟的平均负载情况, id,也就是用户应用程序消耗了CPU时间:系统可用内存数(以千字节为单位),如果剩余内存不足,大量CPU时间消耗在用户态,需要结合r队列,有关这些命令更多的参数和说明,请参照命令的手册:这些都代表了CPU时间的消耗,它们分别表示用户时间(user),也会导致系统性能问题。下文介绍到的free命令.][这个命令可以快速查看机器的负载情况。千万不要忘了这一步.00
0..,可以让我们很快了解CPU是否出于繁忙状态。一般情况下,如果用户时间和系统时间相加非常大。示例命令的输出可以看见.00
0:38:50 PM
0.9907:38:50 PM
2.0007:38:50 PM
1.0007:38:50 PM
3.03[...]该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的。pidstat 1$ pidstat 1Linux 3.13.0-49-generic (titanclusters-xxxxx)
07/14/2015
(32 CPU)07:41:02 PM
%usr %system
Command07:41:03 PM
rcuos/007:41:03 PM
mesos-slave07:41:03 PM
java07:41:03 PM
0.00 1598.11
java07:41:03 PM
0.00 1579.25
java07:41:03 PM 60004
pidstat07:41:03 PM
%usr %system
Command07:41:04 PM
mesos-slave07:41:04 PM
0.00 1591.00
java07:41:04 PM
0.00 1583.00
java07:41:04 PM
snmp-pass07:41:04 PM 60004
pidstat^Cpidstat命令输出进程的CPU占用率,该命令会持续输出,并且不会覆盖之前的数据,可以方便观察系统动态。如上的输出,可以看见两个JAVA进程占用了将近1600%的CPU时间,既消耗了大约16个CPU核心的运算资源。iostat -xz 1$ iostat -xz 1Linux 3.13.0-49-generic (titanclusters-xxxxx)
07/14/2015
_x86_64_ (32 CPU)avg-cpu:
%nice %system %iowait
22.21Device:
wkB/s avgrq-sz avgqu-sz
await r_await w_await
0.03[...]^Ciostat命令主要用于查看机器磁盘IO情况。该命令输出的列,主要含义是:r/s, w/s, rkB/s, wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会引起性能问题。await:IO操作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际操作的耗时。如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。avgqu-sz:向设备发出的请求平均数量。如果这个数值大于1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。%util:设备利用率。这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响IO性能(可以参照IO操作平均等待时间)。如果到达100%,说明硬件设备已经饱和。如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能。free –m$ free -m
cachedMem:
541-/+ buffers/cache:
222053Swap:
0free命令可以查看系统内存的使用情况,-m参数表示按照兆字节展示。最后两列分别表示用于IO缓存的内存数,和用于文件系统页缓存的内存数。需要注意的是,第二行-/+ buffers/cache,看上去缓存占用了大量内存空间。这是Linux系统的内存使用策略,尽可能的利用内存,如果应用程序需要内存,这部分内存会立即被回收并分配给应用程序。因此,这部分内存一般也被当成是可用内存。如果可用内存非常少,系统可能会动用交换区(如果配置了的话),这样会增加IO开销(可以在iostat命令中提现),降低系统性能。sar -n DEV 1$ sar -n DEV 1Linux 3.13.0-49-generic (titanclusters-xxxxx)
07/14/2015
(32 CPU)12:16:48 AM
%ifutil12:16:49 AM
0.0012:16:49 AM
0.0012:16:49 AM
0.0012:16:49 AM
%ifutil12:16:50 AM
0.0012:16:50 AM
0.0012:16:50 AM
0.00^Csar命令在这里可以查看网络设备的吞吐率。在排查性能问题时,可以通过网络设备的吞吐量,判断网络设备是否已经饱和。如示例输出中,eth0网卡设备,吞吐率大概在22 Mbytes/s,既176 Mbits/sec,没有达到1Gbit/sec的硬件上限。sar -n TCP,ETCP 1$ sar -n TCP,ETCP 1Linux 3.13.0-49-generic (titanclusters-xxxxx)
07/14/2015
(32 CPU)12:17:19 AM
active/s passive/s
oseg/s12:17:20 AM
846.0012:17:19 AM
estres/s retrans/s isegerr/s
orsts/s12:17:20 AM
0.0012:17:20 AM
active/s passive/s
oseg/s12:17:21 AM
6039.0012:17:20 AM
estres/s retrans/s isegerr/s
orsts/s12:17:21 AM
0.00^Csar命令在这里用于查看TCP连接状态,其中包括:active/s:每秒本地发起的TCP连接数,既通过connect调用创建的TCP连接;passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接;retrans/s:每秒TCP重传数量;TCP连接数可以用来判断性能问题是否由于建立了过多的连接,进一步可以判断是主动发起的连接,还是被动接受的连接。TCP重传可能是因为网络环境恶劣,或者服务器压力过大导致丢包。top$ toptop - 00:15:40 up 21:56,
load average: 31.09, 29.87, 29.92Tasks: 871 total,
1 running, 868 sleeping,
0 stopped,
2 zombie%Cpu(s): 96.8 us,
0.0 stKiB Mem:
used, +free,
60448 buffersKiB Swap:
554208 cached Mem
TIME+ COMMAND 20248 root
0.227t 0.012t
29812:58 java
0.0 233:35.37 mesos-slave 66128 titancl+
0:00.07 top
0 38.227g 996 S
2:02.74 java
0 20.015g 2.682g
33:14.42 java
0:03.82 init
0:00.02 kthreadd
0:05.35 ksoftirqd/0
0:00.00 kworker/0:0H
0:06.94 kworker/u256:0
2:38.05 rcu_schedtop命令包含了前面好几个命令的检查的内容。比如系统负载情况(uptime)、系统内存使用情况(free)、系统CPU使用情况(vmstat)等。因此通过这个命令,可以相对全面的查看系统负载的来源。同时,top命令支持排序,可以按照不同的列排序,方便查找出诸如内存占用最多的进程、CPU占用率最高的进程等。但是,top命令相对于前面一些命令,输出是一个瞬间值,如果不持续盯着,可能会错过一些线索。这时可能需要暂停top命令刷新,来记录和比对数据。总结排查Linux服务器性能问题还有很多工具,上面介绍的一些命令,可以帮助我们快速的定位问题。例如前面的示例输出,多个证据证明有JAVA进程占用了大量CPU资源,之后的性能调优就可以针对应用程序进行。。在Linux系统中。uptimedmesg | tailvmstat 1mpstat -P ALL 1pidstat 1iostat -xz 1free -msar -n DEV 1sar -n TCP,有助于快速定位性能瓶颈。uptime$ uptime23:51,可以更详细的了解系统内存的使用情况。si, so:交换区写入和读取的数量。如果这个数据不为0,说明系统已经在使用交换区(swap),机器物理内存已经不足。us。通过这三个数据, st:38:50 PM
98,ETCP 1top其中一些命令需要安装sysstat包。如果这个数值大于机器CPU核数.00
0。如果1分钟平均负载很高,可以了解服务器负载是在趋于紧张还是区域缓解.75
0、空闲时间(idle)、IO等待时间(wait)和被偷走的时间(2015
_x86_64_ (32 CPU)07:38:49 PM
%sys %iowait
%idle07。vmstat 1$ vmstat 1procs ---------memory---------- ---swap-- -----io---- -system-- ------cpu----- r
cs us sy id wa st34
0^Cvmstat(8) 命令,每行会输出一些系统核心指标,这些指标可以让我们更详细的了解系统状态。后面跟的参数1,表示每秒输出一次统计信息,说明服务器正在命令高负载情况,需要进一步排查CPU资源都消耗在了哪里。反之.00
0.7807。如果IO等待时间很长,那么系统的瓶颈可能在磁盘IO。这不一定是性能问题,如果15分钟平均负载很高,1分钟平均负载较低,则有可能是CPU资源紧张时刻已经过去、系统(内核)时间(sys),因此我们需要继续排查当前系统中有什么进程消耗了大量的资源。可以通过下文将会介绍的vmstat、mpstat等命令进一步排查:等待在CPU资源的进程数。这个数据比平均负载更加能够体现CPU负载情况,一起分析。mpstat -P ALL 1$ mpstat -P ALL 1Linux 3.13, oom_score_adj=0[: 30。上述这些CPU时间,表头提示了每一列的含义,数据中不包含等待IO的进程,这几介绍一些和性能调优相关的列, wa,一般被其他虚拟机消耗),这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量.00
0,有一些由procps包提供.563400] Out of memory,检查出所有资源(CPU.0-49-generic (titanclusters-xxxxx)
07/14&#47、内存、磁盘IO等)的利用率(utilization)、饱和度(saturation)和错误(error)度量,也就是所谓的USE方法。下面我们来逐一介绍下这些命令
采纳率:61%
来自团队:
为您推荐:
其他类似问题
linux系统的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 linux atd cpu跑满 的文章

 

随机推荐