成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

殺死僵尸進程,你需要這些神奇高效的Linux命令行

系統 Linux
Linux 高手,其實都是玩兒命令行很熟練的人。

 Linux 高手,其實都是玩兒命令行很熟練的人。

[[258095]]

命令行的學習捷徑

 

Linux 命令有許多強大的功能:從簡單的磁盤操作、文件存取,到進行復雜的多媒體圖像和流媒體文件的制作,都離不開命令行。

在 Linux 的學習中,新手都會遇到這么一個問題:自己對系統的每個命令都很熟悉,但是在系統出現故障的時候,就無從下手了。

 

說到底,就是學習的理論知識沒有很好地與系統實際操作相結合。

5 大系統運維狀態

 

對運維來說,查看系統運行狀態是最基礎的工作之一。

要了解 CPU、內存、進程、磁盤、網絡,這五大運維系統的運行狀態,需要掌握的運維命令有 ls、ps、free、top、uptime、ifconfig、su/sudo、dmesg、iostat、vmstat、sar、htop、iotop、smem 等命令。

這些命令有的非常簡單,不做過多介紹,重點介紹幾個高效、神奇的命令,它能幫助我們快速了解系統運行狀態,絕對是運維神器。

典型 Linux 命令行

 

Linux 使用到了虛擬內存,因此要準確的計算一個進程實際使用的物理內存就不是那么簡單。

Smem 是一款命令行下的內存使用情況報告工具,它能夠給用戶提供 Linux 系統下的內存使用的多種報告。

內存狀態檢測工具

 

要安裝 smem 這個工具,需要在系統上安裝EPEL軟件源,安裝過程如下:

  1. [root@localhost ~]# yum install epel-release[root@localhost ~]# yum install smem python-matplotlib python-tk 

要顯示系統中每個進程的占用內存狀態,可執行如下圖指令:

 

上圖中,“-k”參數用來顯示內存單位,“-s”是排序,uss 是對 uss 列進行排序,這樣,就輸出了系統中所有進行占用的內存大小,非常清晰明白。

smem 還支持以百分比形式顯示每個進程占用系統內存的比率,如下圖所示:

 

其中,“-p”表示以百分比的形式報告內存使用情況,這樣每個進程占用的系統內存比重一目了然。

smem 還可以顯示系統中每一個用戶的內存使用情況,如下圖所示:

 

其中,“-u”表示顯示用戶占用內存信息。

***,smem 還支持查看某個進程占用內存大小,例如:

  1. smem -P nginx 
  2. smem -k -P nginx 

由此可知,通過 smem,對每個進程占用的內存資源可以很輕松的獲取。絕對是運維必備工具。

CPU/內存占用進程

 

這個應用需求在服務器的問題排查和故障處理上使用率非常高,要獲取這些信息,只需要一些命令組合即可實現,可以說非常簡單。

首先,獲取當前系統占用 CPU ***的前 10 個進程最簡單的方式是通過 ps 命令組合實現,例如:

  1. [root@localhost ~]# ps aux|head -1;ps aux|sort -rn -k3|head -10 

其中,***句主要是為了獲取標題(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)信息。而“head:-N”可以指定顯示的行數,默認顯示 10 行。

第二個命令是一個輸出加排序組合,ps 參數的 a 指代 all,表示所有的進程,u 指代 user id,就是執行該進程的用戶 id,x 指代顯示所有程序,不以終端機來區分。

接下來是 sort 命令,其中:r 指代 reverse,這里是指反向比較結果,輸出時默認從小到大,反向后從大到小。n 指代 numberic sort,根據其數值排序。k 代表根據哪一列進行排序,后面的數字 3 表示按照第 3 列排序。本例中,可以看到 %CPU 在第 3 個位置,因此 k3 表示根據 %CPU 的數值進行由大到小的排序。

接下來的“|”為管道符號,將查詢出的結果導到下面的命令中進行下一步的操作。

***的“head -10”命令獲取默認前 10 行數據。

清除僵尸過程

 

一個僵尸進程產生的過程是:父進程調用 fork 創建子進程后,子進程運行直至其終止,它立即從內存中移除,但進程描述符仍然保留在內存中。

要查找系統中的僵尸進程,有多種方法,這里給出一種命令行探測僵尸進程的方法:

 

  1. [root@localhost ~]# ps -e -o stat,ppid,pid,cmd | egrep '^[Zz]'Z 10808 10812 [java] 

介紹下幾個參數:

-e:參數用于列出所有的進程

-o:參數用于設定輸出格式,這里只輸出進程的 stat(狀態信息)、ppid(父進程 pid)、pid(當前進程的 pid),cmd(即進程的可執行文件)。

egrep:是 Linux 下的正則表達式工具。

'^[Zz]':這是正則表達式,^表示***個字符的位置,[Zz] 表示小寫 z 或者大寫的 Z 字母,即表示***個字符為 Z 或者 z 開頭的進程數據,之所以這樣是因為僵尸進程的狀態信息以 Z 或者 z 字母開頭。

找到僵尸進程的 pid 后,直接通過“kill -9 pid”命令殺掉即可,但是如果僵尸進程很多的話,就會很繁瑣,因此,還需要一個批量刪除僵尸進程的辦法:

  1. [root@localhost ~]# ps -e -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9 

這是個命令組合,通過管道實現命令的組合應用。

“grep -e”相當于 egrep 命令。

“awk '{print $2}' ”是將前面命令的輸出信息進行過濾,僅僅輸出第二列的值,而第二列就是進程的 ppid。

“xargs kill -9”這是將得到的 ppid 傳給“kill -9”作為參數,也就是 kill 掉這些 ppid。xargs 命令可以將標準輸入轉成各種格式化的參數,這里是將管道的輸出內容作為參數傳遞給 kill 命令。

殺掉僵尸進程,這個是治標不治本的。真正的辦法是,不讓它產生。那么如何避免僵尸進程的產生呢?

 

 

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2017-05-27 14:45:04

Linux命令進程

2013-09-04 10:09:31

2024-02-05 18:23:23

父進程應用程序程序

2018-12-17 10:30:34

Linux命令行boxes

2018-04-27 14:58:09

Linuxkill命令

2010-01-15 10:34:59

Linux命令行操作

2009-12-25 16:04:06

shell命令行

2016-07-18 14:27:43

操作系統Linux隱藏命令

2021-11-01 12:13:53

Linux僵尸進程

2013-03-14 16:25:46

命令行

2021-08-26 05:06:08

命令行工具Mac

2019-04-19 14:00:55

Linuxkillall命令

2010-09-01 14:23:54

Linux命令行開發

2009-12-24 14:51:39

Linux命令行

2009-03-01 22:09:08

LinuxTerminal命令行終端

2013-09-27 09:56:25

2009-12-23 14:14:09

Linux高級命令行

2019-12-10 10:03:18

Linux命令行工具

2009-08-07 10:33:53

linux命令行亂碼linux命令行解決方式

2017-09-05 08:57:02

Linux命令行技巧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九热精品在线 | www.久久| 做a视频 | 亚洲国产第一页 | 国产精产国品一二三产区视频 | 日本色婷婷 | 国产精品一区久久久 | 日本免费一区二区三区四区 | 成人激情视频在线播放 | 久久新 | 又黑又粗又长的欧美一区 | 久久出精品 | 欧美日韩不卡合集视频 | 国产精品免费在线 | 国产欧美一区二区三区久久手机版 | 一区中文字幕 | 国产98色在线 | 日韩 | 亚洲国产精品99久久久久久久久 | 久久不卡 | 亚洲一区亚洲二区 | 精品国模一区二区三区欧美 | 色视频网站| 欧美中文在线 | 国产成人福利 | 久热久热 | 久久久久久久久久久久91 | 久久99精品久久久97夜夜嗨 | 99久9 | 日韩成人在线免费观看 | 日韩视频在线免费观看 | 超碰在线免费 | 午夜免费精品视频 | 国产精品久久久久久久久久 | 在线成人av | 久久精品国产一区二区 | 青青草视频免费观看 | 国产欧美精品区一区二区三区 | 国产精品久久久久久久久免费桃花 | 亚洲免费福利视频 | 国产精品久久久久久一区二区三区 | 免费中文字幕日韩欧美 |