linux/unix上系统的监控,主要使用的工具—————— > vmstat 、 top 、ps
vmstat工具的使用:
vmstat - Report virtual memory statistics
//用于报告虚拟的内存的数据
vmstat命令是最常见的Linux/Unix监控工具(好像在mac上是没有这个命令的),
作用:可以展现给定时间间隔的服务器的状态值。
(包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。)
相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
vmstat基本使用的格式:
vmstat interval(时间间隔) count(总共的次数)
eg:vmstat 2 10 //将会显示的是10条记录,并且间隔的时候是2秒。
如果使用vmstat命令行没有嗲任何的信息的时候(或者只是带有时间间隔和任意的技术的参数的时候),显示的第一行为: 自系统引导重新启动以来的平均值。
相关详情可以查看相应的图片:
top也是监控中的一个比较好用的工具:
基本的命令行的使用情况:界面:
详细讲解参数:(这里引用到别人的博客,网址现有找到sorry)
top - 显示Linux系统工作的任务。
top命令显示的内容分为两个部分:
1)(上部分)是系统整体性能
2)(下部分)显示各个进程之间的信息。
第一行显示的内容和uptime命令一样,【l】可以显示和隐藏这个区域:
top显示界面的第一行和update显示的内容是一样的。
03:04:21 up 86 days, 23:50, 1 user, load average: 0.00, 0.00, 0.00
03:04:21 系统当前时间
up 86 days, 23:50, 系统开机到现在经过了多少时间
1 user 当前2用户在线
load average: 0.00, 0.00, 0.00 系统1分钟、5分钟、15分钟的CPU负载信息
接下来是相关的任务:
Tasks: 20 total, 1 running, 19 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1048576k total, 110792k used, 937784k free, 0k buffers
Swap: 524288k total, 0k used, 524288k free, 22248k cached
上面的内容是:
第一行:总共20个任务,1个任务在执行,19个在睡眠状态。0个停止,0个僵尸进程。
第二行:cpu的信息,这个可以参考vmstat的内容(vmstat的图)。
第三行:是内存的信息情况
第四行:是交换的空间情况。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12999 mysql 20 0 187m 25m 5204 S 0.0 2.4 14:32.42 mysqld
1 root 20 0 10372 748 624 S 0.0 0.1 2:12.58 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/50776
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper/50776
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NI nice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
Linux上top命令设置到时的命令。
q:退出top命令
<Space>:立即刷新
s:设置刷新时间间隔
c:显示命令完全模式
t::显示或隐藏进程和CPU状态信息
m:显示或隐藏内存状态信息
l:显示或隐藏uptime信息
f:增加或减少进程显示标志
S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
P:按%CPU使用率排行
T:按MITE+排
M:按%MEM排行
u:指定显示用户进程
r:修改进程renice值
kkill:进程
i:只显示正在运行的进程
W:保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置。
h:帮助命令。
3、同时我们还会用到一个命令就是ps命令,在我们入门的时候都是使用到这个命令,建档查看一下进程的信息:
ps report a snapshot of the current processes.
显示当前进程的片段。
常用搭配的情况是:
ps -ef
ps -au (这用的比较多)
进程即为涉及到相应的cpu占用情况。
进程中的内存:
vmstat 本来就是用来查看内存的状态的,但是内存和(cpu)进程之间永远是分不开的。
内存监控使用vmstat和ps就好。
vmstat -s
标准输出摘要的报告。——————> 主要是用于显示内存的具体使用情况,
所以不定时间保存这个文件,然后查看相应的差值,就可以知道相应的内容的具体情况了。
ps v pid
//显示某一个进程的详细的信息报告。————> 标准化
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
17122 pts/0 Ss 0:00 0 882 115125 2768 0.0 -bash
(ps:不会表示内存共享的的内存段和内存映射销毁的内存--> 因为许多应用程序使用共享内存和内存映射段。(即为:没有单独标明的内存数目))
(即为:没有单独标明的内存数目)
这个几个参数都还是不是很了解,以及他们的作用。
STAT 进程的状态
TIME 进程销毁的时间
COMMAND:命令的名称和参数;
MAJFL
TRS
DRS
RSS 进程的实内存的大小,一般为内存段和内存页的和的4倍。(这有待理解)
%MEM 一个进程的所占内存的百分比。
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
上面是有关于进程中的内存的一些答题主要的情况。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
看看内存交换空间的的查看:
使用工具(或者说是:命令)
procinfo ——> 查看系统的中的swap区域的。
显示系统状态。procinfo(process information)
linux上出现一个问题,就是管理工具经常会被占用;
eg:
Existing lock /var/run/yum.pid: another copy is running as pid 16950.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 39 M RSS (442 MB VSZ)
Started: Thu Sep 17 00:54:43 2015 - 32:35 ago
State : Sleeping, pid: 16950
即为yum这个工具被锁定与使用了,所以我们要找出这个进程
# 命令: ps aux | grep yum //这个命令而过程可以省略
keill -9 pid
这里的pid是上面的16950 这个pid,不用去找了