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

【人在运维囧途_01】20个Linux系统内置监视工具:top

2013-03-29 01:54 302 查看
       人在运维囧途、常常缠绵着服务器的性能问题、如:I/O、CPU、内存、网络等瓶颈
       那么系统运维、岂能酣眠?以下工具有提神醒脑之功效哟~(@^_^@)~
       
       ⑴ top
       
          写在前面的话、这里 Rocky 想澄清一点、窃以为、top 最佳实践应该是:
          "想要找出最损耗 CPU 资源的那个进程"
          找出来之后、按【P】、强制以 CPU 使用排序
          
          有别于 ps 的静态输出、top 可持续监测进程的工作状态、缺省刷新频率为 5 次/s、不过选项【-d】可进行修改
          
          top 缺省以 CPU 使用率(%CPU)排序、按【M】则以内存(%MEM)排序、恢复按【P】、退出按【q】
          
          top 输出结果可分 2 部分:整个系统的资源使用状况和每个进程的资源使用情况
          
          先看上半部分的输出案例:

top - 00:09:57 up 3:22, 2 users, load average: 0.06, 0.17, 0.12
Tasks: 153 total, 2 running, 150 sleeping, 0 stopped, 1 zombie
Cpu(s): 1.2%us, 1.2%sy, 0.1%ni, 96.6%id, 0.8%wa, 0.0%hi, 0.0%si, 0.1%st
Mem: 1998848k total, 825504k used, 1173344k free, 77180k buffers
Swap: 0k total, 0k used, 0k free, 421704k cached

          ① 第一行【top】显示的内容:
             ● 当前时间:00:09:57
             ● 开机到目前为止所经过的时间:3:22 时
             ● 已经登入系统的使用者人数:2
             ● 系统在每 1、5、15分钟的平均使用负载、越小代表系统越闲置、若 >1 则要注意
             
          ② 第二行【Tasks】显示的内容:
             目前程序的总量和每个程序在神马状态(running、sleeping、stopped、zombie)
             需要注意的是zombie、如果非0、那么需要注意
             使用 "ps -lef | grep defunct"找出僵尸进程
             有些zombie进程即便kill -9照旧置若罔闻、占着茅坑不拉屎

[root@Rocky ~]# ps -lef | grep defunct
1 Z root 8519 8487 0 78 0 - 0 exit Mar28 ? 00:00:00 [Xsession] <defunct>
0 R root 17710 8875 0 78 0 - 1282 - 00:41 pts/1 00:00:00 grep defunct

             完全清除zombie进程方法如下:
             ⒈ kill -18 PPID(ppid是其父进程、这里是8487)
                ##告诉父进程、其子已死、请收回所配资源
                ##如果不行、请看第 2 点
             ⒉ 杀死zombie的父进程、不过、这之前先得把zombie的兄弟给干掉
                kill -15 PID1 PID2
                而后、"kill -9 PPID"
             
          ③ 第三行【Cpu(s)】显示CPU的整体负载:
             特别注意【%wa】、这个代表 I/O wait、通常你机器变慢 I/O 是其主要的贡献者
             另外、如果是多核、按【1】却换不同 CPU的负载率
             
          ④ 注意 Swap 的使用率、越小越好
          
          
          再来看下半部分的输出案例:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8470 root 15 0 53820 10m 5720 S 3.9 0.5 0:27.10 Xorg
1 root 15 0 2176 652 556 S 0.0 0.0 0:03.12 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.04 events/0
6 root 12 -5 0 0 0 S 0.0 0.0 0:00.00 khelper

          ① PID:每个进程的id
          ② USER:每个进程的所属用户
          ③ PR:priority的简写、进程的优先执行顺序、越小越好
          ④ NI:nice的简写、
          ⑤ %CPU:CPU 使用率
          ⑥ %MEM:内存使用率
          ⑦ TIME+  :累计 CPU 的使用时间
          
          
          下面介绍一些常见的用法
          
          Ⅰ 每 2 秒更新一次 top: top -d 2
          Ⅱ 将 top 输出 2 次并把结果重定向到/tmp/top.txt:top -b -n 2 > /tmp/top.txt
          Ⅲ 指定 某个进程的 top 输出:top -p PID
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: