zoukankan      html  css  js  c++  java
  • 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:该程序的实际指令为什么?
  • 相关阅读:
    第八周上机作业
    第七次作业
    第七周上机
    第六周作业
    4.9上机作业
    第五周作业
    第四周作业
    第二次上机作业
    第三周作业
    第九周上机练习
  • 原文地址:https://www.cnblogs.com/Jimmy1988/p/7428880.html
Copyright © 2011-2022 走看看