w查看系统负载mysql
load average:1 分钟内系统的平均负载值,1分钟以内有多少个进程和任务在使用cpu计算排队nginx
查看服务器cpu状况 cat /proc/cpuinfo processor : 0 处理器逻辑CPU个数0单核sql
负载太高,就要想办法查看什么进程引发的负载高,要调整优化。top看哪一个进程排在最上面,最上面的说明耗费cpu比较多,针对那个进程去优化。好比mysql占用cpu高,那么就去查看mysql的慢查询日志,看看是否是能够经过优化sql语句来提高mysql的查询效率,这样就降下来了。 若是即便调优了仍是高,说明cpu不够用啦,只能增长机器扩容。缓存
vmstat 1 5服务器
r run 1秒内运行和等待CPU时间片的进程数,这个值若是长期大于系统CPU个数,就说明CPU资源不足,能够考虑增长CPU网络
b block 被阻塞的,表示等待资源的进程数,任务数据等待写入磁盘,被I/O阻塞的任务有多少,网络、磁盘、I/O都有关,这列值若是长时间大于1,须要关注一下tcp
si 交换分区写入内存的数据量优化
so 内存写入到交换分区的数据量ui
以上两个数值一直是0,或者很小很小的值,没有说明变化,很稳定,说明内存够;若是长期大于0,并且不断的变化,说明内存不够日志
sy system 显示系统花费 cpu 时间百分比。就是系统内核本身的服务耗费的
id 不使用的剩余的停顿的cpu,空闲的,这里us+sy+id=100%
wa wait 表示I/O(网络或者磁盘)等待所占用cpu 时间百分比(比较有用)
top
top 查看进程使用资源状况,具体查看是哪个进程致使的内存不够与磁盘读写太高
top -c 能够看到具体命令全局目录
top -bn1 列出全部进程
sar(比较全面的狠角色外号瑞士军刀)
若是没有安装包:yum -install sysstat
sar -n DEV 查看网卡流量
sar -n DEV 1 10 每秒显示一次,共显示10次
sar -n DEV -f /var/log/sa/sa17 查看17日的网卡流量历史
ar -q 查看历史负载
sar -b 查看磁盘读写
sar -p 能够显示cpu
rxpck/s 每秒接收的包的数量(接收的包过量并且并不是传送数据可能为攻击)
txpck/s 每秒发出的包的数量
rxKB/s 每秒接收的数据量,单位KByte 1KB=1000byte=8000bit
txKB/s 每秒发出的数据量,单位KByte
nload
是监控网卡流量,首先安装epel-release,而后安装nload
Incoming进来的 Outgoing出去的 买带宽是指出去的带宽
若是有攻击,进来的流量会不少
free查看内存使用状况
total内存总大小,used使用了多少,free内存剩余多少,shared共享的(不关注),buff/cache缓冲缓存,系统会把内存分出来给这它们,available=free+没用完到的buff+cache
ps监控系统
用法一:
ps aux | grep nginx 查看一个进程有没有在运行
用法二:
ps -elf 列出全部进程
PID杀死一个进程,就用kill+PID数字,kill -9 xxx
检查系统状态
netstat 查看网络状态
netstat -lnp 查看监听端口
netstat -an 查看系统的网络状态
netstat -lntp 只查看tcp的端口
tcpdump抓包
用法最多:tcpdump -nn
两个n指用ip的形式显示出来 原ip原端口>现ip现端口
length 0 检查这个数字,DDos攻击,有一种udp flood攻击,300G的攻击
tcpdump -nn -i ens33 指定网卡的名字
tcpdump -nn port 80 指定端口来抓包
tcpdump -nn not port 22 and host 192.168.0.100
也能够排除某有个端口,和只要某一个ip的包,这个ip能够是源端口的或者是现端口的
tcpdump -nn -c 100 -w 1.cap 指定只抓100个-c,存到一个文件里去-w(/tmp/1.cap)