网络、cpu、内存、io、文件 linux下资源监控和分析工具汇总

一、网络
1. iftop
-i: 接口
-B: 以字节而非比特显示
# iftop -i eth0
输出:

网络、cpu、内存、io、文件 linux下资源监控和分析工具汇总

文章插图
   TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
2. trickle
这个应用用于限制网络带宽
(1).限制wget的上传和下载速度限制上传为10KB/S,下载为20KB/s
# trickle -u 10 -d 20 wget http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1503-01.iso
(2).单独限制某个进程的下载和上传速度
# trickle -s -d 50 -u 25 ftp
(3)限制终端下的所有命令带宽为 , 下载500KB/S , 上传250KB/s;
# trickle -s -d 500 -u 250 bash
备注 , 单独命令使用时 , 必须加-s参数
3. 查看http服务启动的连接数:
# netstat -an | grep ESTABLISHED | grep 126:80 | wc -l
输出:
tcp6 0 57920 172.21.73.126:80 172.21.73.118:42496 ESTABLISHED
tcp6 0 20272 172.21.73.126:80 172.21.73.118:42520 ESTABLISHED
tcp6 0 69504 172.21.73.126:80 172.21.73.118:42486 ESTABLISHED
4. ethtool
修改网络接口enp0s31f6的速度为1000M
# ethtool -s enp0s31f6 speed 1000 duplex full autoneg on
二、cpu
1. dstat
默认1秒更新一次
-c: 显示cpu综合占有率
-m: 显示内存使用情况
-n: 显示网络状况
-l:显示系统负载情况
-r:显示I/O请求(读/写)情况
--socket:显示套接字(tcp,udp等)的个数
--top-io: 显示消耗I/O最大的进程
--top-cpu: 显示消耗cpu最大的进程
--top-cputime: 显示使用cpu时间最大的进程(ms)
--top-latency: 显示总延迟最大的进程(ms)
--top-latency-avg: 显示平均延迟最大的进程(ms)
--top-mem: 显示使用内存最大的进程
例如 , 同时监控cpu, 内存和网络:
网络、cpu、内存、io、文件 linux下资源监控和分析工具汇总

文章插图
   三、文件描述符
对于评估mosquitto 这类server的max connection 数量的时候 , 其实就是评估mosquitto这个进程允许打开的最大的文件描述符是多少 , 因为linux里 , 一切皆文件,打开的socket数量也是以文件来衡量的!
1. 查看系统已经使用的文件描述符和系统允许打开的文件描述符的最大数量
# cat /proc/sys/fs/file-nr
11712 0 778166
备注:
以上输出表示系统最大的文件描述符数量为778166 , 目前已经使用的文件描述符为11712
2. 查看某个进程打开的文件描述符的个数:
# lsof -p 20262 |wc -l5
3. 关于最大文件描述符的数量的修改
(1)系统允许打开的最大文件描述符的数量的修改:/etc/sysctl.conf
(2)进程/用户允许打开的最大文件描述符的数量的修改:/etc/security/limits.conf

【网络、cpu、内存、io、文件 linux下资源监控和分析工具汇总】


    推荐阅读