天天看點

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:
檢視登陸的使用者(使用者名,終端,登入時間)
[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:表示目前使用者正在做的事情:若使用者正在執行某個程式,則這裡會顯示使用者執行程式的名字。如果使用者正在操作的是執行一般文字模式的指令,則這裡顯示的是使用者的環境名稱
[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
[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)
           
[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: 顯示多少次
[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配置檔案的推薦方法
[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位元組塊寫入總數量
[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
[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:該程式的實際指令為什麼?

繼續閱讀