可以通过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、GreenPlum等都需要较高的网络带宽,使用光纤网也很常见。
5、当然针对大规模网络系统有更很专业的监控工具,例如:cacti、zabbix、munin等等。其中,munin还可以自己编写插件自定义监控需要的数值。
可以用TOP工具查看实时状态。
top进入视图:
第一行:
10:01:23 当前系统时间
126 days, 14:29 系统已经运行了126天14小时29分钟(在这期间没有重启过)
2 users 当前有2个用户登录系统
load average: 1.15, 1.42, 1.44 load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:
Tasks 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行:cpu状态
6.7% us 用户空间占用CPU的百分比。
0.4% sy 内核空间占用CPU的百分比。
0.0% ni 改变过优先级的进程占用CPU的百分比
92.9% id 空闲CPU百分比
0.0% wa IO等待占用CPU的百分比
0.0% hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
8306544k total 物理内存总量(8GB)
7775876k used 使用中的内存总量(7.7GB)
530668k free 空闲内存总量(530M)
79236k buffers 缓存的内存量 (79M)
第五行:swap交换分区
2031608k total 交换区总量(2GB)
2556k used 使用的交换区总量(2.5M)
2029052k free 空闲交换区总量(2GB)
4231276k cached 缓冲的交换区总量(4GB)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)