1. 程式人生 > >linux日常維護(iostat,free,ps,

linux日常維護(iostat,free,ps,

1

  • 監控io性能

  • iostat在安裝sysstat時就已經安裝,和sar屬於同一個包


    [root@abc ~]# iostat -x

    Linux 3.10.0-514.el7.x86_64 (abc.com) 2017年11月27日 _x86_64_ (1 CPU)


    avg-cpu: %user %nice %system %iowait %steal %idle

    0.25 0.00 0.35 0.36 0.00 99.04


    Device:rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

    sda 0.00 0.06 2.36 1.30 51.77 5.41 31.22 0.03 7.07 5.25 0.39 2.27 0.83

    sdb 0.00 0.00 0.14 0.00 0.86 0.00 12.55 0.00 0.53 0.53 0.00 0.39 0.01

    scd0 0.00 0.00 0.01 0.00 0.02 0.00 8.00 0.00 1.00 1.00 0.00 1.00 0.00

    dm-0 0.00 0.00 0.03 0.00 0.21 0.00 15.20 0.00 0.58 0.58 0.00 0.52 0.00


    sar -b也可以查看磁盤信息,但是iostat -x可以看到很重要的一個%util

      在I/O請求發送到設備期間,占用CPU時間的百分比.用於顯示設備的帶寬利用率.
      當這個值接近100%時,表示設備帶寬已經占滿.


    iotop:是一個用來監視磁盤I/O使用狀況的top類工具。iotop具有與top相似的UI,其中包括PID、用戶、I/O、進程等相關信息。Linux下的IO統計工具如iostat,nmon等大多數是只能統計到per設備的讀寫情況,如果你想知道每個進程是如何使用IO的就比較麻煩,使用iotop命令可以很方便的查看。

    Total DISK READ : 0.00 B/s 磁盤讀速度

    Total DISK WRITE : 0.00 B/s 磁盤寫入速度




    2.free 查看內存的使用情況

    [root@abc ~]# free

    total used free shared buff/cache vailable

    Mem: 1008392 112632 662172 6864 233588 733800

    Swap: 2097148 0 2097148

    [root@abc ~]# free -h (加上-h 更清晰的顯示內存大小)

    total used free shared buff/cache available

    Mem: 984M 109M 646M 6.7M 228M 716M

    Swap: 2.0G 0B 2.0G

    total 內存總大小

    used 已經使用的內存大小

    free 剩余內存大小

    shared 當前已經廢棄不用

    buff 緩沖內存數

    cache 緩存內存數

    available free內存+buffer/cache剩余部分, 真正的剩余內存


    公式:total=used+free+buff/cache(系統預留出來空間給cache和buff)


    磁盤(010101)--> 內存(cache) --> cpu 從磁盤先把數據讀出來放到內存裏,內存在交給cpu

    cpu(010101)--> 內存(buffer) --> 磁盤 cpu運算速度是很快的,寫入數據沒那麽快要在磁盤裏有一個緩沖空間


    3.ps (report a snapshot of the current processes) 匯報當前進程的快照

    命令用於報告當前系統的進程狀態。可以搭配kill指令隨時中斷、刪除不必要的程序。ps命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等,總之大部分信息都是可以通過執行該命令得到的。

    Ps 只為您提供當前進程的快照。要即時查看最活躍的進程,可使用 top。
    Top 實時地提供進程信息。它還擁有交互式的狀態,允許用戶輸入命令,如 n 後面跟有 5 或 10 等數字。其結果是指示 top 顯示 5 或 10 個最活躍的進程。Top 持續運行,直到您按 "q" 退出 top 為止。

    [root@abc ~]# ps aux

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND


    USER 使用進程的用戶名

    PID 進程ID,kill命令加進程ID可以殺死一個進程。當系統被黑時,可以查看惡意進程,並殺死它

    %CPU 進程CPU占用率

    %MEM 進程內存占用率

    VSZ 進程所使用的虛擬內存

    RSS 進程所使用的實際內存

    TTY 與進程關聯的終端

    STAT 進程的狀態

    R 運行 Runnable (on run queue) 正在運行或在運行隊列中等待。
    S 睡眠 Sleeping 休眠中, 受阻, 在等待某個條件的形成或接受到信號。
    I 空閑 Idle
    Z 僵死 Zombie(a defunct process) 進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放。
    D 不可中斷 Uninterruptible sleep (ususally IO) 收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生。
    T 終止 Terminate 進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行。
    P 等待交換頁
    W 無駐留頁 has no resident pages 沒有足夠的記憶體分頁可分配。
    X 死掉的進程
    < 高優先級進程 高優先序的進程
    N 低優先 級進程 低優先序的進程
    L 內存鎖頁 Lock 有記憶體分頁分配並縮在記憶體內
    s 進程的領導者(在它之下有子進程);
    l 多進程的(使用 CLONE_THREAD, 類似 NPTL pthreads)
    + 位於後臺的進程組

    START 進程啟動時間和日期

    TIME 進程使用的總cpu時間

    COMMAND 正在執行的命令行命令


    4.

    linux日常維護(iostat,free,ps,