1 iostat
功能:输出CPU和磁盘I/O相关的统计信息
语法:iostat 选项 延迟 计数
1)iostat
第一行:kernel版本(完整主机名) 报告生成日期 系统架构(CPU数)
第三行:avg-cpu(CPU的平均值)
%user :用户运行进程所占用的CPU百分比
%nice :进程优先级操作占用的CPU百分比
%sys :系统级别(kernel)运行所使用的CPU百分比
%iowait:CPU等待硬件I/O时所占用的CPU百分比
%steal :st 的全称是 Steal Time ,就是 Xen Hypervisor 分配给运行在其它虚拟机上的任务的实际 CPU 时间。
%idle :CPU空闲时间的百分比
第六行:device(硬盘设备)
tps:每秒钟传输的IO请求的数量 KB_read/s:设备每秒钟读取的数量
KB_wrtn/s:设备每秒钟写入的数量 KB_read:设备读出的总数
KB_wrtn:设备写入的总数
2)iostat参数
-c 仅显示cpu信息 -d 仅显示磁盘信息
-k 以k为单位显示磁盘每秒请求的块数 -t 显示报告生成时间
-p device | all 显示指定或所有的块设备信息 -x 输出扩展信息[与-p参数冲突]
-N 显示设备映射名 -V 显示iostat版本信息
3)#iostat –d 2 //每2秒显示一次设备统计信息
#iostat –d 2 6 //每2秒显示一次设备统计信息
#iostat –dNk 2 10 //每2秒以K为单位显示一次设备统计信息,且显示LVM映射名称,共10次
2 vmstat
功能:监控CPU、内存、虚拟内存交换、IO读写等各种情况的使用
语法:vmstat 选项 延迟 计数
1)#vmstat //显示当前系统的各项信息
输出结果:
proc(进程)
r:表示运行队列(即:多少进程真正的分配到CPU)
b:阻塞队列(等待资源分配的进程数)
- memory(内存)
swap:当前swap使用k数的情况
free:当前物理内存空闲的k数
buff:内存使用的buff总数,一般为块设备操作,文档权限记录等
cache:内存使用的cached总数,一般打开文件,运行程序时使用
swap(虚拟内存)
si:每秒钟从磁盘读入到swap的大小(不可长期大于0)
so:每秒钟从swap写入到磁盘的大小(不可长期大于0)
IO(块设备IO)
bi:块设备每秒钟接收到的块数
bo:块设备每秒钟发送的块数
system(系统情况)
in:系统每秒中断总数(含时钟中断)
cs:每秒上下文切换的次数(系统调用,环境变化等)
CPU(cpu情况)
us:用户(及优先级)占用CPU时间
sy:系统(kernel)占用CPU时间
id:闲置CPU时间
wa:IO等待CPU时间
st:一个虚拟机占用的CPU时间
2)#vmstat 2 10 //每2秒采样1次,总计10次
#vmstat 5 //每5秒检测一次,直至手工停止
3 pkill
功能:控制同名程序的所有进程
语法:pkill 选项 pattern(模式)
1)参数:-G gidlist——仅匹配真实组ID在给定列表中的进程。每一个组ID可以使用组名称或者数字的组ID指定。
-P ppidlist——仅匹配给定列表中PPID的进程。
-t termlist——仅匹配与给定列表中终端关联的进程。每一个终端指定为在/dev中终端设备路径名称的后缀。例如term/a 或者 pts/0。
-U uidlist——仅匹配真实的用户ID在给定列表中的进程。
-u euidlist——仅匹配有效用户ID在给定列表中的进程
-signal——指定发往每一个匹配进程的信号。如果没有指定,SIGTERM 是默认的信号。
-x——仅认为进程其参数字符串或者执行文件名称正确匹配规定模式是匹配的进程。
2)将某个终端的用户踢出 pkill -kill -t pts/2
按用户名踢出用户 pkill -kill -U arisa
强制使arisa账户登出 pkill -9 -u arisa
3)当利用pkill对PPID进程操作时,实际上仅针对此PPID的子进程操作,而不会对指定的PPID进行操作。如:
新建用户aa,修改账户密码,使用aa账户在其他终端登录,运行命令:sleep 10000s
使用root账户,运行 #pstree –p aa来查看aa用户的登录shell和其下运行的进程
使用pkill –P PID或 pkill –SIGKILL –P PID命令杀死aa的登录shell进程号,再用命令 #pgrep -l -u aa可查看到aa用户的登录shell进程并未被杀死,但其下子进程均以被杀死
注:如果系统内没用pstree命令,可以安装psmisc软件包
4 pgrep
功能:程序检查在系统的中活动进程,报告进程属性匹配命令行上指定条件的进程的ID。
参数:与pkill一致,-l 以长格式输出,仅对pgrep有效
1)获得一root账户指定的sshd的PID #pgrep -x -u root sshd
2)显示指定账户aa所执行的PID及相关名称 #pgrep -l -u aa
5 pidstat
功能:监控被Linux内核管理的独立任务(进程)
说明:它输出每个受内核管理的任务的相关信息。
pidstat命令也可以用来监控特定进程的子进程。间隔参数用于指定每次报告间的时间间隔。它的值为0(或者没有参数)说明进程的统计数据的时间是从系统启动开始计算的。
1)pidstat
第一行:略
第三行:进程启动时间 UID PID
%usr - 当在用户层执行(应用程序)时这个任务的cpu使用率,和 nice 优先级无关。注意这个字段计算的cpu时间不包括在虚拟处理器中花去的时间。
%system – 这个任务在系统层使用时的cpu使用率。
%guest – 任务花费在虚拟机上的cpu使用率(运行在虚拟处理器)。
%CPU – 任务总的cpu使用率。在SMP环境(多处理器)中,如果在命令行中输入-I参数的话,cpu使用率会除以你的cpu数量。
CPU - 正在运行这个任务的处理器编号。
Command - 这个任务的命令名称。
2)显示PID2864的IO信息
#pidstat –d –p 2864
kB_rd/s - 任务从硬盘上的读取速度(kb)
kB_wr/s - 任务向硬盘中的写入速度(kb)
kB_ccwr/s - 任务写入磁盘被取消的速率(kb)
3)显示PID2864的内存使用情况的数据
#pidstat -r -p 2864
minflt/s – 从内存中加载数据时每秒出现的小的错误的数目,这些不要求从磁盘载入内存页面。
majflt/s - 从内存中加载数据时每秒出现的较大错误的数目,这些要求从磁盘载入内存页面。
VSZ – 虚拟容量:整个进程的虚拟内存使(kb)
RSS - 长期内存使用:任务的不可交换物理内存的使用量(kb)
4)其他:
显示5次page faults的统计数据结果,每次间隔2秒—— #pidstat -r 2 5
显示所有mysql服务器的子进程 #pidstat -T CHILD -C mysql
统计所有数据并生成一个新的报告 #pidstat -urd -h
6 killall5
功能:控制系统中的所有进程
语法:killall5 信号 进程名
例:关闭所有进程 #killall5 -9
7 sar
system Activity Reporter系统活动情况报告
功能:linux系统性能分析工具,可分析Linux系统的文件系统读写情况,系统调用的使用情况,磁盘IO,CPU使用率,内存使用,进程活动等
语法:sar 操作 -A -o file -t n
参数:-t n1 n2——指定n1的采样间隔时间n1(秒),及总共采样次数n2
-o——以2进制格式记录至指定文件中 -A——所有采样报告的总和
-u——采样并输出CPU信息 -v——输出
dentunusd——目录高速缓存中未使用的缓存条目编号
file-nr——文件句柄的使用量 inode-nr—— i节点使用量
pty-nr——伪终端的pty数量 -d——输出每个设备的活动信息
-r——内存与swap的统计信息 -b——显示IO与传送率的统计信息
-a文件的读写情况 -c进程统计情况,每秒创建的进程数目
-R输出内存页的统计信息 -y 终端设备活动情况统计信息
-w 输出系统交换活动的统计信息
1)对CPU使用情况每10秒采样1次,连续3次。并写入文件test中.
#sar -u -o test -t 10 3
2)查看2进制文件test #sar -f test
输出结果:
CPU 所统计的CPU数,all为所有 %user 显示user占用CPU百分比
%nice 显示进程优先级占用CPU百分比 %idel CPU闲置百分比
%system 显示kernel函数(系统调用)占用CPU百分比
%iowait 显示IO操作等待所占用的CPU百分比
%steal 显示管理程序为虚拟进程提供服务而等待虚拟CPU所占用百分(xen)
报告生成时间 average 各列项的平均值
3)查看内存和swap #sar -r 1 1
kbmemfree 与free 命令中的free值基本一致,不包括buffer 和 cache的空间
kbmemused 与free命令中used值一致,包括buffer和cache所使用的值
%memused 物理内存使用的百分比,不包含swap
kbbuffer 等同free命令中的buffer值
kbcache 等同free命令中的cache值
kbcommit 确保系统(防止内存溢出)所需要的内存数量(物理内存+SWAP)
%commit 需要内存数量与总内存(物理内存+swap)的百分比
报告生成时间 averages 各列项的平均值
4)内存分页监控 #sar -B 1 1
pgpgin/s 从磁盘或SWAP置换到内存每秒的KB数
pgpgout/s 从内存置换到磁盘或SWAP每秒KB数
fault/s 每秒钟系统产生的缺页数(主缺页+次缺页)之和(缺页:数据未在内存内)
majflt/s 每秒钟产生的主缺页
pgfree/s 每秒被放入空闲队列中的页个数
pgscank/s 每秒被kswapd扫描(置换到swap)的页个数
pgscand/s 每秒直接被扫描的页个数
pgsteal/s 每秒钟从cache中清除出来满足内存需求的页个数
%vmeff 每秒清除的页个数占总扫描页(pgscank/s+gpscand)个数的百分比
报告生成时间 average 各列项的平均值
5)IO与传送速率监控 #sar –b 1 1
tps/s 每秒钟物理设备IO传输总量
rtps/s 每秒钟对物理设备读的数据总量
wtps/s 每秒钟对物理设备写的数据总量
bread/s 每秒钟对物理设备读的数据量(块/s)
bwrtn/s 每秒钟对物理设备写的数据量(块/s)
报告生成时间 average 各列项的平均值
6)进程队列长度与平均负载状态监控 #sar -q 1 1
runq-sz 等待运行的进程数(运行队列的长度)
plist-sz 进程列表中processes(进程)和threads(线程)的数量
ldavg-1 最后1分钟系统的平均负载
ldavg-5 最后5分钟的系统平均负载数
ldavg-15 最后15分钟的系统平均负载数
报告生成时间 average 各列项的平均值
7)系统交换活动信息监控 #sar –W 1 1
pswpin/s 每秒系统进入swap page的数量
pswpout/s 每秒系统读出swap page的数量
报告生成时间 average 各列项的平均值
8)设备使用情况监控,并显示设备名称而不用设备节点号显示 #sar -d –p 1 1
DEV 设备名称 tps 每秒对物理磁盘I/O的次数
rd_sec/s 每秒读取扇区的次数 wr_sec/s 每秒写入扇区的次数
avgrq-sz 平均每次设备I/O操作的数据大小(扇区)
avgqu-sz 磁盘请求队列的平均长度
await 从请求磁盘操作到系统完成处理,每次请求所消耗的平均时间(含列等待时间),单位为毫秒(1秒=1000毫秒)
svctm 系统处理每次请求的平均时间,不包括请求在队列中所消耗的时间
%util 请求占CPU的百分比,此数越大,越代表设备带宽越饱和
报告生成时间 average 各列项的平均值
注:系统瓶颈查看推荐:
设备:sar –b sar –u sar –d
CPU: sar –u sar –q
内存:sar –B sar –W sar -r
8 AIDE
1)安装AIDE:yum install aide -y
2)配置文件所在路径:/etc/aide.conf
3)对AIDE的配置文件进行检测:aide -D
4)AIDE权限说明:AIDE的每个检测权限都是由若干的权限组成,其组成的权限有:
p :权限 i :i节点(索引节点) n :连接数量
u :用户 g :用户组 s :大小
m :最后一次修改时间 a :最后一次访问时间
c :创建时间 S :检查增加的大小
l :链接名 b :块计算 I :忽略改变的文件
sha1 :sha1校验 sha256:sha256校验 sha512:sha512校验
md5 :md5校验 crc32 :crc32校验 rmd160:rmd160校验
tiger :tiger校验 haval :haval校验
注:因此AIDE的检测权限为R :p+i+n+u+g+s+m+c+md5 L :p+i+n+u+g
5)根据aide.conf的配置初始化数据库 #aide -c /etc/aide.conf -i
6)将新的初始化的数据库进行使用 #cd /var/lib/aide
#cp aide.db.new.gz aide.db.gz
7)对系统进行检测 #aide --check 或 aide –C
8)如果文件修改,对AIDE数据库更新 #aide --update 或 aide –u
转载请注明出处,谢谢!