Linux系统管理员应该知道监控工具
如果想监控Linux服务器的性能,请试一下内置的shell命令和一些附加的工具。很多Linux发行版都有“成吨”的监控工具。
这些工具提供了可度量信息,用于观察系统的活动,找到导致系统性能的可疑之处。我们下面讨论的工具是一些最基本的
命令,可以用来系统的分析和服务的调试:
1、找出系统瓶颈
2、找出磁盘瓶颈
3、找出CPU、内存瓶颈
4、网络瓶颈
一、top 进程活动命令
top提供了动态实时查看运行系统的状态,比如实际进程活动。默认,显示最CPU密集的任务,每5秒跟新一次。
top提供了一些最经常被使用的键:
Key Usage
t 关闭或显示概况信息
m 关闭或显示内存信息
A 排序显示消费各种资源最高的进程,可以快速标示performance-hungry的进程
f 进入一个top的交互式配置界面
o 可以让你交互式的选择top的顺序
r Issues renice命令
k Issues kill命令
z 打开或者关闭颜色
二、vmstat 系统活动,硬件和系统信息
vmstat命令报告进程、内存、页面、阻塞IO,traps和cpu的活动
输出:
引用procs ———–memory———- —swap– —–io—- –system– —–cpu——显示内存:
引用# vmstat -m获得活动/不活动的内存页信息:
引用# vmstat -a三、w 查找谁已经登录系统以及他们正在做什么
w 命令显示用户当前的信息,以及他们的进程:
输出:
引用17:58:47 up 5 days, 20:28, 2 users, load average: 0.36, 0.26, 0.24四、uptime 查看系统运行了多长时间
uptime命令查看服务器当前时间、运行时间、多少个用户已经登录,以及系统在过去1,5,15分钟的平均负载。
输出:
引用18:02:41 up 41 days, 23:42, 1 user, load average: 0.00, 0.00, 0.00五、ps 显示进程:
ps命令报告当前进程的信息,选择所有的进程,使用-A或者-e选项
输出:
引用 PID TTY TIME CMD显示长格式:
引用#ps -Al打开额外的完全模式(显示传递给进程的命令行参数)
引用# ps -AlF查看线程:
引用#ps -AlFH在进程后显示线程
引用#ps -AlLm显示所有进程:
引用ps ax打印进程数
引用# ps -ejH打印安全信息:
引用# ps -eo euser,ruser,suser,fuser,f,comm,label看一个用户的所有进程:
引用# ps -U fuliang -u fuliang u以用户自定义的方式显示:
引用# ps -eo pid,tid,class,rtprio查看进程的id:
引用# ps -C lighttpd -o pid=查看进程名称:
引用# ps -p 55988 -0 comm=查找top 10的内存消耗的进程:
引用# ps -auxf | sort -nr -k 4 | head -10查找top 10的内存消耗的进程:
引用# ps -auxf | sort -nr -k 3 | head -10六、free 查看内存使用:
引用# free输出:
引用 total used free shared buffers cached七、iostat cup平均负载,磁盘活动
引用# iostat输出:
引用Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009avg-cpu: %user %nice %system %iowait %steal %idle
3.50 0.09 0.51 0.03 0.00 95.86
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 22.04 31.88 512.03 16193351 260102868
sda1 0.00 0.00 0.00 2166 180
sda2 22.04 31.87 512.03 16189010 260102688
sda3 0.00 0.00 0.00 1615 0
八、sar 收集报告系统活动:
sar命令可以被用来收集、报告、保存系统活动信息,
查看网络计数:
查看使用的real time
引用# sar 4 5输出:
引用Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/200906:45:12 PM CPU %user %nice %system %iowait %steal %idle
06:45:16 PM all 2.00 0.00 0.22 0.00 0.00 97.78
06:45:20 PM all 2.07 0.00 0.38 0.03 0.00 97.52
06:45:24 PM all 0.94 0.00 0.28 0.00 0.00 98.78
06:45:28 PM all 1.56 0.00 0.22 0.00 0.00 98.22
06:45:32 PM all 3.53 0.00 0.25 0.03 0.00 96.19
Average: all 2.02 0.00 0.27 0.01 0.00 97.70
九、mpstat 多处理器的使用:
引用# mpstat -P ALL输出:
引用Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/200906:48:11 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
06:48:11 PM all 3.50 0.09 0.34 0.03 0.01 0.17 0.00 95.86 1218.04
06:48:11 PM 0 3.44 0.08 0.31 0.02 0.00 0.12 0.00 96.04 1000.31
06:48:11 PM 1 3.10 0.08 0.32 0.09 0.02 0.11 0.00 96.28 34.93
06:48:11 PM 2 4.16 0.11 0.36 0.02 0.00 0.11 0.00 95.25 0.00
06:48:11 PM 3 3.77 0.11 0.38 0.03 0.01 0.24 0.00 95.46 44.80
06:48:11 PM 4 2.96 0.07 0.29 0.04 0.02 0.10 0.00 96.52 25.91
06:48:11 PM 5 3.26 0.08 0.28 0.03 0.01 0.10 0.00 96.23 14.98
06:48:11 PM 6 4.00 0.10 0.34 0.01 0.00 0.13 0.00 95.42 &
nbsp; 3.75
06:48:11 PM 7 3.30 0.11 0.39 0.03 0.01 0.46 0.00 95.69 76.89
十、pmap 进程内存使用:
命令pmap报告内存的映像,使用它来查找内存瓶颈:
输出:
引用47394: /usr/bin/php-cgi最后一行很重要:
* mapped: 933712K 文件内存映像大小
* writeable/private: 4304K 私有地址空间大小
* shared: 768000K 进程共享地址空间大小
十一and十二、netstat and ss 网络统计
netstat显示网络连接,路由表,interface 统计,masquerade 连接,多播成员关系。
ss被用来dump socket的统计: