關于 進程和性能監控

    
    Linux系統狀態的查看及管理工具:

    pstree, ps, pidof, pgrep, top, htop, glance,
pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

pstree命令:
pstree-display a tree of processes
ps-report a snapshot of
the current processes

(process state)簡稱ps 查看當前系統的終端
Linux系統各進程的相關信息均保存在/proc/PID目錄下的各文件中  

適用ps來查看進程信息
ps [OPTION]…
支持三種選項:
            UNIX選項如-A
-e
            BSD選項如a
            GUN選項如–help

默認顯示當前終端中的進程
    a選項包括所有終端中的進程
    x選項包括不鏈接終端的進程
   
u選項顯示進程所有者的信息
    f選項顯示進程的父進程
    可以多項組合在一起用 例如 ps axuf
    o屬性…
選項顯示定制的信息: o必須緊跟在后面跟屬性 例如 ps axo …
   
pid、comm、%cpu、%mem、state、tty、euser、ruser

[root@Compro ~]# ps xao
pid,comm,state
STAT:進程狀態
R:running                   運行
S:
interruptable sleeping    可中斷的睡眠狀態
D: uninterruptable sleeping 
不間斷的睡沒狀態
T: stopped                   停止的狀態
Z: zombie                   
僵尸狀態
+: 前臺進程    
l: 多線程進程
N:低優先級進程
<: 高優先級進程
s: session
leader,會話(子進程)發起者

常用組合:-ef
[root@Compro ~]# ps -e: 顯示所有進程
[root@Compro ~]# ps -f:
顯示完整格式程序信息
常用組合:-eFH
[root@Compro ~]# ps -F: 顯示更完整格式的進程信息
[root@Compro
~]# ps -H: 以進程層級格式顯示進程相關信息
常用組合:自定義
[root@Compro ~]# ps
-eopid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
[root@Compro ~]# ps
axostat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

pri: priority,優先級  
psr: processor, CPU編號
rtprio:
實時優先級
[root@Compro ~]# ps axo pid,ni,comm,psi
[root@Compro ~]# ps axo
pid,ni,comm,psr
[root@Compro ~]# ps axo pid,ni,comm,rtprio

 

系統監控工具
glances命令:EPEL源
首先這個命令是要yum安裝的系統默認沒有

這個是個人所在環境,參考而已
[root@Compro ~]# vim /etc/yum.repos.d/base.repo

[base]
baseurl=http://10.1.0.1/cobbler/ks_mirror/7/
enabled=0
gpgcheck=0

[cdrom]
baseurl=file:///mnt/cdrom/
gpgcheck=0

[epel]
baseurl=http://10.1.0.1/fedora-epel/7/x86_64/
gpgcheck=0

[root@Compro ~]# yum -y install glances

===================================================================

[root@Compro ~]# glances
內建命令:h查看幫助
a Sort processes
automatically     l Show/hide logs
c Sort processes by CPU%           b Bytes
or bits for network I/O
m Sort processes by MEM%           w Delete warning
logs
p Sort processes by name           x Delete warning and critical
logs
iSort processes by I/O rate        1 Global CPU or per-CPU stats
d
Show/hide disk I/O stats         h Show/hide this help screen
f Show/hide
file system stats      t View network I/O as combination
n Show/hide network
stats          u View cumulative network I/O
s Show/hide sensors
stats          q Quit (Esc and Ctrl-C also work)
y Show/hide hddtempstats

常用選項:
-b: 以Byte為單位顯示網卡數據速率
-d: 關閉磁盤I/O模塊
-f /path/to/somefile:
設定輸入文件位置
-o {HTML|CSV}:輸出格式
-m: 禁用mount模塊
-n: 禁用網絡模塊
-t #:
延遲時間間隔
-1:每個CPU的相關數據單獨顯示

局域網內監控性能
服務服務模式:
glances -s -B IPADDR
IPADDR: 指明監聽的本機哪個地址模式:

我在CentOS7 運行一下命令
[root@Compro ~]# glances -s -B 10.1.7.65
Glances服務器啟動了
10.1.7.65:61209

客戶端模式:
glances -c IPADDR
IPADDR:要連入的服務器端地址

這時候在換作CentOS6 運行
[root@xiaomag ~]# glances -c 10.1.7.65

dstat命令:系統資源統計

先安裝
[root@xiaomag ~]# yum -y install dstat
[root@xiaomag ~]#
dstat        查看資源
[root@xiaomag ~]# dstat 1 10   查看1秒一次
定義10次退出
 dstat[-afv] [options..] [delay [count]]
-c: 顯示cpu相關信息
-C
#,#,…,total
-d: 顯示disk相關信息
-D
total,sda,sdb,…
-g:顯示page相關統計數據
-m: 顯示memory相關統計數據
-n:
顯示network相關統計數據
-p: 顯示process相關統計數據
-r: 顯示io請求相關的統計數據
-s:
顯示swapped相關的統計數據

–tcp
–udp
–unix
–raw
–socket
–ipc
–top-cpu:顯示最占用CPU的進程
–top-io:
顯示最占用io的進程
–top-mem: 顯示最占用內存的進程
–top-latency: 顯示延遲最大的進程

 

計劃任務

Linux任務計劃、周期性任務執行
未來的某時間執行一次任務
命令 :at
       batch
系統自行選擇空閑時間去執行此處指定的任務
周期性運行某任務

