11.2 线上问题定位
1 TOP命令查看每个进程的情况
在Linux命令行下使用TOP命令查看每个进行的情况
top - 16:47:59 up 164 days, 3:42, 2 users, load average: 2.16, 0.66, 0.27Tasks: 75 total, 1 running, 74 sleeping, 0 stopped, 0 zombie%Cpu(s):100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 1016164 total, 60280 free, 643620 used, 312264 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 214300 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND8495 root 20 0 808.0m 367.6m 0.8m S 0.0 37.0 6:35.86 redis-server30418 root 20 0 2228.2m 79.5m 13.3m S 0.0 8.0 0:03.95 java1060 root 20 0 2009.2m 69.3m 2.1m S 0.0 7.0 961:15.01 java30554 root 20 0 2194.2m 24.9m 11.9m S 99.7 2.5 1:06.03 java
我们的程序是java应用,我们只需要关注COMMAND是Java的性能数据,COMMAND表示启动当前进程的命令,所以上面有一行CPU利用率是99%。表示当前机器所有核加在一起的CPU利用率。
2 查看每个CPU的性能数据
TOP命令的交互数字1 查看每个CPU性能数据。
top - 16:57:22 up 130 days, 1:55, 3 users, load average: 0.01, 0.05, 0.05Tasks: 229 total, 1 running, 228 sleeping, 0 stopped, 0 zombieCpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stCpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stCpu2 : 0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.3%stCpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stCpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stCpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stCpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stCpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stMem: 16422132k total, 4838984k used, 11583148k free, 175784k buffersSwap: 3997692k total, 0k used, 3997692k free, 2047844k cached
显示了CPU7,说明这是一个8核的虚拟机,
| 参数 | 描述 |
|---|---|
| us | 用户空间占用CPU百分比 |
| sy | 内核空间占用CPU百分比 |
| ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
| id | 空间CPU百分比 |
| wa | 等待输入/输出的CPU时间百分比 |
3 查看每个线程的性能信息
使用TOP的交互命令H 查看。
