综合看一个进程占用系统资源主要体现在:CPU使用率、内存占用率、磁盘占用率、网络IO等。
可以通过linux自带工具:top、free、du、nmon 等命令配合查看。
1、CPU占用率
命令:top
语法: top -hv | -abcHimMsS -d delay -n iterations [-u user | -U user] -p pid [,pid ...]
优势:系统自带,可以观察到进程的PID、当前登录用户、进程占用cpu的排行等;
缺点:界面简单;
2、内存占用率
命令:free
语法:
usage: free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]
-b,-k,-m,-g show output in bytes, KB, MB, or GB
-l show detailed low and high memory statistics
-o use old format (no -/+buffers/cache line)
-t display total for RAM + swap
-s update every [delay] seconds
-c update [count] times
-V display version information and exit
例子:
free -m -t -s 3 -c 5 > test.log
这样可以记录5次每隔3秒的内存使用情况。
3、磁盘占用率
磁盘占用是非常重要的一个指标,类似mongodb这样的应用日志信息如果不进行合理规划会造成磁盘率过快增长,一旦被磁盘写爆,会造成应用宕机。
命令:du -sh /log 查询/log目录的磁盘占用
4、网络占用率
主要是检查进程的NIC的读写情况
工具:nmon
nmon是 IBM 提供的免费的在AIX与各种Linux操作系统上广泛使用的监控与分析工具。nmon运行CPU利用率不会超过2%。针对不同的操作系统版本,nmon有相应版本的程序。nmon可以监控网络IO的读写速率、CPU使用、磁盘IO等信息。
优势:免费,兼容性好,可输出分析,有源代码便于二次开发
应用:有很多网络IO要求很高的分布式数据库系统,如MySQL、Postgresql、*****Plum等都需要较高的网络带宽,使用光纤网也很常见。
5、当然针对大规模网络系统有更很专业的监控工具,例如:cacti、zabbix、munin等等。其中,munin还可以自己编写插件自定义监控需要的数值。
取消
评论