啟動服務
[root@Compro ~]# service atd status
[root@xiaomag ~]#
/etc/init.d/atd start
 
確保crond守護處于運行狀態:
CentOS 7:
systemctlstatus
crond
CentOS 6:
service
crondstatus
計劃周期性執行的任務提交給crond,到指定時間會自動運行
系統cron任務:系統維護作業
/etc/crontab
用戶cron任務:
crontab命令
日志:/var/log/cron

系統cron任務:/etc/crontab
注釋行以# 開頭
詳情參見man 5 crontab
# Example of job
definition:
# .—————-minute (0 -59)  分鐘
# | .————-hour
(0 -23)      小時
# | | .———-day of month (1 -31)  月
# | | |
.——-month (1 -12) OR jan,feb,mar,apr…  年
# | | | | .—-day of week (0
-6) 星期(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |  用戶      
運行的命令
# * * * * * user-name command to be
executed
例如:晚上9點10分運行echo命令;
10 21 * * *centos /bin/echo "Howdy!"

[root@Compro ~]# vim /etc/crontab   每分鐘執行一次 發郵件的形式
* * * * * makangbo echo
"hello"

 

練習

1、每4小時備份一次/etc目錄至/backup目錄中,保存的文件名稱格式為“etc-yyyy-mm-dd-HH.tar.xz”
[root@Compro
~]# crontab -e
0 4,* * *  root cp /etc/backup/etc-`date +\%F-\%H`.tar.xz
/etc/ &> dev/null
date
ls

2、每周2, 4,
7備份/var/log/messages文件至/logs目錄中,文件名形如“messages-yyyymmdd”
[root@Compro ~]#
crontab -e
* * * * 2,4,7/ root cp /var/log/messages /logs/messages-`date +\%F
-\%H` $> dev/null

3 、每兩小時取出當前系統/proc/meminfo文件中以S或M開頭的信息追加至/tmp/meminfo.txt文件中
* 2, * * *
root cat /proc/meminfo |grep "^[S,M]" &> /tmp/meminfo.txt

4、工作日時間,每10分鐘執行一次磁盤空間檢查,一旦發現任何分區利用率高于80%,就執行wall警報
[root@Compro ~]# vim
wall.sh
#!/bin/bash
DISK=df |grep ' ^/dev/sd.*' |tr -s' ' '%'|cut -d% -f5
|sort -n |tail -n1
[ $DISK -gt 80 ] && wall "disk will be full"

 

 

 

 

 

 

 

 

 

原創文章,作者:小馬哥,如若轉載,請注明出處:http://www.www58058.com/45530

(0)
小馬哥小馬哥
上一篇 2016-09-11 17:06
下一篇 2016-09-11 17:35

相關推薦

  • windows server 2008 r2 每隔一段時間自動關機

    首先來說一下我的狗血經歷:     話說作為一個地鐵汪,每天背著電腦從房山到朝陽那簡直就是能累死我的節奏,所以我跟公司申請我不要用自己的筆記本了(補助我不要了)。最后公司把一臺不用的server 2008r2給我用,12G內存,志強CPU,跑虛擬機杠杠的。 但是噩夢開始了,我發現一個特點,這臺server 2008 r…

    2015-11-26
  • PHP異常處理詳解

    PHP異常處理詳解          異常處理(又稱為錯誤處理)功能提供了處理程序運行時出現的錯誤或異常情況的方法。   異常處理通常是防止未知錯誤產生所采取的處理措施。異常處理的好處是你不用再絞盡腦汁去考慮各種錯誤,這為處理某一類錯誤提供了一個很有效的方法,使編程效率大大提高。當異常被觸發時,通常會發生:&…

    Linux干貨 2015-06-02
  • 優云軟件老司機:如何讓運維操作更輕松、高效

    講師介紹 龐輝富 ?廣通軟件技術總監 ?擁有10多年IT運維管理軟件研發經驗 ?致力于自動化運維解決方案的研究和推廣 ?主導研發的產品廣泛應用于海關、公安、能源等多個行業 技術發展給運維帶來的挑戰 當前的IT建設在這些新技術的演進下,我們看到的是呈現“雙態IT”特征。Gartner也提出雙模IT理論,與現在談的雙態IT是異曲同工的,不再是一種單純的形態,而是…

    系統運維 2017-01-09
  • ansible學習筆記

    簡介:  在日常服務器維護中,從系統安裝到程序部署再到發布應用,在大規模的生產環境中,如果需要手動的每臺服務器進行安裝配置將會給運維人員帶來許多繁瑣而又重復的工作。這就促使了在每個運維層次中出現了不同的自動化運維工具。 常見的自動化運維工具分類有以下幾類:  系統安裝運維工具(OS Provisioning):    …

    Linux干貨 2015-08-17
  • 一個刪除MySQL大表數據的shell腳本

    #!/bin/bash #為了刪除一些特別大的表 dbname=''  #庫名 tabname=''  #表名 step='10000' #刪除步長 sleeptime=1  #睡眠時間 start_index=30000001 &…

    系統運維 2015-07-16
  • 6個變態的C語言Hello World程序

    下面的六個程序片段主要完成這些事情: 輸出Hello, World 混亂C語言的源代碼 下面的所有程序都可以在GCC下編譯通過,只有最后一個需要動用C++的編譯器g++才能編程通過。 hello1.c  #define _________ }     #define ______…

    Linux干貨 2016-05-08
欧美性久久久久