十五穴墅、系統(tǒng)調(diào)優(yōu)

簡介:系統(tǒng)優(yōu)化其本質(zhì)是系統(tǒng)在提供服務(wù)的同時惶室,承受壓力過大需進(jìn)行參數(shù)調(diào)優(yōu)

1、查看平均負(fù)載

系統(tǒng)負(fù)載System Load:系統(tǒng)CPU繁忙程度的度量玄货,即有多少進(jìn)程在等待被CPU調(diào)度,平均負(fù)載(Load Average):一段時間內(nèi)系統(tǒng)的平均負(fù)載皇钞,這個一段時間一般取1分鐘、5分鐘松捉、15分鐘

[root@linux_server ~]# uptime
10:48:38 up 5 min,  2 users,  load average: 0.05, 0.08, 0.05
1分鐘平均負(fù)載夹界,5分鐘平均負(fù)載,15分鐘平均負(fù)載分別是0.05,0.08,0.05
[root@linux_server ~]# w    #查看都有哪些用戶連接服務(wù)器
 10:49:59 up 7 min,  2 users,  load average: 0.01, 0.06, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      10:43    6:07   0.01s  0.01s -bash
root     pts/0    192.168.94.1     10:48    7.00s  0.02s  0.01s w

2隘世、查看CPU每隔10min的使用情況

[root@linux_server ~]# yum -y install sysstat     #裝完成之后需要等待一會
[root@linux_server ~]# sar 
Linux 3.10.0-693.el7.x86_64 (linux-server)  11/16/2019  _x86_64_    (1 CPU)

08:50:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:00:01 PM     all      0.25      0.00      0.44      0.78      0.00     98.52
09:10:02 PM     all      0.55      0.00      0.32      0.16      0.00     98.98
Average:        all      0.40      0.00      0.38      0.47      0.00     98.75
-A:所有報告的總和
-u:輸出CPU使用情況的統(tǒng)計信息
-v:輸出inode可柿、文件和其他內(nèi)核表的統(tǒng)計信息
-d:輸出每一個塊設(shè)備的活動信息
-r:輸出內(nèi)存和交換空間的統(tǒng)計信息
-b:顯示I/O和傳送速率的統(tǒng)計信息
-a:文件讀寫情況
-c:輸出進(jìn)程統(tǒng)計信息鸠踪,每秒創(chuàng)建的進(jìn)程數(shù)
-R:輸出內(nèi)存頁面的統(tǒng)計信息
-y:終端設(shè)備活動情況
-w:輸出系統(tǒng)交換活動信息

例如,每2秒采樣一次复斥,連續(xù)采樣3次营密,觀察CPU 的使用情況
[root@linux_server ~]# sar -u 2 3
Linux 3.10.0-693.el7.x86_64 (linux-server)  11/16/2019  _x86_64_    (1 CPU)

09:19:21 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:19:23 PM     all      0.00      0.00      0.50      0.00      0.00     99.50
09:19:25 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
09:19:27 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.00      0.00      0.17      0.00      0.00     99.83
參數(shù)詳解:
CPU:all 表示統(tǒng)計信息為所有 CPU 的平均值。
%user:顯示在用戶級別(application)運行使用 CPU 總時間的百分比永票。
%nice:顯示在用戶級別卵贱,用于nice操作,所占用 CPU 總時間的百分比侣集。
%system:在核心級別(kernel)運行所使用 CPU 總時間的百分比键俱。
%iowait:顯示用于等待I/O操作占用 CPU 總時間的百分比。
%steal:管理程序(hypervisor)為另一個虛擬進(jìn)程提供服務(wù)而等待虛擬 CPU 的百分比世分。
%idle:顯示 CPU 空閑時間占用 CPU 總時間的百分比编振。
1. 若 %iowait 的值過高,表示硬盤存在I/O瓶頸臭埋。
2. 若 %idle 的值高但系統(tǒng)響應(yīng)慢時踪央,有可能是 CPU 等待分配內(nèi)存,此時應(yīng)加大內(nèi)存容量瓢阴。
3. 若 %idle 的值持續(xù)低于1畅蹂,則系統(tǒng)的 CPU 處理能力相對較低,表明系統(tǒng)中最需要解決的資源是 CPU荣恐。
===================================================================================
例如液斜,每3秒采樣一次,連續(xù)采樣3次叠穆,觀察內(nèi)存和交換空間狀態(tài)
[root@linux_server ~]# sar -r 3 3
Linux 3.10.0-693.el7.x86_64 (linux-server)  11/16/2019  _x86_64_    (1 CPU)

09:20:55 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
09:20:58 PM    676148    323548     32.36         0    169548    293372      9.47    136672     91728         0
09:21:01 PM    676148    323548     32.36         0    169548    293372      9.47    136672     91728         0
09:21:04 PM    676148    323548     32.36         0    169548    293372      9.47    136676     91728         0
Average:       676148    323548     32.36         0    169548    293372      9.47    136673     91728         0
參數(shù)詳解:
輸出項說明:
kbmemfree:這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間.
kbmemused:這個值和free命令中的used值基本一致,所以它包括buffer和cache的空間.
%memused:這個值是kbmemused和內(nèi)存總量(不包括swap)的一個百分比.
kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache
kbcommit:保證當(dāng)前系統(tǒng)所需要的內(nèi)存,即為了確保不溢出而需要的內(nèi)存(RAM+swap).
%commit:這個值是kbcommit與內(nèi)存總量(包括swap)的一個百分比.
=============================================================================

3.查看進(jìn)程io使用情況

[root@linux_server ~]# yum -y install iotop
[root@linux_server ~]# iotop
[root@linux_server ~]# iotop -b -n 3 -d 5
--version #顯示版本號 
-h, --help #顯示幫助信息 
-o, --only #顯示進(jìn)程或者線程實際上正在做的I/O少漆,而不是全部的,可以隨時切換按o 
-b, --batch #運行在非交互式的模式 
-n NUM, --iter=NUM #在非交互式模式下硼被,設(shè)置顯示的次數(shù)示损, 
-d SEC, --delay=SEC #設(shè)置顯示的間隔秒數(shù),支持非整數(shù)值 
-p PID, --pid=PID #只顯示指定PID的信息 
-u USER, --user=USER #顯示指定的用戶的進(jìn)程的信息 
-P, --processes #只顯示進(jìn)程嚷硫,一般為顯示所有的線程 
-a, --accumulated #顯示從iotop啟動后每個線程完成了的IO總數(shù) 
-k, --kilobytes #以千字節(jié)顯示 
-t, --time #在每一行前添加一個當(dāng)前的時間
IO #IO利用率

4.查看內(nèi)存使用情況

[root@linux_server ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 648128   2108 251128    0    0   334    30  122  186  0  1 99  0  0

r: 表示運行和等待CPU時間片的進(jìn)程數(shù)(就是說多少個進(jìn)程真的分配到CPU)检访,這個值如果長期大于系統(tǒng)CPU個數(shù),說明CPU 不足仔掸,需要增加CPU  
b:表示在等待資源的進(jìn)程數(shù)脆贵。 
 
2、memory 
swpd:表示切換到內(nèi)存交換區(qū)的內(nèi)存大小嘉汰,即虛擬內(nèi)存已使用的大小(單位KB)状勤,如果大于0鞋怀,表示你的機(jī)器物理內(nèi)存不足 了双泪,如果不是程序內(nèi)存泄露的原因,那么你該升級內(nèi)存了或者把耗內(nèi)存的任務(wù)遷移到其他機(jī)器密似。 
free:表示當(dāng)前空閑的物理內(nèi)存 
buff:表示baffers cached內(nèi)存大小焙矛,也就是緩沖大小,一般對塊設(shè)備的讀寫才需要緩沖 
Cache:表示page cached的內(nèi)存大小残腌,也就是緩存大小村斟,一般作為文件系統(tǒng)進(jìn)行緩沖,頻繁訪問的文件都會被緩存抛猫,如果 cache值非常大說明緩存文件比較多蟆盹,如果此時io中的bi比較小,說明文件系統(tǒng)效率比較好 
 
3闺金、swap 
si:表示有磁盤調(diào)入內(nèi)存逾滥,也就是內(nèi)存進(jìn)入內(nèi)存交換區(qū)的內(nèi)存大小败匹;通俗的講就是 每秒從磁盤讀入虛擬內(nèi)存的大小寨昙,如果這 個值大于0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了掀亩,要查找耗內(nèi)存進(jìn)程解決掉舔哪。
so:表示由內(nèi)存進(jìn)入磁盤,也就是由內(nèi)存交換區(qū)進(jìn)入內(nèi)存的內(nèi)存大小槽棍。 注意:一般情況下si捉蚤、so的值都為0,如果si刹泄、so的值長期不為0外里,則說明系統(tǒng)內(nèi)存不足,需要增加系統(tǒng)內(nèi)存 
 
4特石、io 
bi:表示由塊設(shè)備讀入數(shù)據(jù)的總量盅蝗,即讀磁盤,單位kb/s 
bo:表示寫到塊設(shè)備數(shù)據(jù)的總量姆蘸,即寫磁盤墩莫,單位kb/s 
注意:如果bi+bo的值過大,且wa值較大逞敷,則表示系統(tǒng)磁盤IO瓶頸

5.釋放buffffer和cache

[root@linux_server ~]# echo 3 > /proc/sys/vm/drop_caches

6.帶寬使用情況

[root@linux_server ~]# yum install -y epel*
[root@linux_server ~]# yum install -y iftop.x86_64
[root@linux_server ~]# iftop
image.png
第一行:界面上面顯示的是類似刻度尺的刻度范圍狂秦,為顯示流量圖形的長條作標(biāo)尺用的。
中間部分:中間的<= =>這兩個左右箭頭推捐,表示的是流量的方向裂问。=>代表發(fā)送,<=代表接收。
TX:發(fā)送流量
RX:接收流量
TOTAL:總流量
Cumm:運行iftop到目前時間的總流量
peak:流量峰值
rates:分別表示過去 2s 10s 40s 的平均流量

7.動態(tài)查看進(jìn)程

[root@linux_server ~]# yum -y install htop
[root@linux_server ~]# htop
image.png
各項從上至下分別說明如下:
左邊部分從上至下堪簿,分別為痊乾,cpu、內(nèi)存椭更、交換分區(qū)的使用情況哪审,右邊部分為:Tasks為進(jìn)程總數(shù),當(dāng)前運行的進(jìn)程數(shù)虑瀑、Load average為系統(tǒng)1分鐘湿滓,5分鐘,10分鐘的平均負(fù)載情況舌狗、Uptime為系統(tǒng)運行的時間叽奥。
以上各項分別為:
PID:進(jìn)行的標(biāo)識號
USER:運行此進(jìn)程的用戶
PRI:進(jìn)程的優(yōu)先級
NI:進(jìn)程的優(yōu)先級別值,默認(rèn)的為0把夸,可以進(jìn)行調(diào)整
VIRT:進(jìn)程占用的虛擬內(nèi)存值
RES:進(jìn)程占用的物理內(nèi)存值
SHR:進(jìn)程占用的共享內(nèi)存值
S:進(jìn)程的運行狀況而线,R表示正在運行、S表示休眠恋日,等待喚醒膀篮、Z表示僵死狀態(tài)
%CPU:該進(jìn)程占用的CPU使用率
%MEM:該進(jìn)程占用的物理內(nèi)存和總內(nèi)存的百分比
TIME+:該進(jìn)程啟動后占用的總的CPU時間
COMMAND:進(jìn)程啟動的啟動命令名稱

#Linux htop工具使用詳解  -----了解
h, ?    F1  查看htop使用說明
S   F2  htop 設(shè)定
/   F3  搜索進(jìn)程
\   F4  增量進(jìn)程過濾器
t   F5  顯示樹形結(jié)構(gòu)
<, >    F6  選擇排序方式
[   F7  可減少nice值可以提高對應(yīng)進(jìn)程的優(yōu)先級
]   F8  可增加nice值,降低對應(yīng)進(jìn)程的優(yōu)先級
k   F9  可對進(jìn)程傳遞信號
q   F10 結(jié)束htop
u   只顯示一個給定的用戶的過程
U   取消標(biāo)記所有的進(jìn)程
H   顯示或隱藏用戶線程
K   顯示或隱藏內(nèi)核線程
F   跟蹤進(jìn)程
P   按CPU 使用排序
M   按內(nèi)存使用排序
T   按Time+ 使用排序
l   顯示進(jìn)程打開的文件
I   倒轉(zhuǎn)排序順序
s   選擇某進(jìn)程岂膳,按s:用strace追蹤進(jìn)程的系統(tǒng)調(diào)用

8.監(jiān)控網(wǎng)速

[root@linux_server ~]# yum -y install nload
[root@linux_server ~]# nload
image.png
上半部分是:Incoming也就是進(jìn)入網(wǎng)卡的流量
下半部分是:Outgoing誓竿,也就是從這塊網(wǎng)卡出去的流量, 
每部分都有當(dāng)前流量(Curr)谈截, 
平均流量(Avg)筷屡, 
最小流量(Min), 
最大流量(Max)簸喂, 
總和流量(Ttl).

9.網(wǎng)絡(luò)接口統(tǒng)計報告

[root@linux_server ~]# yum -y install nethogs
[root@linux_server ~]# nethogs
image.png
實例1:設(shè)置5秒鐘刷新一次毙死,通過-d來指定刷新頻率 
# nethogs -d 5 
實例2:監(jiān)視ens33網(wǎng)絡(luò)帶寬 
# nethogs ens33 
實例3:同時監(jiān)視eth0和eth1接口 
# nethogs ens33 ens34

10.文件句柄

在linux/unix操作系統(tǒng)中一切皆文件,我們的設(shè)備是文件喻鳄,文件是文件扼倘,文件夾也是文件。當(dāng)我們用戶每發(fā)起一次請求除呵,就會產(chǎn)生一個文件句柄再菊。文件句柄可以簡單的理解為文件句柄就是一個索引。文件句柄就會隨著請求量的增多,進(jìn)程調(diào)用頻繁增加颜曾,那么產(chǎn)生的文件句柄也就會越多纠拔。

系統(tǒng)默認(rèn)對文件句柄是有限制的,不可能會讓一個進(jìn)程無限制的調(diào)用句柄泛豪。因為系統(tǒng)資源是有限的稠诲,所以我們需要限制每一個服務(wù)能夠使用多大的文件句柄侦鹏。操作系統(tǒng)默認(rèn)使用的文件句柄是1024個句柄。

10-1.設(shè)置方式

  • 系統(tǒng)全局性修改
[root@nginx_server ~]# vim /etc/security/limits.conf 
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

#root只是針對root這個用戶來限制臀叙,soft只是發(fā)提醒种柑,操作系統(tǒng)不會強(qiáng)制限制,一般的站點設(shè)置為一萬左右就ok了
root soft nofile 65535
root hard nofile 65535
# *代表通配符 所有的用戶
*    soft nofile 25535
*    hard nofile 25535  #hard硬控制,到達(dá)設(shè)定值后匹耕,操作系統(tǒng)會采取機(jī)制對當(dāng)前進(jìn)程進(jìn)行限制,這個時候請求就會受到影響

可以看到root*荠雕,root代表是root用戶稳其,*代表的是所有用戶,后面的數(shù)字就是文件句柄大小炸卑。
大家可以根據(jù)個人業(yè)務(wù)來進(jìn)行設(shè)置既鞠。

ulimit 命令
# -a  顯示目前資源限制的設(shè)定。
? -c <core文件上限>  設(shè)定core文件的最大值盖文,單位為區(qū)塊嘱蛋。
? -d <數(shù)據(jù)節(jié)區(qū)大小>  程序數(shù)據(jù)節(jié)區(qū)的最大值,單位為KB五续。
? -f <文件大小>  shell所能建立的最大文件洒敏,單位為區(qū)塊。
? -H  設(shè)定資源的硬性限制疙驾,也就是管理員所設(shè)下的限制凶伙。
? -m <內(nèi)存大小>  指定可使用內(nèi)存的上限,單位為KB它碎。
# -n <文件數(shù)目>  指定同一時間最多可開啟的文件數(shù)函荣。
? -p <緩沖區(qū)大小>  指定管道緩沖區(qū)的大小,單位512字節(jié)扳肛。
? -s <堆疊大小>  指定堆疊的上限傻挂,單位為KB。
? -S  設(shè)定資源的彈性限制挖息。
? -t <CPU時間>  指定CPU使用時間的上限金拒,單位為秒。
? -u <程序數(shù)目>  用戶最多可開啟的程序數(shù)目旋讹。
? -v <虛擬內(nèi)存大小>  指定可使用的虛擬內(nèi)存上限殖蚕,單位為KB


1、ulimit -a       顯示系統(tǒng)資源的設(shè)置
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63154
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) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 63154
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

2沉迹、ulimit -n 65535  #修改打開句柄數(shù)  ---臨時
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末睦疫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鞭呕,更是在濱河造成了極大的恐慌蛤育,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異瓦糕,居然都是意外死亡底洗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門咕娄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亥揖,“玉大人,你說我怎么就攤上這事圣勒》驯洌” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵圣贸,是天一觀的道長挚歧。 經(jīng)常有香客問我,道長吁峻,這世上最難降的妖魔是什么滑负? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮用含,結(jié)果婚禮上矮慕,老公的妹妹穿的比我還像新娘。我一直安慰自己啄骇,他們只是感情好凡傅,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肠缔,像睡著了一般夏跷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上明未,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天槽华,我揣著相機(jī)與錄音,去河邊找鬼趟妥。 笑死猫态,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的披摄。 我是一名探鬼主播亲雪,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疚膊!你這毒婦竟也來了义辕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤寓盗,失蹤者是張志新(化名)和其女友劉穎灌砖,沒想到半個月后璧函,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡基显,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年蘸吓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撩幽。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡库继,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出窜醉,到底是詐尸還是另有隱情制跟,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布酱虎,位于F島的核電站,受9級特大地震影響擂涛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一浩蓉、第九天 我趴在偏房一處隱蔽的房頂上張望运褪。 院中可真熱鬧,春花似錦狰右、人聲如沸杰捂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嫁佳。三九已至,卻和暖如春谷暮,著一層夾襖步出監(jiān)牢的瞬間蒿往,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工湿弦, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留瓤漏,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓颊埃,卻偏偏與公主長得像蔬充,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子班利,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容