Unix toolbox註解2之Linux系統狀態用戶和限制

Unix toolbox註解1之Linux系統硬件信息

Unix toolbox註解2之Linux系統狀態用戶和限制

本系列文章爲筆者對Unix toolbox的一些個人註解,加入個人的一些元素,刪減了其中一些對於freebsd的一些命令介紹,文中的內容筆者都一一驗證過,放心使用。

1.2顯示狀態信息

以下命令有助於找出正在系統中運行着的程序

# top           # 顯示和更新使用 cpu 最多的進程

注:

top小技巧,執行top命令之後,可以敲擊如下按鍵,實現不同功能
1(數字1):列出所有的單個CPU負載情況

z:top顯示顏色

P:按CPU佔用高低順序列出程序
M:按內存佔用高低順序列出程序
x:類似高亮顯示,在z顯示模式下才有效果

如下效果圖:

top顯示Swap利用率,使用top命令後按f鍵,然後按p鍵,回車之後即可看到Swap狀態

d:top默認的刷新時間是3s,使用d鍵可以自定義刷新時間

top類似上下翻頁的方法:
shift < 下翻頁
shift >上翻頁

top默認按cpu佔用排序,這也是可以修改,按F(大寫)即可選擇相應排序,之後回車即可

c:顯示進程命令的全路徑與參數

W:將當前設置寫入~/.toprc文件中。這是寫top配置文件的推薦方法

 
# mpstat 1      # 顯示進程相關的信息
# vmstat 2      # 顯示虛擬內存的狀態信息
# iostat 2     # 顯示 I/O 狀態信息(2 秒 間隙)
# tail -n 500 /var/log/messages # 顯示最新500條內核/系統日誌的信息

1.3用戶

# id        # 顯示當前用戶和用戶組的 ID
# last      # 列出目前與過去登入系統的用戶相關信息
# who       # 顯示目前登入系統的用戶信息
# groupadd admin # 建立新組"admin"和添加新用戶 colin 並加入 admin 用戶組(Linux/Solaris)
# useradd -c "Colin Barschel" -g admin -m colin
# userdel colin # 刪除用戶 colin(Linux/Solaris)
 

使用 nologin 來臨時阻止所有用戶登錄(root除外)。用戶登錄時將會顯示 nologin 中的信息。

# echo "Sorry no login now" > /etc/nologin # (Linux)

1.4限制

某些應用程序需要設置可打開最大文件和socket 數量(像代理服務器,數據庫)。 默認限制通常很低。

注:
關於ulimit使用可閱讀IBM文檔:通過 ulimit 改善系統性能

筆者之前也寫過有關文件描述符文章介紹:Linux下文件描述符

                               關於RHEL6中ulimit的nproc限制

ulimit 用於限制 shell 啓動進程所佔用的資源,支持以下各種類型的限制:所創建的內核文件的大小、進程數據塊的大小、Shell 進程創建文件的大小、內存鎖住的大小、常駐內存集的大小、打開文件描述符的數量、分配堆棧的最大大小、CPU 時間、單個用戶的最大線程數、Shell 進程所能使用的最大虛擬內存。同時,它支持硬資源和軟資源的限制。

作爲臨時限制,ulimit可以作用於通過使用其命令登錄的 shell 會話,在會話終止時便結束限制,並不影響於其他 shell 會話。而對於長期的固定限制,ulimit 命令語句又可以被添加到由登錄 shell 讀取的文件中,作用於特定的 shell 用戶。
 

[root@kumu ~]# ulimit -a         //顯示當前所有限制的詳細信息

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 1829

max locked memory       (kbytes, -l) 64

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) 10240

cpu time               (seconds, -t) unlimited

max user processes              (-u) 1024

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

shell/腳本

shell的限制是受ulimit支配的。使用ulimit -a 可查看其狀態信息。舉個例子,改變可打開最大文件數從1024 到 10240,可以這麼做:

# ulimit -n 10240  # 這隻在shell中有用

ulimit 命令可以使用在腳本中來更改對此腳本的限制。

用戶/進程

登錄用戶和應用程序的限制可以在/etc/security/limits.conf 中配置。舉個例子:

# cat /etc/security/limits.conf
* hard nproc 250                # 限制所有用戶進程數
asterisk hard nofile 409600 # 限制應用程序可打開最大文件數

系統級

用sysctl來設置內核限制。要使其永久,可以在/etc/sysctl.conf 中進行配置。

# sysctl -a         # 顯示所有系統限制
# sysctl fs.file-max    # 顯示系統最大文件打開數
# sysctl fs.file-max=102400 # 更改系統最大文件打開數
# cat /etc/sysctl.conf
fs.file-max=102400          # 在 sysctl.conf 中的永久項
# cat /proc/sys/fs/file-nr # 在使用的文件句柄數

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章