Linux系统一些系统查看指令

一、vmstat

[[email protected] ~]# vmstat 2 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 343228   8952  43660    0    0     5     1   11   10  0  0 100  0  0

介绍一下vmstat的常用方法,第一个参数为采样的时间间隔,第二个参数为采样的次数。

[[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
 0  0      0 340616   9292  45460    0    0     5     1   11   10  0  0 100  0  0 
 0  0      0 340600   9292  45460    0    0     0     0   13   11  0  0 100  0  0 
 0  0      0 340600   9292  45460    0    0     0     0   10   11  0  0 100  0  0 
 0  0      0 340476   9292  45460    0    0     0     2   12   16  0  0 100  0  0 
 0  0      0 340476   9292  45460    0    0     0     0   11   11  0  1 100  0  0

以上为每隔2秒进行采样,没指定次数则会一直进行,ctrl+c结束采样。下面我们来说下各个参数的意义。

    r:表示等待CPU资源的进程数,当这个数目超过CPU个数,则系统在CPU上有性能瓶颈。
    b:表示有几个进程因等待IO而阻塞了,在高并发的传统模型的web服务器上,这点可能是瓶颈。
    swpd:表示使用的swpd内存量,当使用到swpd时,表示你的物理内存不足了。
    free:剩余的物理内存量,我这边剩余340M。
    buff:Linux系统使用一定量的内存来作为IO的缓冲,buff用于储存文件的元数据,如目录内容,文件权限。
    cache:cache用于缓存打开的文件。
    si:每秒从交换区写入内存的大小(单位:kb/s)
    so:每秒从内存写到交换区的大小(单位:kb/s)
    bi:每秒读取的块数
    bo:每秒写入的块数
    in:每秒CPU的中断数,包括时间中断
    cs:上下文切换次数:调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目。
    us:用户空间占据的CPU时间
    sy:内核空间占据的CPU时间,这个时间偏长一般是消耗在IO上。
    wa:等待IO的CPU时间。
    st:被偷走的时间,不知道为什么被偷走了,cpu神偷。

二、top

正常情况下直接使用top命令就可以了,如果你不想要top占据前台,可以使用top -n 。top是个交互式的命令,我们可以在top窗口对top进行调整。下面先介绍一下top显示的内容

第一行为uptime:

[[email protected] ~]# uptime
 15:26:14 up  4:05,  3 users,  load average: 0.00, 0.00, 0.00
        第一列:当前时间
        第二列:系统运行时间
        第三列:登录的用户数
        第四列:平均队列长度,即负载。时间为1分钟、5分钟、15分钟。

第二、三行为CPU信息:

注意,当CPU为多个的时候,这边可能有多行,显示为Cpu(s)时为平均值,按“1”键可以展开。

        82 total:进程总数
        1 running:运行的进程数
        81 sleeping:休眠的进程数
        0 stopped:停止的进程数
        0 zombie:僵死的进程数
        0.3% us :用户空间占用CPU百分比        1.0% sy :内核空间占用CPU百分比        0.0% ni :用户进程空间内改变过优先级的进程占用CPU百分比        98.7% id :空闲CPU百分比        0.0% wa :等待输入输出的CPU时间百分比        0.0%hi:硬件CPU中断占用百分比        0.0%si:软中断占用百分比        0.0%st:被偷走的CPU时间

第四、五行为内存信息:

Mem:

        191272k total    物理内存总量
        173656k used    使用的物理内存总量
        17616k free    空闲内存总量
        22052k buffers    用作内核缓存的内存量

Swap:

        192772k total    交换区总量
        0k used    使用的交换区总量
        192772k free    空闲交换区总量
        123988k cached    缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。

下面显示的内容为

序号  列名    含义
a    PID     进程id
b    PPID    父进程id
c    RUSER   Real user name
d    UID     进程所有者的用户id
e    USER    进程所有者的用户名
f    GROUP   进程所有者的组名
g    TTY     启动进程的终端名。不是从终端启动的进程则显示为 ?
h    PR      优先级
i    NI      nice值。负值表示高优先级,正值表示低优先级
j    P       最后使用的CPU,仅在多CPU环境下有意义
k    %CPU    上次更新到现在的CPU时间占用百分比
l    TIME    进程使用的CPU时间总计,单位秒
m    TIME+   进程使用的CPU时间总计,单位1/100秒
n    %MEM    进程使用的物理内存百分比
o    VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p    SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
q    RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r    CODE    可执行代码占用的物理内存大小,单位kb
s    DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t    SHR     共享内存大小,单位kb
u    nFLT    页面错误次数
v    nDRT    最后一次写入到现在,被修改过的页面数。
w    S       进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x    COMMAND 命令名/命令行
y    WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
z    Flags   任务标志,参考 sched.h

上面的内容可以在top交互命令下,按F进行选择需要显示的内容。按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 FO 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

top可以使用的参数:

d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。 
p:通过指定监控进程ID来仅仅监控某个进程的状态。 
S: 指定累计模式 
s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 
i: 使top不显示任何闲置或者僵死进程。 
c:显示整个命令行而不只是显示命令名

在交互环境下使用:

h或者? :显示帮助画面,给出一些简短的命令总结说明。 
k:终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。 
i :忽略闲置和僵死进程。这是一个开关式命令。 
q:退出程序。 
r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 
S:切换到累计模式(不知道干嘛的)
d: 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。 
f或者F:从当前显示中添加或者删除项目。 
o或者O:改变显示项目的顺序。 
l:切换显示平均负载和启动时间信息。 
m:切换显示内存信息。 
t:切换显示进程和CPU状态信息。 
c:切换显示命令名称和完整命令行。 
M:根据驻留内存大小进行排序。 
P:根据CPU使用百分比大小进行排序。 
T:根据时间/累计时间进行排序。 
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

三、mpstat

其实讲完了上面2个命令,CPU啊、内存啊、IO啊查看都没什么问题了,下面在讲一下mpstat的常用方法。

[[email protected] ~]# mpstat -p ALL
用法: mpstat [ 选项 ] [ <时间间隔> [ <次数> ] ]
[[email protected] ~]# mpstat -P ALL 1 10
Linux 2.6.32-279.el6.x86_64 (node2.buranle.com)  2015年07月29日  _x86_64_ (1 CPU)
16时10分22秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
16时10分23秒  all    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   99.00
16时10分23秒    0    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   99.00

字段的含义如下:

%user      在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程  (usr/total)*100
%nice      在internal时间段里,nice值为负进程的CPU时间(%)   (nice/total)*100
%sys       在internal时间段里,内核时间(%)       (system/total)*100
%iowait    在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
%irq       在internal时间段里,硬中断时间(%)     (irq/total)*100
%soft      在internal时间段里,软中断时间(%)     (softirq/total)*100
%idle      在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100

四、iostat

[[email protected] ~]# iostat --help
用法: iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]

通常使用的方法:

[[email protected] ~]# iostat -d -k 2
Linux 2.6.32-279.el6.x86_64 (node2.buranle.com)  2015年07月29日  _x86_64_ (1 CPU)
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.42         7.14         2.68     126231      47478
dm-0              0.93         6.88         2.68  a   121641      47464
dm-1              0.02         0.07         0.00       1188          0

参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。

参数的含义:

tps:该设备每秒的传输次数。"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

iostat还有一个比较常用的选项-x,该选项将用于显示和io相关的扩展数据。

[[email protected] ~]# iostat -d -k -x 2
Linux 2.6.32-279.el6.x86_64 (node2.buranle.com)  2015年07月29日  _x86_64_ (1 CPU)
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.09     0.49    0.24    0.17     7.08     2.67    47.03     0.01   14.38   4.42   0.18
dm-0              0.00     0.00    0.26    0.67     6.82     2.67    20.48     0.08   91.01   1.95   0.18
dm-1              0.00     0.00    0.02    0.00     0.07     0.00     8.00     0.00    2.60   1.13   0.00

参数的含义:

rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;wsec/:每秒写入的扇区数。
rKB/s:The number of read requests that were issued to the device per second;
wKB/s:The number of write requests that were issued to the device per second;
avgrq-sz 平均请求扇区的大小avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。   await:每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢。
%util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

其他的如free、iotop等就不一一介绍了,参数的解释项主要来源于网络结合自己的理解进行了稍微的修改。

时间: 2025-01-05 00:23:22

Linux系统一些系统查看指令的相关文章

Linux内核版本、系统版本查看指令

1 内核版本查看指令 1.1 cat /proc/version 1.2 uname -a 2 系统版本查看指令 2.1 cat /etc/issue 2.2 lsb_release -a 上述图片均是ubuntu系统的测试结果,其他系统可能有些差异. 原文地址:https://www.cnblogs.com/zpchya/p/10857881.html

Linux系统下如何查看已经登录用户

Linux系统下如何查看已经登录用户 虽然前面介绍了用户管理,但是那部分主要是管理用户的帐号,也就静态的用户列表.而LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务.系统管理员可以随时了解系统中有那些用户,用户都在进行什么操作. 查看用户的操作 系统管理员若想知道某一时刻用户的行为,只需要输入命令W 即可,在SHELL终端中输入如下命令: [[email protected] ROOT] # W2:31PM UP 11 DAY ,21:18 4 USERS, LODE

Linux系统文本编辑器vim指令大全

本文适合Vim新手,既可阅读入门 相关在线资料http://baike.baidu.com/subview/113188/9338173.htm?fr=aladdin vim的使用之汇总   vimtutor (在线学习) 功能最强在的编辑器--vim vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件.当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻.游刃有余,

Linux系统下如何查看物理内存占用率

Linux系统下如何查看物理内存占用率 Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如:Mem:   4086496k total, 4034428k used,    52068k free,   112620k buffersSwap: 4192956k total,   799952k used, 3393004k free, 1831700k cached 接近98.7%,而实际上的应用程序占用的内存往往并没这么多, PI

linux系统中如何查看日志 (转)

linux系统中如何查看日志 (常用命令) 博客分类: linux相关 LinuxIDERedHat防火墙活动 cat tail -f 日 志 文 件 说    明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UUCP和news设备相

linux小知识之查看系统时间

有个朋友想查看服务器一天的网卡流量,但是没有安装cacti.所以我推荐他使用ifconfig查看下网卡流量,然后看下系统运行时间,除出来参考一下.他居然问我系统时间怎么查看.好吧,那我就写篇文章记录下怎么查看系统时间 方法一: who命令, -r runlevel     -b boot [[email protected] ~]# who -r 运行级别 3 2016-11-03 10:32 [[email protected] ~]# who -b 系统引导 2016-11-03 10:32

Linux系统常见的压缩指令 北京赛_车平台搭建架设

北京赛_车平台搭建架设QQ:[1148916888] 网站[1148916888.com] 上常见的压缩指令就是gzip,bzip2以及xz.为了支持windows常见的zip,Linux也早就有zip指令了.gzip是由GNU计划所开发出来的压缩指令. gzip可以说是应用度最广的压缩指令了,可以解开compress,zip与gzip等软件所压缩的文件. 语法为:gzip [-cdtv#] 文件名 -c:将压缩的资料输出到屏幕上,可透过资料流重导向来处理. -d:解压缩的参数 -t:可以用来检

2017-7-18-每日博客-关于Linux基本命令CnetOS7系统基本操作命令.doc

1.root/下 cat  anaconda-ks.cfg 确定是否装base软件组 yum groupinstall base  安装base组ifconfig 命令就可以使用了或者使用ip addr sh查看IP信息 YUM使用说明需要创建xxx.repo用于yum安装系统没有自带的.然后安装base组 2.命令行: 使用shell解释输入的字符串以运行程序 type sudo which, whereis, whatis, man, info 使用Tab自动补齐向上箭头查询历史histor

Linux怎样修改系统时间

修改linux的时间可以使用date指令 修改日期: 时间设定成2009年5月10日的命令如下: #date -s 05/10/2009 修改时间: 将系统时间设定成上午10点18分0秒的命令如下. #date -s 10:18:00 修改时区: 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime. 修改/etc/sysconfig/clock文件的内容为: ZONE=”Asia/Shanghai” UTC=false A

[Linux/Ubuntu]安装系统

[Linux/Ubuntu]安装系统 在进行系统安装前,需要进行一些列准备工作. 首先声明,虽然我安装ubuntu的时候保留了win10系统(即双系统),但是方法是通用的. 准备工作 首先预留一定空间给即将安装的Ubuntu系统. 可以用分区工具调整出一个空闲分区. 我为了省麻烦,直接手动格式化了一个小盘. 其实也不是一定要在win下进行格式化准备,只是提前备份好文件,然后准备将某个块作为空闲分区. 大概完成备份的工作就好,至于格式化过程,也可以在安装Ubuntu选择挂载时进行. 步骤一: 选择