Linux系统资源查看 之 资源信息

1. 系统

版本信息

  • 内核版本
    使用 uname 命令:
  • -a : 查看所有系统信息
  • -r : 查看内核版本信息
  • -s : 查看内核名称

代码如下:

[niesh@niesh ~]$ uname -a
Linux niesh 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[niesh@niesh ~]$ uname -r
3.10.0-327.el7.x86_64
[niesh@niesh ~]$ uname -s
Linux
  • 发行版本
    使用 lsb_release 命令 (貌似在Ubuntu上无此命令)

代码如下:

[niesh@niesh ~]$ lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.2.1511 (Core)
Release:        7.2.1511
Codename:       Core

位数

注意,Linux下暂没有命令可以查看系统位数,但是我们可以通过查看系统可执行程序(即elf)的位数进行判定:(可以看到我的Linux为64-bit)

代码如下:

[root@niesh ~]# file /bin/cat
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=03fda19cacc76ee7464947e29ed25552138ae50e, stripped

主机名称

代码如下:

[root@niesh ~]# hostname
niesh

文件系统

可采用 df -Th进行查看:(主要看根目录的文件系统,此处为 xfs)

代码如下:

[root@niesh ~]# df -Th
文件系统                      类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos_niesh-root xfs        18G  9.1G  8.5G   52% /
devtmpfs                      devtmpfs  726M     0  726M    0% /dev
tmpfs                         tmpfs     741M  100K  741M    1% /dev/shm
tmpfs                         tmpfs     741M  9.1M  732M    2% /run
/dev/sda1                     xfs       497M  158M  339M   32% /boot

2. 用户登录

登录的用户名

代码如下:

[root@niesh ~]# whoami
root

活动用户

  • w:

查看已经登录的用户(详细信息)

  • who:

查看登陆的用户(用户名,终端,登录时间)

  • w:

代码如下:

[root@niesh ~]# w
 17:54:50 up  8:15,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
