监控io性能
- 介绍: 之前介绍的许多关于CPU负载的命令,其实io(磁盘)对于我们也很重要。
下面要介绍的命令就是关于监控io性能的命令 - 选项: iostat -x 1
表示逐秒显示磁盘状况
%util为磁盘使用占用CPU的时间比。一个进程写入磁盘时,cpu会等待写入,此时所占地用的时间就是%util 当%utl数字过大时,说明你的硬盘可能需要更换了
- 示例:
- 命令iotop 磁盘使用
命令free
- 介绍
用于查看当前系统的总内存大小以及使用情况。Centos7系统的比6的显示要简介,但是大体上内容一致 - 选项
free
free -m或-g:表示指定数据的单位MB或GB free -h:会给数据加上单位符号,使其更加直观 - 示例
[root@centos001 ~]# free total used free shared buff/cache available //第一行 Mem: 1008152 113972 558772 6888 335408 709100 Swap: 2097148 0 2097148 [root@centos001 ~]# free -m total used free shared buff/cache available Mem: 984 111 545 6 327 692 Swap: 2047 0 2047 [root@centos001 ~]# free -h total used free shared buff/cache available Mem: 984M 111M 545M 6.7M 327M 692M Swap: 2.0G 0B 2.0G
- 解释
- 第一行:
total:内存总大小
used:真正使用的实际大小
free:剩余物理内存大小(没有分配,纯剩余)
shared:共享内存大小(不重要)
buff/chach:分配给两者的总共内存有多大 available:系统可使用的内存有多大,它包含了free。 linux系统为了让应用跑的更快,会预先分配一些内存给某些应用使用,虽然这部分内存并没有真正的使用,但也已经分配出去了。然而,当另外的一个服务要使用更多内存时,是可以把这部分拿出来使用的。所以没有占用的buffer/cache加上free就是availble - buffer/cache区别
举栗:数据经过CPU计算,即将写入磁盘,这是用的内存叫buffer;
CPU要计算是,需要把数据从磁盘中读出来,临时先放到内存中,这部分就是cache。 - 公式:total=used+free+buff/cache
一般来说内存总大小等于。使用内存与剩余内存只和,但是这里不一样。
- 第一行:
ps命令
- 介绍
系统管理员一定要知道你所管理的系统都有那些进程在运行,ps命令能够检查某一个进程是否在运行 - 选项
ps aux :列出所有进程,相当于windos里的任务管理器
ps -elf:基本等于aux - 主要用法 如:ps aux | grep nginx 加管道符后面跟进程的名字,意为检查某个进程是否在运行或它的数量
在使用grep命令查询命令数量时,其本身也算一个命令,所以要减一
-进程参数
- 参数介绍
pid:表示进程的id,在用kill命令杀死进程的时候能用到
STAT:表示进程的状态。(有以下几种)- D 不能中断的进程
R run状态的进程
S sleep状态的进程
T 暂停的进程
Z 僵尸进程
< 高优先级进程,CPU会优先处理
N 低优先级进程
L 内存中被锁了内存分页。了解就ok
s(小写) 主进程
l 多线程进程
+前台进程,比如在当前终端执行的ps aux 就是前台进程
- D 不能中断的进程
- 线程和进程的区别
1 进程里包含了线程,线程是进程的子单元
2 同一个进程下的线程全部共享相同的内存,而进程之间内存相互隔离。
用 netstat 命令查看网络状态
- 介绍:该命令主要用于于打印网络连接状况、系统所开放的端口、路由表等信息。
- 主要用法:
netstat -lnp 查看监听端口
netstat -an 查看系统的网络连接状况
netstat -lntp 只看出tcp的,不包含socket
ss -an 和nestat异曲同工,类似但不会显示进程的名字 - 示例
- 扩展用法:可以查看所有状态的数字
ESTABLISHED不大于1000时为正常,大于1000说明系统很忙 有被攻击的风险
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
抓包工具tcpdump
- 介绍:
有时想看某个网卡上有哪些数据包,尤其是当发现服务器上有流量攻击时,使用抓包工具抓取数据后就知道是哪些ip在攻击了
默认没有安装命令,要用yum安装 - 用法
tcpdump -nn 表示让示例中的34列显示成(ip+端口号);不加-nn选项则显示(主机名+服务名称)
tcpdump -nn -i ens33
tcpdump -nn port 80 指定抓包端口
tcpdump -nn –I eht0 not port 22 排除法
tcpdump -nn not port 22 and host 192.168.0.100 增加条件 指定ip
tcpdump -nn -c 100 -w 指定抓包的数量,并自动退出
tcpdump -nn -c 100 -w 1.cap指定抓包的长度和个数并保存 - 示例
- 扩展 :
查询指定网卡80端口的一个web访问情况 。相当于一个访客日志,能够知道访客的来源,访问了什么链接
安装命令 yum install -y wireshark
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
扩展
tcp三次握手四次挥手
http://www.doc88.com/p-9913773324388.html
tshark几个用法:
http://www.aminglinux.com/bbs/thread-995-1-1.html
来源:oschina
链接:https://my.oschina.net/u/3707523/blog/1844865