day26: 系统运维命令2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day26: 系统运维命令2相关的知识,希望对你有一定的参考价值。
1、iostat/iotop命令默认这个命令没有安装,需要安装sysstat命令(同sar命令一起安装)
iostat这个命令用于查看系统的输入输出设备及cpu的使用情况,其特点是显示磁盘的读写情况及cpu的使用情况,同vmstat一样,iostat也有一个弱点,不能针对某个进程进行深入分析,只能系统的查看:
常用选项: -x
[[email protected] ~]# iostat -x /dev/sda Linux 3.10.0-693.el7.x86_64 (localhost.localdomain) 2018年01月23日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.05 0.00 0.15 0.05 0.00 99.76 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.01 0.10 0.05 3.89 3.42 99.74 0.01 48.01 21.97 100.13 8.00 0.12
我们主要重点关注%util这一项,表示被I/O消耗的cpu百分比(I/O有多长时间在占用CPU的),如果这个值特别大,说明磁盘i/0很差(很忙碌),则需要检查是那些进程在频繁的读写:
这个时候,我们需要用到iotop命令:
安装: yum install -y iotop
[[email protected] ~]# iotop #动态排序显示
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % syst~ze 21
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kso~qd/0]
在iotop的运行结果中,可以很直观显示那些进程在对磁盘进行读写,并且会动态的排序:
可以使用快捷键“o”来显示只有I/O输出的进程:
2. free命令
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
常用选项 -h
Python
[[email protected] ~]# free -h total used free shared buffers cached Mem: 979M 533M 446M 6.6M 9.8M 228M -/+ buffers/cache: 295M 684M Swap: 2.0G 0B 2.0G
1 2 3 4 5 | [root@localhost ~]# free -h total used free shared buffers cached Mem: 979M 533M 446M 6.6M 9.8M 228M -/+ buffers/cache: 295M 684M Swap: 2.0G 0B 2.0G |
可以很直观的显示各项数据的大小
公式:total=used + free + buffers + cache
total:内存总数;
used:已经使用的内存数;
free:空闲的内存数;
shared:当前已经废弃不用;
buffers:缓存内存数;
cached:缓存内存数。
在CentOS 7.2+版本,free -h的结果如下:
Python
[[email protected] ~]# free -h total used free shared buff/cache available Mem: 994M 369M 153M 50M 470M 407M Swap: 999M 304M 695M
1 2 3 4 | [root@chengzi ~]# free -h total used free shared buff/cache available Mem: 994M 369M 153M 50M 470M 407M Swap: 999M 304M 695M |
我们只需要关注available的值,它包含free和buffer/cache剩余部分,即就是真实的剩余物理内存。
3. ps命令
ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
linux上进程有5种状态:
1. R 运行 runnable (on run
queue)(正在运行或在运行队列中等待)
2. S 中断 sleeping (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. D 不可中断 uninterruptible sleep
(usually IO) (收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
D状态的进程很少见,但也可以人为设定,这类进程非常占用系统CPU资源,会使得CPU的load average
变高,而CPU的使用率却体现不高。
4. Z 僵死a defunct (”zombie”) process (进程已终止, 但进程描述符存在,
直到父进程调用wait4()系统调用后释放)
5. T 停止 traced or
stopped(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
T 状态的进程也可以人为操作,如vmstat
Python
[[email protected] ~]# vmstat 2 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 8 0 312100 139868 0 490508 0 0 1 1 0 1 1 0 99 0 0 0 0 312100 139868 0 490508 0 0 0 0 123 124 0 0 100 0 0 0 0 312100 139868 0 490508 0 0 0 0 117 105 0 0 100 0 0 ^Z [1]+ Stopped vmstat 2 #使用Ctrl+Z暂停进程,可以查看vmstat的状态为T [[email protected] ~]# ps aux |grep vmstat root 12893 0.0 0.1 148308 1352 pts/1 T 09:48 0:00 vmstat 2 root 12895 0.0 0.0 112648 952 pts/1 S+ 09:48 0:00 grep --color=auto vmstat
1 2 3 4 5 6 7 8 9 10 11 | [root@chengzi ~]# vmstat 2 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 8 0 312100 139868 0 490508 0 0 1 1 0 1 1 0 99 0 0 0 0 312100 139868 0 490508 0 0 0 0 123 124 0 0 100 0 0 0 0 312100 139868 0 490508 0 0 0 0 117 105 0 0 100 0 0 ^Z [1]+ Stopped vmstat 2 #使用Ctrl+Z暂停进程,可以查看vmstat的状态为T [root@chengzi ~]# ps aux |grep vmstat root 12893 0.0 0.1 148308 1352 pts/1 T 09:48 0:00 vmstat 2 root 12895 0.0 0.0 112648 952 pts/1 S+ 09:48 0:00 grep --color=auto vmstat |
(测试完后,可以用fg命令将vmstat恢复到前台显示)
常用参数:-aux 显示所有包含其他使用者的行程
Python
# 查看php的进程 [[email protected] ~]# ps aux |grep 'php' USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND nginx 1075 0.0 1.1 308456 11832 ? S Nov04 0:18 php-fpm: pool blog nginx 1076 0.0 2.1 318824 22088 ? S Nov04 0:19 php-fpm: pool blog nginx 1077 0.0 1.9 316356 19720 ? S Nov04 0:16 php-fpm: pool blog nginx 1078 0.0 1.1 308516 11932 ? S Nov04 0:18 php-fpm: pool blog nginx 1079 0.0 2.3 320960 24240 ? S Nov04 0:19 php-fpm: pool blog nginx 1080 0.0 1.1 308056 11480 ? S Nov04 0:15 php-fpm: pool blog nginx 1081 0.0 2.5 322920 26184 ? S Nov04 0:17 php-fpm: pool blog nginx 1083 0.0 1.9 316672 19836 ? S Nov04 0:16 php-fpm: pool blog root 12885 0.0 0.0 112648 952 pts/1 R+ 09:40 0:00 grep --color=auto php root 20922 0.0 0.1 225668 1092 ? Ss Mar06 84:30 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 查看php的进程 [root@chengzi ~]# ps aux |grep 'php' USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND nginx 1075 0.0 1.1 308456 11832 ? S Nov04 0:18 php-fpm: pool blog nginx 1076 0.0 2.1 318824 22088 ? S Nov04 0:19 php-fpm: pool blog nginx 1077 0.0 1.9 316356 19720 ? S Nov04 0:16 php-fpm: pool blog nginx 1078 0.0 1.1 308516 11932 ? S Nov04 0:18 php-fpm: pool blog nginx 1079 0.0 2.3 320960 24240 ? S Nov04 0:19 php-fpm: pool blog nginx 1080 0.0 1.1 308056 11480 ? S Nov04 0:15 php-fpm: pool blog nginx 1081 0.0 2.5 322920 26184 ? S Nov04 0:17 php-fpm: pool blog nginx 1083 0.0 1.9 316672 19836 ? S Nov04 0:16 php-fpm: pool blog root 12885 0.0 0.0 112648 952 pts/1 R+ 09:40 0:00 grep --color=auto php root 20922 0.0 0.1 225668 1092 ? Ss Mar06 84:30 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) |
其中STAT项一些符号的含义:
+ 前台进程
< 高优先级进程
N 低优先级进程
L 内存中被锁了内存分页(极少出现)
s 主进程
以上是关于day26: 系统运维命令2的主要内容,如果未能解决你的问题,请参考以下文章