niesh    :0       :0               09:40   ?xdm?   3:35   0.32s gdm-session-wor
niesh    pts/0    192.168.139.1    09:41    3:33m  0.10s  0.10s -bash
niesh    pts/1    192.168.139.1    09:41   58.00s  0.24s  0.17s sshd: niesh [pr

第一行:系统的基本信息

  • 系统的当前时间:17:54:50
  • 从上次启动到现在的时间:8:15 (8小时15分钟)
  • 有多少用户登录到本机: 3 (3个),注意,同一个用户可重复登录
  • 系统平均负载:过去1min(0.00), 5min(0.01), 10min(0.05)

第二行,8个字段,显示用户的详细信息

  • User: 用户名(相同用户名代表我登录了多次)
  • TTY:用户登录的终端代号,TTY1-TTY6分别代表本机上的1到6号的虚拟主控台。PTS表示用户是通过远程登陆的。如果数字为:0则表示用户从XWindow登录系统
  • From: 从何处登录,"0"表示本机登录,IP地址为登录的地址
  • Login@:登录的时间点
  • IDLE:用户登录后的闲置时间
  • JCPU:用户所采用的终端所有相关的程序执行时,所消耗的CPU时间
  • PCUP:执行后面WHAT所耗费的时间
  • WHAT:表示当前用户正在做的事情:若用户正在执行某个程序,则这里会显示用户执行程序的名字。如果用户正在操作的是执行一般文字模式的命令,则这里显示的是用户的环境名称
  • who:

代码如下:

[niesh@niesh ~]$ w
 09:52:00 up  8:33,  6 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
niesh    :0       :0               四09   ?xdm?   3:52   0.33s gdm-session-worker [pam/gdm-password]
niesh    pts/0    192.168.139.1    四09   19:30m  0.10s  0.10s -bash
niesh    pts/1    192.168.139.1    四09   15:52m  0.24s  0.17s sshd: niesh [priv]
niesh    pts/2    :0               四10   15:56m  0.09s  1.93s /usr/libexec/gnome-terminal-server

登录的历史信息

  • last:

显示用户登录的历史信息
原理即为读取了/var/log/wtmp

  • lastlog:

读取/var/log/lastlog, 同last

  • last:

代码如下:

[niesh@niesh log]$ last
niesh    pts/4        192.168.139.1    Fri Aug 25 09:40   still logged in
niesh    pts/3        192.168.139.1    Fri Aug 25 09:40   still logged in
niesh    pts/2        :0               Thu Aug 24 10:23   still logged in
niesh    pts/1        192.168.139.1    Thu Aug 24 09:41 - 11:50 (1+02:08)
niesh    pts/0        192.168.139.1    Thu Aug 24 09:41 - 11:32 (1+01:50)
niesh    :0           :0               Thu Aug 24 09:40   still logged in
(unknown :0           :0               Thu Aug 24 09:39 - 09:40  (00:00)
reboot   system boot  3.10.0-327.el7.x Thu Aug 24 09:39 - 14:05 (1+04:26)
niesh    pts/0        192.168.139.1    Wed Aug 23 16:01 - crash  (17:37)
niesh    pts/2        192.168.139.1    Wed Aug 23 15:31 - crash  (18:07)
niesh    pts/1        :0               Wed Aug 23 15:30 - crash  (18:09)
niesh    :0           :0               Wed Aug 23 15:29 - crash  (18:09)
niesh    pts/0        192.168.139.1    Wed Aug 23 15:29 - 15:46  (00:17)
niesh    pts/0        192.168.139.1    Tue Aug 22 18:05 - 18:21  (00:16)
niesh    pts/3        192.168.139.1    Tue Aug 22 17:11 - 18:21  (01:09)
niesh    pts/2        192.168.139.1    Tue Aug 22 17:06 - 18:21  (01:15)
niesh    pts/1        192.168.139.1    Tue Aug 22 13:21 - 18:21  (05:00)
niesh    pts/0        192.168.139.1    Tue Aug 22 13:21 - 17:24  (04:02)
(unknown :0           :0               Tue Aug 22 10:11 - 15:29 (1+05:18)
reboot   system boot  3.10.0-327.el7.x Tue Aug 22 10:10 - 14:05 (3+03:54)
  • lastlog:

代码如下:

[niesh@niesh log]$ lastlog
用户名           端口     来自             最后登陆时间
root             pts/2                     四 8月 24 10:24:09 +0800 2017
bin                                        **从未登录过**
daemon                                     **从未登录过**
...
oprofile                                   **从未登录过**
tcpdump                                    **从未登录过**
niesh            pts/4    192.168.139.1    五 8月 25 09:40:14 +0800 2017

3. 监控系统资源信息

  • top:
    类似windows的任务管理器,查看系统进程、内存资源占用、运行时间等等信息
    定时刷新,占用了大量的系统资源
    参数:
  • -d:指定更新的间隔(s)
  • -q:没有任何延迟的更新
  • -c:显示进程完整的路径与名称。
  • -s:安全模式
  • -i:不显示任何Idle & Zombie进程
  • -n:显示更新的次数,完成后将会退出to
  • iostat:
    监控系统设备的IO负载情况
    参数:
  • -c: 只显示CPU行
  • -d: 显示磁盘行
  • -k: 以千字节为单位显示磁盘输出
  • -t: 在输出中包括时间戳
  • -x: 在输出中包括扩展的磁盘指标
  • vmstat [delay][count]:
    显示进程、内存、IO等一些列信息
  • delay: 延时多少秒刷新一次
  • count: 显示多少次
  • top:

代码如下:

[niesh@niesh log]$ top -d 10    #为了便于复制,将舒心时间改为10s
top - 14:46:54 up 13:28,  4 users,  load average: 0.00, 0.01, 0.05
Tasks: 436 total,   1 running, 435 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.3 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1517428 total,   401340 free,   645368 used,   470720 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   649748 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 63456 niesh     20   0  146420   2396   1444 R  0.3  0.2   0:00.05 top
  1315 root      20   0  317868   6524   4980 S  0.2  0.4   1:13.06 vmtoolsd
  3978 niesh     20   0  377436  18192  14384 S  0.2  1.2   1:14.92 vmtoolsd
 43779 root      20   0       0      0      0 S  0.2  0.0   0:01.98 kworker/0:0
  1373 root      20   0  203352   1244    788 S  0.1  0.1   0:00.13 gssproxy
     1 root      20   0  191616   6796   3900 S  0.0  0.4   0:08.94 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.07 kthreadd
     ...
  • 第一部分
  • 第一行: 系统时间 + 系统运行时间 + 几个用户 + 1/5/15分钟系统平均负载
  • 第二行:进程总数(total) + 正在运行进程数(running) + 睡眠进程数(sleeping) + 停止的进程数(stopped)+ 僵尸进程数(zombie)
  • 第三行:用户空间CPU占比(us) + 内核空间CPU占比(sy)+ CPU空置率(id)
  • 第二部分
  • PID(Process IDentificator):进程标识
  • USER:进程所有者的用户名
  • PR:进程的优先级别
  • NI:进程的优先级别数值
  • VIRT:进程占用的虚拟内存值
  • RES:进程占用的物理内存值
  • SHR:进程使用的共享内存值
  • S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
  • %CPU:该进程占用的CPU使用率
  • %MEM:该进程占用的物理内存和总内存的百分比
  • TIME+:该进程启动后占用的总的CPU时间
  • Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行

top 命令的交互:

  • <空格>:立刻刷新
  • P:根据CPU使用大小进行排序
  • T:根据时间、累计时间排序
  • M:根据使用内存大小进行排序
  • q:退出top命令
  • m:切换显示内存信息
  • t:切换显示进程和CPU状态信息
  • c:切换显示命令名称和完整命令行
  • W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法
  • iostat:

代码如下:

[niesh@niesh log]$ iostat -t
Linux 3.10.0-327.el7.x86_64 (niesh)     2017年08月25日  _x86_64_        (1 CPU)

2017年08月25日 15时05分15秒
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.38    0.01    0.52    0.05    0.00   99.05

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.41         7.26         1.14     358126      56039
dm-0              0.42         7.11         1.09     350846      53990
dm-1              0.00         0.03         0.00       1268          0
  • Device: 设备名称
  • tps:每秒钟的传输数
  • kB_read/s:每秒钟读取数据块(通常为512kB)的个数
  • kB_write/s:每秒钟写入数据块(通常为512kB)的个数
  • kB_read:512字节块读取总数量
  • kB_wrtn:512字节块写入总数量
  • vmstat [delay][count]:

代码如下:

[niesh@niesh log]$ vmstat 3 4
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 401192   1260 469512    0    0     7     1   52  123  0  1 99  0  0
 0  0      0 401192   1260 469512    0    0     0     0   57  104  0  0 100  0  0
 0  0      0 401068   1260 469512    0    0     0     0   89  175  0  2 98  0  0
 0  0      0 401068   1260 469512    0    0     0     0   56   93  0  0 100  0  0

以上各列解释如下:

  • r: Running, 正在运行和等待运行的进程数
  • b: Sleeping,处于Sleeeping状态的进程数
  • swpd: 虚拟内存使用量,一般为0,否则可能是物理内存不够用了
  • free: 物理内存空闲大小
  • buf: 缓冲区大小
  • cache: 缓存大小
  • si: 每秒从虚拟内存写入硬盘的大小
  • so: 每秒从硬盘读入到虚拟内存的大小
  • bi: 块设备每秒接受的块数量
  • bo: 块设备每秒发送的块数量
  • in: interrupt, 每秒中断CPU的次数
  • cs: context switch,每秒切换上下文的次数
  • us: 用户CPU时间,%
  • sy: 系统CPU时间
  • id: 空闲CPU时间
  • wa: 等待IO的CPU时间

4. 查看系统负载

  • uptime:
    查看系统负载状况
    参数:
  • -p: pretty format
  • -s: since yyyy-mm-dd HH:MM:SS format

代码如下:

[niesh@niesh log]$ uptime
 15:42:50 up 14:24,  4 users,  load average: 0.00, 0.01, 0.05

Linux中有一个通俗的说法:当load avarage ❤️ 系统良好,大于5 可能有严重的性能问题

5. 进程

  • rpm -qa
    查看系统中所有安装的软件
  • ps:
    列出系统中运行的进程
    参数
    由于 ps 能够支持的系统类型相当的多,所以他的参数多的离谱!
    而且有没有加上 - 差很多!详细的用法应该要参考 man ps!
  • -A: 所有的进程均显示出来,与 -e 具有同样的效用
  • -a: 显示现行终端机下的所有进程,包括其他用户的进程
  • -u: 以用户为主的进程状态
  • -l: 较长、较详细的将该 PID 的的信息列出
  • -j: 工作的格式 (jobs format)
  • -e: 同 -A
  • -f: 做一个更为完整的输出
  • kill [option][arugument]:

option

-u:指定用户
-a:当处理当前进程时,不限制命令名和进程号的对应关系
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号
[0-n]: 0表重启,9表强制关闭,15正常关闭(默认值)

argument: 进程的PID

  • job

请参考:http://blog.csdn.net/qpwyj/article/details/45530867

  • ps:

代码如下:

[niesh@niesh ~]$ ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.4 191616  6796 ?        Ss   01:18   0:09 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root          2  0.0  0.0      0     0 ?        S    01:18   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    01:18   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    01:18   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    01:18   0:00 [rcu_bh]
  • USER:该进程属于那个使用者账号
  • PID :该进程的进程ID号
  • %CPU:该进程使用掉的 CPU 资源百分比
  • %MEM:该进程所占用的物理内存百分比
  • VSZ :该进程使用掉的虚拟内存量 (Kbytes)
  • RSS :该进程占用的固定的内存量 (Kbytes)
  • TTY :该进程是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,pts/n表示为由网络连接进主机的程序
  • STAT:该程序目前的状态,主要的状态有:

R :该程序目前正在运作,或者是可被运作
S :该程序目前正在睡眠当中但可被某些讯号(signal) 唤醒
T :该程序目前正在侦测或者是停止了
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

  • START:该进程被触发启动的时间;
  • TIME :该进程实际使用 CPU 运作的时间。
  • COMMAND:该程序的实际指令为什么?
posted @ 2017-08-25 17:04  Jimmy_Nie  阅读(745)  评论(0编辑  收藏  举报