您的位置:首页 > 运维架构 > Linux

常用的Linux调优命令和工具

2017-09-15 18:24 302 查看
1. top

以进程为单位动态显示各进程的CPU,memory, 调试等信息

top - 16:31:25 up 21 days, 22:18, 19 users,  load average: 1.44, 1.50, 1.48    //当前时间,已运行时间,已登录用户数,1/5/15分钟的平均负载情况

Tasks: 313 total,   3 running, 310 sleeping,   0 stopped,   0 zombie      // 进程状况

%Cpu0  :  4.1 us,  7.1 sy,  0.0 ni, 86.4 id,  2.4 wa,  0.0 hi,  0.0 si,  0.0 st    // 按数字键1可显示各CPU或汇总CPU的信息 us 用户空间占用CPU百分比

%Cpu1  :  5.6 us,  8.3 sy,  0.3 ni, 84.1 id,  1.7 wa,  0.0 hi,  0.0 si,  0.0 st    // sy  kernel space    ni:改变过进程优先级的  id: idel

%Cpu2  :  4.1 us,  9.8 sy,  0.0 ni, 85.4 id,  0.7 wa,  0.0 hi,  0.0 si,  0.0 st              // wa: wait    hi: hardware interrupts    si: software interrupts

%Cpu3  :  4.4 us,  8.4 sy,  0.0 ni, 86.8 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st              //  st: steal time hypervisor 服务另一虚拟处理器时,虚拟CPU等待实际CPU的时间百分比

KiB Mem:  16355700 total, 16179524 used,   176176 free,    12728 buffers  //  used即系统内核控制的内存数,不是真正正在使用的,可被重复利用的也在这类中 , free: 未被纳入控制的内在数

KiB Swap: 16697340 total,  5060472 used, 11636868 free.  6966508 cached Mem   // swap 的used如果不断地在变化,说明内核在不断进行交换,真正的内存应该不够用了

    /// 习惯计算可用内存数方法: mem.free + mem. buffers + swap.cached

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND               //到PR 优先级,NI nice值, VIRT=swap+res, RES=code+data res所占空间                                                                                   

 4634 qi+  20   0 8392040 6.087g 6.023g S  26.6 39.0 287:53.93 vmware-vmx                                                                                               

 3510 hadoop    20   0 4720296 1.082g   5124 S   0.0  6.9 180:22.58 java                                                                                                     

18682 hadoop    20   0 4644564 934588   5372 S   0.7  5.7   7:21.73 java                                                                                                     

 3248 qi+  20   0 4582660 910980  52280 S   8.0  5.6   1475:54 firefox    

几个常用快捷键:

多核CPU监控 :  按数字键1

打开/关闭行加亮效果: b/y

打开/关闭列序列的加亮效果:x, 默认是按%CPU排序的,按shift+> or shift+< 可改变排序列

进入编辑视图:    f     // 可修改显示的列字段

对top的补充:top只能以进程为单位进行显示和监控

java线程数: ps -eLf | grep java ("bin/java")  | wc -l     // 笔者电脑上显示2406

监控网络客户连接数: netstat -n | grep tcp | grep 侦听的端口 | wc -l 

同样,ls /proc/PID/task | wc -l   也可显示该进程下的所有线程数

pmap PID  可输出进程的内存状态,分析线程堆栈

2. vmstat

 获取有关进程、虚拟内存、页面交换空间及CPU活动的信息,反映了系统的负载情况。

vmstat -a -f -m -n -s [delay count] -d -p -S -V

vmstat 2 50 // 每2秒刷一次,刷50次

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st

 2  0 5422396 573384 1956680 13338408   32    0    32    36 3302 16148  5 13 81  1  0

 1  0 5422320 573268 1956792 13338452   16    0    16    70 3452 15831  6 20 74  1  0

 1  0 5422256 572120 1956948 13338444   94    0    94     2 3650 21972  6 35 58  1  0

 0  0 5422176 572516 1957076 13338504    0    0     0   722 3541 15418  8 22 68  2  0

 0  0 5422116 572268 1957100 13338592   16    0    16    10 3281 14824  4  6 90  1  0

procs:  r 为等待运行的任务数, b 等待队列中的内核线程数目(waut cpu, io, etc)

memory:  swpd, free,   inact:非活跃内存大小,即被标明可回收的

swap: si, swap->mem  so mem->swap   kbit/s    pi/po,page-in,out, 

I/O: bi 每秒读取的块数  bo每秒写入的块数    1024 bytes/block

system:  in 中断数每秒  cs 上下文切换数

 cpu: 同top 

经验判定:4 core CPU

a. r 经常大于4,id 经常小于40, 则说明CPU负荷较重

b.  pi/po 长期不等于0,表示内存不足,一直在交换

c. disk 经常不等于0,且了b中队列大于3,表示IO性能不佳

d. r中运行的进程ID是连续的,且大于在系统中的CPU个数,表示系统运行比较慢,很多进程正在等待CPU

e. r 大于4倍的CPU数,刚系统面临CPU资源短缺的问题或者CPU速率过低,很多进程都在等CPU,造成运行过慢

f.  空闲时间id持续为0,且cpu sy 多倍于cpu us,刚系统面临cpu资源短缺问题。

针对这些问题,通常优先调整应用程序更有效地使用CPU,同时借助工具ps aux , top . prstat 等进一步综合考虑。

3. iostat

常用的一合法性参数和用法如下

iostat -d -k 1 10   //每秒一次刷10次,查看TPS(每秒的传输次数)和吞吐量,通常会根据显示的结果取tpc平均值

iostat -d -x -k 1 10   //查看设备使用率(%util)和响应时间(await)

iostat -c 1 10    // 查看CPU信息

4. nmon工具及报表生成工具

默认已在ubuntu中有源,安装即可用。

输入nmon即可启动,界面上输入不同快捷键可显示对应的信息。

q : 停止并退出Nmon
h : 查看帮助信息
c : 查看 CPU 统计信息
m : 查看内存统计信息
d : 查看磁盘统计信息
k : 查看内核统计信息
n : 查看网络统计信息
N : 查看 NFS 统计信息
j : 查看文件系统统计信息
t : 查看 Top 进程统计信息
V : 查看虚拟内存统计信息
v : 详细输出模式
f: 输出文件
-T: 输出最耗资源的进程
-s: 收集数据的时间间隔
-c: 收集次数

e.g.nmon -f -s 5 -c 20                --->使用nmon输出监控数据:使用nmon监控资源100s,每5s捕获一次数据(5*20=100s)

也可启动cron任务来定时执行。
nmon_analyser: 
http://blog.csdn.net/a7442358/article/details/50186283 https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser https://www.ibm.com/developerworks/aix/library/au-nmon_analyser/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: