htophtml
htop工具使用詳解 python
特色:top 的加強版,支持圖形界面的鼠標操做,能夠橫向或者縱向瀏覽進程列表,殺死進程時不須要輸入進程編號ios
安裝:經過yum install -y htopshell
[root@iZ28qzns9m4Z ~]# yum install htop Loaded plugins: langpacks base | 3.6 kB 00:00 epel | 4.3 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 (1/3): epel/x86_64/updateinfo | 362 kB 00:00 (2/3): epel/x86_64/primary_db | 3.5 MB 00:00 (3/3): updates/7/x86_64/primary_db | 4.0 MB 00:01 Package htop-1.0.3-3.el7.x86_64 already installed and latest version Nothing to do [root@iZ28qzns9m4Z ~]#
F1幫助 apache
F2設定安全
1.Metersbash
設定頂端的 顯示信息,分爲左右兩側,Left column 表示左側的顯示的信息,Right column表示右側顯示的信息,若是要新加選項,能夠選擇Available meters添加,F5新增到上方左側,F6新增到上方右側。Left column和Right column下面的選項,能夠選定信息的顯示方式,有LED、Bar(進度條)、Text(文本模式),能夠根據我的喜愛進行設置
服務器
Linux htop工具使用詳解選擇要顯示的內容,按空格 x表示顯示,選擇完後,按F10保存app
3.Colors
Linux htop工具使用詳解設定界面以什麼顏色來顯示,我的認爲用處不大,各人喜愛不一樣,假如咱們選擇Black on White後顯示效果以下
4.Colums
做用是增長或取消要顯示的各項內容,選擇後F7(向上移動)、F8(向下移動)、F9(取消顯示、F10(保存更改))此處增長了PPID、PGRP,根據各人需求,顯示那些信息
F3搜索
F4增量進程過濾器
F5顯示樹狀結構
F6選擇排序方式
F7 可減小nice值提升對應進程的優先級 數值越小越重要,優先級越高
F8可增長nice值,下降對應進程的優先級
F9可對進程傳遞信號 殺死進程
F10結束
htop經常使用交互式命令:
u: 過濾僅顯示選定用戶的進程;
s: 跟蹤選定的進程所發起的系統調用;
l: 顯示選定進程所打開的文件;
t: 顯示進程的層次結構;
a: 設定進程的cpu親緣性;(將選定的進程綁定在指定的CPU上)
選項:
-d #: 延遲時長
-u USERNAME: 僅顯示指定用戶的進程;
-s COLUMN: 根據指定的字段進行排序;
vmstat :
是最多見的Linux/Unix監控工具,能夠展示給定時間間隔的服務器的狀態值,包括服務器的CPU使用率,內存使用,虛擬內存交換狀況,IO讀寫狀況,相比top,能夠看到整個機器的CPU,內存,IO的使用狀況,而不是單單看到各個進程的CPU使用率和內存使用率
用法:vmsate [delay [count]]
[root@iZ28qzns9m4Z ~]# vmstat 2 5 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 291464 173488 319600 0 0 0 1 14 24 0 0 100 0 0 0 0 0 291488 173488 319600 0 0 0 0 467 247 1 0 99 0 0 0 0 0 291488 173488 319600 0 0 0 8 479 243 0 1 100 0 0 0 0 0 291552 173488 319600 0 0 0 0 506 257 0 0 100 0 0 0 0 0 291556 173488 319600 0 0 0 0 446 248 0 0 100 0 0
注:2爲執行頻率爲2秒一次,5爲一共執行5次
procs:
r: 等待運行的進程的個數;(隊列長度)
b:處理不可中斷睡眠狀態的進程的個數;(即IO阻塞隊列長度)
memory:
swpd: 交換內存使用量;
free: 空間的物理內存量;
buffer: 用於buffer的內存總量;
cache: 用於cache的內存總量;
swap:
si: 數據進入swap中的速率(kb/s)
so: 數據離開swap的速率(kb/s)
io
bi: 從塊設備讀入數據到系統的速率(kb/s)
bo: 保存數據至塊設備的速率(kb/s)
system
in: 中斷速率
cs: 進程切換的速率
cpu
us:用戶CPU時間,us接近100,r運行隊列達到80(機器在作壓力測試,性能表現不佳)。
sy:系統CPU時間,若是過高,表示系統調用時間長,例如是IO操做頻繁。
id:空閒 CPU時間,通常來講,id + us + sy = 100,通常我認爲id是空閒CPU使用率,us是用戶CPU使用 率,sy是系統CPU使用率。
wa:等待IO CPU時間。
選項:
-s:顯示內存的狀態統計數據
[root@iZ28qzns9m4Z ~]# vmstat -s 1016656 K total memory 725196 K used memory 365492 K active memory 195836 K inactive memory 291460 K free memory 173488 K buffer memory 319596 K swap cache 0 K total swap 0 K used swap 0 K free swap 110198 non-nice user cpu ticks 587 nice user cpu ticks 113672 system cpu ticks 161711582 idle cpu ticks 11229 IO-wait cpu ticks 39 IRQ cpu ticks 5372 softirq cpu ticks 196502 stolen cpu ticks 227801 pages paged in 1315272 pages paged out 0 pages swapped in 0 pages swapped out 794969704 interrupts 382508916 CPU context switches 1442223029 boot time 83643 forks [root@iZ28qzns9m4Z ~]#
glances
glances 是一款用於 Linux、BSD 的開源命令行系統監視工具,它使用 Python 語言開發,可以監視 CPU、負載、內存、磁盤 I/O、網絡流量、文件系統、系統溫度等信息
安裝:
[root@iZ28qzns9m4Z ~]# cat /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://mirrors.aliyun.com/epel/7/$basearch http://mirrors.aliyuncs.com/epel/7/$basearch failovermethod=priority enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
glances:
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
經常使用選項:
-b: 以Byte/s爲單位顯示網卡設備數據交換速率;
-B @IP|host :綁定服務器端 IP 地址或者主機名稱
-c @IP|host:鏈接 glances 服務器端
-C file:設置配置文件默認是 /etc/glances/glances.conf
-d:關閉磁盤 I/O 模塊
-e:顯示傳感器溫度
-f file:設置輸出文件(格式是 HTML 或者 CSV)
-m:關閉掛載的磁盤模塊
-n:關閉網絡模塊
-p PORT:設置運行端口默認是 61209
-P password:設置客戶端 / 服務器密碼
-s:設置 glances 運行模式爲服務器
-t sec:設置屏幕刷新的時間間隔,單位爲秒,默認值爲 2 秒,數值許可範圍:1~32767
-h : 顯示幫助信息
-v : 顯示版本信息。
-o {HTML|CSV}:
-r: 關閉進程列表功能模塊
-1:單獨顯示每顆CPU相關負載數據信息;
交互命令:
h : 顯示幫助信息
q : 離開程序退出
c :按照 CPU 實時負載對系統進程進行排序
m :按照內存使用情況對系統進程排序
i:按照 I/O 使用情況對系統進程排序
p: 按照進程名稱排序
d : 顯示磁盤讀寫情況
w : 刪除日誌文件
l :顯示日誌
s: 顯示傳感器信息
f : 顯示系統信息
1 :輪流顯示每一個 CPU 內核的使用狀況(次選項僅僅使用在多核 CPU 系統
便可以以C/S模式工做:
Server: 以監聽模式啓動glances;
Client: 以遠程模式啓動glances,遠程連入指定服務器,並Server上的相關性能數據;
①安裝pip-python
wget --no-check-certificate 下載程序包 tar zxvf pip-1.4.1.tar.gz cd pip-1.4.1/ python setup.py install pip install -U Markdown yum install lm_sensors 安裝監控主板程序包 pip install Jinja2 glances -o HTML -f /var/www/html glances -o CSV -f /home/cjh/glances.csv 輸出爲csv 格式 libreoffice --calc %U /tmp/glances.csv
服務模式:
glances -s -B IPADDR
-B: 用於指明監聽的本地地址;
客戶端模式:
glances -c IPADDR
-c: 用於連入的服務器的地址;
dstat:
dstat: 整合了vmstat, iostat, netstat and ifstat四款工具的功能;
dstat [-afv] [options..] [delay [count]]
-c: 顯示cpu性能指標相關的統計數據;
-d: 顯示disk相關的速率數據;
-g: 顯示page相關的速率數據;
-i: 顯示interrupt相關的速率數據;
-l: 顯示load average相關的統計數據;
-m: 顯示memory相關的統計數據;
-n: 顯示網絡收發數據的速率;
-p: 顯示進程相關的統計數據,
-r: io請求的速率;
-s: 顯示swap的相關數據
-y: 顯示系統相關的數據,包括中斷和進程切換;
--top-cpu:顯示最佔用CPU的進程;
--top-bio:顯示最消耗block io的進程;
--top-io:最佔用io的進程;
--top-mem:顯示最佔用內存的進程;
--ipc: 顯示進程間通訊相關的速率數據;
--raw: 顯示raw套接的相關的數據;
--tcp: 顯示tcp套接字的相關數據;
--udp: 顯示udp套接字的相關數據;
--unix: 顯示unix sock接口相關的統計數據;
--socket: 顯示網絡接口統計數據
-a: -cdngy
想輸出一個csv格式的文件用於之後,能夠經過下面的命令
dstat –output /tmp/sampleoutput.csv -cdn
kill以及 killall
signal: 傳遞給進程的短小信息
Linux主機支持的進程間可用到的信息:
(1) kill -l
(2) man 7 signal
向進程發信號:
kill [-SIGNAL] PID
默認的信號爲SIGTERM;
信號表示方式:
(1) 完整名稱,例如SIGINT
(2) 簡寫名稱,例如INT
(3) 數據代稱,例如2
經常使用信號:
SIGHUP: 1, 通知進程重讀其配置文件以讓新的配置生效,但不用從新啓動進程;
SIGINT:2, 打斷正在運行中的進程,至關於鍵盤組合鍵Ctrl+c
SIGKILL:9, 強行停止正在運行中的進程
SIGTERM: 15, 安全停止正在運行中的進程
SIGSTOP: 19, 暫停進程
SIGCONT: 18, 繼續運行指定進程
kill類似的一組進程:
killall [-SIGNAL] PROGRAM
[root@iZ28qzns9m4Z pip-1.4.1]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Sep14 ? 00:00:33 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0 0 Sep14 ? 00:00:00 [kthreadd] root 330 1 0 Sep14 ? 00:00:04 /usr/lib/systemd/systemd-journald root 342 1 0 Sep14 ? 00:00:00 /usr/sbin/lvmetad -f root 348 1 0 Sep14 ? 00:00:00 /usr/lib/systemd/systemd-udevd root 424 1 0 Sep14 ? 00:00:01 /usr/sbin/rsyslogd -n root 426 1 0 Sep14 ? 00:00:11 /usr/lib/systemd/systemd-logind dbus 427 1 0 Sep14 ? 00:00:22 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation nscd 429 1 0 Sep14 ? 00:00:03 /usr/sbin/nscd root 444 1 0 Sep14 ? 00:00:04 /usr/sbin/crond -n root 459 1 0 Sep14 tty1 00:00:00 /sbin/agetty --noclear tty1 ntp 466 1 0 Sep14 ? 00:00:10 /usr/sbin/ntpd -u ntp:ntp -g root 512 1 0 Sep14 ? 00:00:00 /sbin/iprupdate --daemon root 515 1 0 Sep14 ? 00:00:00 /sbin/iprinit --daemon root 534 1 0 Sep14 ? 00:00:00 /sbin/iprdump --daemon root 643 1 0 Sep14 ? 00:12:08 /usr/local/aegis/aegis_update/AliYunDunUpdate root 890 1 0 Sep14 ? 00:00:00 /usr/sbin/gshelld root 943 1 0 Sep14 ? 00:33:30 /usr/local/aegis/aegis_client/aegis_00_79/AliYunDun root 961 1 0 Sep14 ? 00:32:43 /usr/local/aegis/alihids/AliHids root 2972 1 0 Sep18 ? 00:00:37 /usr/sbin/httpd -DFOREGROUND apache 11291 2972 0 Sep28 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 11292 2972 0 Sep28 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 11293 2972 0 Sep28 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 11294 2972 0 Sep28 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND root 18579 21752 0 09:55 ? 00:00:00 sshd: root@pts/0 root 18581 18579 0 09:55 pts/0 00:00:00 -bash root 18687 2 0 11:10 ? 00:00:00 [kworker/0:2] root 18858 2 0 14:01 ? 00:00:00 [kworker/0:1] apache 18869 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18870 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18871 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18872 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18876 2972 0 14:21 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 18992 2972 0 14:29 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND root 19018 2 0 15:00 ? 00:00:00 [kworker/0:0] root 19039 18581 0 15:03 pts/0 00:00:00 ps -ef root 21752 1 0 Sep20 ? 00:00:00 /usr/sbin/sshd -D root 32457 2 0 Sep17 ? 00:00:00 [kworker/0:1H] [root@iZ28qzns9m4Z pip-1.4.1]# killall httpd [root@iZ28qzns9m4Z pip-1.4.1]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Sep14 ? 00:00:33 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 261 2 0 Sep14 ? 00:00:00 [ext4-dio-unwrit] root 330 1 0 Sep14 ? 00:00:04 /usr/lib/systemd/systemd-journald root 342 1 0 Sep14 ? 00:00:00 /usr/sbin/lvmetad -f root 348 1 0 Sep14 ? 00:00:00 /usr/lib/systemd/systemd-udevd root 424 1 0 Sep14 ? 00:00:01 /usr/sbin/rsyslogd -n root 426 1 0 Sep14 ? 00:00:11 /usr/lib/systemd/systemd-logind dbus 427 1 0 Sep14 ? 00:00:22 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation nscd 429 1 0 Sep14 ? 00:00:03 /usr/sbin/nscd root 444 1 0 Sep14 ? 00:00:04 /usr/sbin/crond -n root 459 1 0 Sep14 tty1 00:00:00 /sbin/agetty --noclear tty1 ntp 466 1 0 Sep14 ? 00:00:10 /usr/sbin/ntpd -u ntp:ntp -g root 512 1 0 Sep14 ? 00:00:00 /sbin/iprupdate --daemon root 515 1 0 Sep14 ? 00:00:00 /sbin/iprinit --daemon root 534 1 0 Sep14 ? 00:00:00 /sbin/iprdump --daemon root 643 1 0 Sep14 ? 00:12:08 /usr/local/aegis/aegis_update/AliYunDunUpdate root 890 1 0 Sep14 ? 00:00:00 /usr/sbin/gshelld root 943 1 0 Sep14 ? 00:33:31 /usr/local/aegis/aegis_client/aegis_00_79/AliYunDun root 961 1 0 Sep14 ? 00:32:43 /usr/local/aegis/alihids/AliHids root 18579 21752 0 09:55 ? 00:00:00 sshd: root@pts/0 root 18581 18579 0 09:55 pts/0 00:00:00 -bash root 18687 2 0 11:10 ? 00:00:00 [kworker/0:2] root 18858 2 0 14:01 ? 00:00:00 [kworker/0:1] root 19018 2 0 15:00 ? 00:00:00 [kworker/0:0] root 19047 18581 0 15:04 pts/0 00:00:00 ps -ef root 21752 1 0 Sep20 ? 00:00:00 /usr/sbin/sshd -D root 32457 2 0 Sep17 ? 00:00:00 [kworker/0:1H] [root@iZ28qzns9m4Z pip-1.4.1]#
前臺做業:經過終端啓動,而且在中止以前也會一直佔據終端;
後臺做業:做業啓動之時與終端無關,或者是在前臺啓動,但啓動後轉爲與終端無關模式運行;
一、對於已經啓動並處於運行中的做業:Ctrl+z
注意: 做業被送日後臺後,默認處於stopped狀態;
二、對於還沒有啓動的做業: COMMAND &
注意: 此兩類方式相關做業,仍然與終端相關;這意味着,終端終止,將會致使與此終端相關的全部做業被終止;
剝離進程與終端的關係:
# nohup COMMAND &
做業控制命令:
fg [[%]job_num]:把指定的做業調回前臺;
bg [[%]job_num]:把調日後臺的指定的做業啓動起來,讓其後臺默默運行;但此做業必須支持運行 於後臺;
kill [%job_num]:終止指定的做業;
進程優先級調整:
靜態優先級:
經過指定進程的nice值來調整其優先級;用戶 空間運行的進程通常都有其nice值;
nice值: -20, 19
優先級: 100, 139
默認啓動進程時,其nice值爲0, 其優先級爲120;
(1) 對於還沒有啓動的進程:
# nice -n N COMMAND
(2) 對於已經啓動並處於運行中的進程:
# renice -n N PID
注意:普通用戶默認只能調低優先級即僅可以調大nice,;
[root@iZ28qzns9m4Z ~]# top & [1] 959 [root@iZ28qzns9m4Z ~]# jobs [1]+ Stopped top [root@iZ28qzns9m4Z ~]# glances & [2] 969 [root@iZ28qzns9m4Z ~]# jobs [1]- Stopped top [2]+ Stopped glances [root@iZ28qzns9m4Z ~]# vmstat 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 852348 11224 80356 0 0 529 14 522 307 1 1 91 3 4 [root@iZ28qzns9m4Z ~]# ^C [root@iZ28qzns9m4Z ~]# vmstat 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 852292 11224 80388 0 0 519 14 521 306 1 1 92 2 4 [root@iZ28qzns9m4Z ~]# vmstat 2 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 852508 11224 80388 0 0 502 14 515 304 1 1 92 2 4 ^Z [3]+ Stopped vmstat 2 [root@iZ28qzns9m4Z ~]# jobs [1] Stopped top [2]- Stopped glances [3]+ Stopped vmstat 2 Welcome to aliyun Elastic Compute Service! #重啓終端後臺做業消失 [root@iZ28qzns9m4Z ~]# jobs [root@iZ28qzns9m4Z ~]# [root@iZ28qzns9m4Z ~]# vi aaa [2]+ Stopped vi aaa [root@iZ28qzns9m4Z ~]# job -bash: job: command not found [root@iZ28qzns9m4Z ~]# jobs [1]- Stopped glances [2]+ Stopped vi aaa [root@iZ28qzns9m4Z ~]# fg %1 glances [root@iZ28qzns9m4Z ~]# glances & [3] 1067 [root@iZ28qzns9m4Z ~]# jobs [2]- Stopped vi aaa [3]+ Stopped glances [root@iZ28qzns9m4Z ~]# bg 2 [2]- vi aaa & [root@iZ28qzns9m4Z ~]# jobs [2]+ Stopped vi aaa [3]- Stopped glances [root@iZ28qzns9m4Z ~]#