一、網絡
1. iftop
-i: 接口
-B: 以字節而非比特顯示
# iftop -i eth0
輸出:
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, 內存和網絡:
三、文件描述符
對于評估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