linux中常见的调优命令

1、cpu负载相关的工具

[root@ chenc01 ~]# uptime
 11:19:34 up 0 min,  2 users,  load average: 0.00, 0.00, 0.00
 11:19:34 : 当前时间
up 0 min 系统运行时间
2 users: 当前用户登录数
[root@ chenc01 ~]# w
 11:20:38 up 1 min,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         11:18    1:52   0.00s  0.00s -bash
root     pts/1    10.0.0.1         11:19    0.00s  0.00s  0.00s w

load average: 0.00, 0.00, 0.00 系统负载,也就是任务队列的平均长度。三个数值分别表示 1分钟,5分钟,15分钟前到现在的平均值;

举例:

服务器A DELL R720 load average:1.11, 0.08, 0.01 1核;
服务器B DELL R730 load average: 5.25, 7.22, 60.1 1核;
服务器C DELL R720 load average:10.15, 1011, 10.01 4核;

答案: 服务器B负载过高;

经验: 单核心,1分钟内系统平均负载不超过3. 4核心不要超过12;

从高往低说明负载是下降的;
从低往高的说明负载上升的;

1)问题1.: 找出系统中占用CPU最多的进程;
2)问题2: cpu一直飚高,如何处理;

  • top查找出哪个进程消耗的CPU高(top -c)

  • top -h -p查找出哪个线程消耗的cpu高(top -h -p pid)
    这个命令就能显示刚刚找到的进程的所有线程的资源消耗情况。

  • printf%x进行pid的进制转换
    找到CPU负载高的线程pid 8627, 把这个数字转换成16进制,21B3(10进制转16进制,用linux命令: printf %x 8627)

  • jstack记录进程的堆栈信息
    执行jstack -l pid,拿到进程的线程dump文件。这个命令会打出这个进程的所有线程的运行堆栈。

  • 找出消耗CPU最高的线程信息
    搜索“21B3”,就是搜一下16进制显示的线程id。搜到后,下面的堆栈就是这个线程打出来的。

[root@ chenc01 ~]# top
top - 11:22:13 up 3 min,  2 users,  load average: 0.07, 0.02, 0.01
Tasks:  73 total,   1 running,  72 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004136k total,   109676k used,   894460k free,     8888k buffers
Swap:   786428k total,        0k used,   786428k free,    26616k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
     7 root      20   0     0    0    0 S  0.3  0.0   0:00.69 events/0            
     1 root      20   0 19344 1524 1228 S  0.0  0.2   0:00.64 init                
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd            
     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0         
     4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0         
     5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0           
# 按照实际使用cpu,从大到小来排序显示所有进程
[root@ chenc01 ~]# ps -aux --sort -pcpu |more
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1171  1.0  0.1 110356  1152 pts/1    R+   11:23   0:00 ps -aux --sort -
pcpu
root          1  0.2  0.1  19344  1524 ?        Ss   11:18   0:00 /sbin/init
root          7  0.2  0.0      0     0 ?        S    11:18   0:00 [events/0]
root          2  0.0  0.0      0     0 ?        S    11:18   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    11:18 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值