安装sysstat 会 安装上 iostatphp
iostat 1 10html
iostat -x 磁盘使用linux
%util: 在统计时间内全部处理IO时间,除以总共统计时间。例如,若是统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,因此该参数暗示了设备的繁忙程度 。通常地,若是该参数是100%表示设备已经接近满负荷运行了(固然若是是多磁盘,即便%util是100%,由于磁盘的并发能力,因此磁盘使用未必就到了瓶颈)。ios
iotop 磁盘使用 查看具体进程使用io大小nginx
free 查看内存使用状况web
free -m / -g / -h缓存
buff/cache: 缓冲/缓存服务器
磁盘(数据) --> 内存(cache) --> cpu网络
cpu --> 内存(buff) --> 磁盘(数据)多线程
公式: totle=used+free+buff/cache
avaliabel 包含free和 buff/cache剩余部分
ps 查看系统进程
用法:ps aux、ps -elf
经常使用: ps aux | grep nginx
%CPU cpu百分比
%MEM 内存百分比
VSZ 虚拟内存
RSS 物理内存
TTY 哪一个tty上
STAT部分说明
D 不能中断的进程 (这种进程会直接影响系统负载, 负载会变高, 但占cpu使用率不必定高)
R run状态的进程 (某一时间段内(1分钟?)进程在使用cpu)
S sleep状态的进程
T 暂停的进程 vmstat 1 -> ctrl-z 会暂停- fg 调回
Z 僵尸进程
< 高优先级进程
N 低优先级进程
L 内存中被锁了内存分页
s 主进程 如nginx的主进程master
l 多线程进程 一个进程里有多个线程, 进程和进程之间内存不共享, 不管多少个线程共享进程的内存
查看进程在哪里启动的, 先找到进程号
ls -l /proc/进程号的目录
自定义ps
ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'
netstat 查看网络状态
netstat -lnp 查看监听端口
netstat -an 查看系统的网络链接状况
netstat - lntp 只看出tcp的, 不包含socket
netstat -ltunp 只看出tcp的和utp的
ss -an 和 netstat 殊途同归
技巧
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
http://www.cnblogs.com/chengmo/archive/2010/10/08/1846190.html
http://www.cnblogs.com/lixiaohui-ambition/archive/2012/12/11/2813419.html
须要关注 ESTABLISHED 值, ESTABLISHRD = 并发链接数
ESTABLISHED 很大 , 说明网站很忙, 1000之内为好
好比,服务器仅仅是lvs调度器,那established数值就算10000也不是问题,由于即便链接数再多也不会对调度器形成多大影响。
反而,若是是httpd或者php-fpm,这个数值很大,说明访问量很大,那也就意味着php的处理比较繁忙,天然会对机器形成影响。
yum install -y tcpdump
抓包工具 tcpdump
用法: tcpdump -nn 需指定网卡名字,以下
tcpdump -nn -i ens33 i 指定网卡名字, 不加nn显示成主机名
tcpdump -nn -i ens33 port 80 指定端口
tcpdump -nn -i ens33 not port 22 and host 192.168.0.100 不要22端口不要主机ip为0.100
tcpdump -nn -i ens33 -c 100 -w /tmp/文件名.cap 指定个数(抓100个), 指定存放的文件名
tcpdump -r 文件名.cap 打开cap文件
-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后能够抓到完整的数据包
yum install -y wireshark
查看 指定网卡 80端口 web访问状况
tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"
访问时间 ip 域名 post/get 访问的连接