5.1-5.4 监控Linux系统状态
- 查看系统负载:
使用命令w
或uptime
可以查看系统当前负载:
[root@rice01 ~]# w
23:09:31 up 45 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.142.1 22:49 3.00s 0.02s 0.00s w
[root@rice01 ~]# uptime
23:09:38 up 45 min, 1 user, load average: 0.00, 0.01, 0.05
up 45 min表示系统启动运行了45分钟;
1 user表示当前有一个用户在使用系统;
load average:0.00,0.01,0.05为当前负载值,后面三个数字表示1分钟、5分钟、15分钟平均有多少个进程占用CPU;
占用CPU的进程可以是Running,也可以是Waiting,且某一时刻1颗CPU只能有一个进程在使用其资源;
- 查看系统进程:
使用命令top可以动态查看当前所有进程的信息,每3秒刷新一次。进程排序默认按CPU使用率值从大到小从上到下列出,按M可以按内存使用值从大到小排序,按数字1可以显示所有CPU使用率详情,按q退出;
98 total表示有98个任务数,其中有1个活动任务,97个挂起任务;
%CPU表示CPU使用率,us为用户级别的进程使用率,sy表示系统级别的进程的使用率,RES为该进程占用系统内存的大小;
avail Mem为当前系统可使用的物理内存大小,单位为KB;
RES为该进程占用系统内存的大小;
%Mem为内存使用率;
top -bn1
列出当前系统进程信息,非动态,默认按CPU使用率排序,该命令会应用在shell脚本中;
cat /proc/cpuinfo
可以查看CPU信息(每颗CPU会单独列出),lscpu
可以汇总列出CPU的信息; - CentOS 7中查看内存信息:
[root@rice01 ~]# free
total used free shared buff/cache available
Mem: 995896 234388 597828 7764 163680 592208
Swap: 2097148 0 2097148
free命令列出的值默认以kb为单位,最后一列的available是真正剩余的可使用的物理内存大小,free后加-h可以自动以合适的单位显示数值,-b以bytes为单位,-m以mb为单位;
buffer : 这部分内存是从CPU产生即将写入到磁盘里去的那部分数据;
cached 这部分数据是先从磁盘里读出来,然 后临时存到内存里的那部分数据;
- 手动增加swap:
使用dd命令创建创建一个大小为1G的文件,设置读入/输出的块大小为100M,拷贝10个块:
dd if=/dev/zero of=/swapfile bs=100M count=10
把这个文件变成swap文件:
mkswap /swapfile
为这个文件设置权限为600:
chmod 600 /swapfile
启用这个swap文件:
swapon /swapfile
编辑/etc/fstab文件,使在每次开机时自动加载swap文件:
vi /etc/fstab
/swapfile swap swap defaults 0 0
- 监控磁盘:
1)iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。
执行yum install -y sysstat
安装软件包。
执行iostat
显示所有设备的负载情况:
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。
如果%iowait的值过高,表示硬盘存在I/O瓶颈。
如果%idle值高,表示CPU较空闲。
如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。
tps:该设备每秒的传输次数;
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read: 读取的总数据量;
kB_wrtn:写入的总数量数据量;
执行iostat 2 3
表示每隔2秒刷新显示,且显示3次;
执行iostat -d /dev/sda
显示指定的磁盘信息;
执行iostat -dx
查看设备使用率(%util)、响应时间(await),-x显示详细信息:
%util:一秒中有百分之多少的时间用于I/O;
如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷;
idle小于70%时,IO压力就较大了;
2)iotop是一个用来监视磁盘I/O使用状况的top类工具,可监测到哪一个程序使用的磁盘IO的信息。
执行yum install -y iotop
安装软件包。