linux常見調優命令 linux自帶的性能調優工具有哪些
Linux 性能調優都有哪幾種方法
Disabling daemons (關閉 daemons)。
站在用戶的角度思考問題,與客戶深入溝通,找到天等網站設計與天等網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都做網站、成都網站建設、成都外貿網站建設、企業官網、英文網站、手機端網站、網站推廣、域名與空間、虛擬主機、企業郵箱。業務覆蓋天等地區。
Shutting down the GUI (關閉 GUI)。
Changing kernel parameters (改變內核參數)。
Kernel parameters (內核參數)。
Tuning the processor subsystem (處理器子系統調優)。
Tuning the memory subsystem (內存子系統調優)。
Tuning the file system (文件系統子系統調優)。
Tuning the network subsystem(網絡子系統調優)。
Linux CPU性能調優
CPU是影響linux性能的主要因素之一。vmstat命令:顯示關于系統各種資源之間相關性能的簡要信息。
procs那欄中的r表示運行和等待CPU時間片的進程數,如果這個值長期大于系統CPU的個數那就說明CPU不足,需要增加CPU。memory那欄中:swapd表示切換到內存交換區的內存數量。free表示當前空閑的物理內存數量。buff表示塊設備(/dev/sda)讀寫需要的緩沖。cache表示文件系統的緩存。如果值較大,說明緩存中的文件數較多。swap中si表示由磁盤調入內存。so表示由內存調入磁盤。在一般情況下,si和so的值都為0,如果這2個值長期不為0
的話,說明系統內存不足,需要添加內存。
io:顯示磁盤讀寫狀況bi表示讀磁盤數據的總量。bo表示寫磁盤數據的總量。system:顯示間隔內發生的中斷數in表示在磨一時間間隔中每秒設備中斷數。cs表示每秒產生的上下文切換次數。這2個值越大,則說明內核消耗CPU時間就越多。cpu:顯示了CPU的使用狀態us顯示了用戶進程消耗CPU時間百分比。如果us值越高則說明消耗CPU的時間越多,如果us的值長期大于50%則需要優化程序或算法。sy顯示內核消耗CPU時間百分比。如果us+sy值大于80%,則可能存在CPU資源不足情況。id顯示CPU處于空閑狀態時間百分比。wa顯示IO等待所占用CPU時間百分比。wa越高,則IO等待越嚴重,則考慮提高磁盤讀寫性能。wa參考值20%。sar命令:可以對每個方面進行單獨的統計,但是增加了系統開銷,但是對系統的統計結果不會有很大影響。
由上圖可以看出我的系統只有一個CPU,如果有多個CPU的話會顯示多個。在多個CPU的情況下,如果想對其中一個CPU進行信息統計的話,則使用sar
–P
2
3
對第一個CPU進行信息統計。%user顯示用戶進程消耗的CPU時間百分比%nice顯示運行正常進程所消耗CPU時間百分比%system顯示了系統進程消耗CPU時間百分比%iowait顯示IO等待所占用CPU時間百分比%idle顯示了CPU處在空閑時間百分比%steal顯示在內存相對緊張的環境下pagein強制對不同的頁面進行的steal操作。最后一行Average顯示了上面統計的平均值。如果在一個多CPU的系統中,如果程序使用了單線程,會造成CPU整體使用率不高,導致一個CPU在使用,其他CPU處在閑置狀態。
iostat命令:主要用于統計磁盤IO狀態,但是也能查看CPU使用情況,但是只能顯示所有CPU的平均信息。
這里各列的意思與sar中的意思一樣。uptime命令:主要統計系統當前的運行狀況。
系統在1分鐘內,5分鐘內,15分鐘內的平均負荷。上面的vmstat,sar,iostat,uptime命令主要是用于統計CPU信息的,還可以通過top,ps查看進程使用情況,來判斷CPU負載過大的原因。
作者
alan9101
linux 內核參數優化
作為高性能WEB服務器,只調整Nginx本身的參數是不行的,因為Nginx服務依賴于高性能的操作系統。
以下為常見的幾個Linux內核參數優化方法。
net.ipv4.tcp_max_tw_buckets
對于tcp連接,服務端和客戶端通信完后狀態變為timewait,假如某臺服務器非常忙,連接數特別多的話,那么這個timewait數量就會越來越大。
畢竟它也是會占用一定的資源,所以應該有一個最大值,當超過這個值,系統就會刪除最早的連接,這樣始終保持在一個數量級。
這個數值就是由net.ipv4.tcp_max_tw_buckets這個參數來決定的。
CentOS7系統,你可以使用sysctl -a |grep tw_buckets來查看它的值,默認為32768,
你可以適當把它調低,比如調整到8000,畢竟這個狀態的連接太多也是會消耗資源的。
但你不要把它調到幾十、幾百這樣,因為這種狀態的tcp連接也是有用的,
如果同樣的客戶端再次和服務端通信,就不用再次建立新的連接了,用這個舊的通道,省時省力。
net.ipv4.tcp_tw_recycle = 1
該參數的作用是快速回收timewait狀態的連接。上面雖然提到系統會自動刪除掉timewait狀態的連接,但如果把這樣的連接重新利用起來豈不是更好。
所以該參數設置為1就可以讓timewait狀態的連接快速回收,它需要和下面的參數配合一起使用。
net.ipv4.tcp_tw_reuse = 1
該參數設置為1,將timewait狀態的連接重新用于新的TCP連接,要結合上面的參數一起使用。
net.ipv4.tcp_syncookies = 1
tcp三次握手中,客戶端向服務端發起syn請求,服務端收到后,也會向客戶端發起syn請求同時連帶ack確認,
假如客戶端發送請求后直接斷開和服務端的連接,不接收服務端發起的這個請求,服務端會重試多次,
這個重試的過程會持續一段時間(通常高于30s),當這種狀態的連接數量非常大時,服務器會消耗很大的資源,從而造成癱瘓,
正常的連接進不來,這種惡意的半連接行為其實叫做syn flood攻擊。
設置為1,是開啟SYN Cookies,開啟后可以避免發生上述的syn flood攻擊。
開啟該參數后,服務端接收客戶端的ack后,再向客戶端發送ack+syn之前會要求client在短時間內回應一個序號,
如果客戶端不能提供序號或者提供的序號不對則認為該客戶端不合法,于是不會發ack+syn給客戶端,更涉及不到重試。
net.ipv4.tcp_max_syn_backlog
該參數定義系統能接受的最大半連接狀態的tcp連接數。客戶端向服務端發送了syn包,服務端收到后,會記錄一下,
該參數決定最多能記錄幾個這樣的連接。在CentOS7,默認是256,當有syn flood攻擊時,這個數值太小則很容易導致服務器癱瘓,
實際上此時服務器并沒有消耗太多資源(cpu、內存等),所以可以適當調大它,比如調整到30000。
net.ipv4.tcp_syn_retries
該參數適用于客戶端,它定義發起syn的最大重試次數,默認為6,建議改為2。
net.ipv4.tcp_synack_retries
該參數適用于服務端,它定義發起syn+ack的最大重試次數,默認為5,建議改為2,可以適當預防syn flood攻擊。
net.ipv4.ip_local_port_range
該參數定義端口范圍,系統默認保留端口為1024及以下,以上部分為自定義端口。這個參數適用于客戶端,
當客戶端和服務端建立連接時,比如說訪問服務端的80端口,客戶端隨機開啟了一個端口和服務端發起連接,
這個參數定義隨機端口的范圍。默認為32768 61000,建議調整為1025 61000。
net.ipv4.tcp_fin_timeout
tcp連接的狀態中,客戶端上有一個是FIN-WAIT-2狀態,它是狀態變遷為timewait前一個狀態。
該參數定義不屬于任何進程的該連接狀態的超時時間,默認值為60,建議調整為6。
net.ipv4.tcp_keepalive_time
tcp連接狀態里,有一個是established狀態,只有在這個狀態下,客戶端和服務端才能通信。正常情況下,當通信完畢,
客戶端或服務端會告訴對方要關閉連接,此時狀態就會變為timewait,如果客戶端沒有告訴服務端,
并且服務端也沒有告訴客戶端關閉的話(例如,客戶端那邊斷網了),此時需要該參數來判定。
比如客戶端已經斷網了,但服務端上本次連接的狀態依然是established,服務端為了確認客戶端是否斷網,
就需要每隔一段時間去發一個探測包去確認一下看看對方是否在線。這個時間就由該參數決定。它的默認值為7200秒,建議設置為30秒。
net.ipv4.tcp_keepalive_intvl
該參數和上面的參數是一起的,服務端在規定時間內發起了探測,查看客戶端是否在線,如果客戶端并沒有確認,
此時服務端還不能認定為對方不在線,而是要嘗試多次。該參數定義重新發送探測的時間,即第一次發現對方有問題后,過多久再次發起探測。
默認值為75秒,可以改為3秒。
net.ipv4.tcp_keepalive_probes
第10和第11個參數規定了何時發起探測和探測失敗后再過多久再發起探測,但并沒有定義一共探測幾次才算結束。
該參數定義發起探測的包的數量。默認為9,建議設置2。
設置和范例
在Linux下調整內核參數,可以直接編輯配置文件/etc/sysctl.conf,然后執行sysctl -p命令生效。
linux性能調優都有哪幾種方法?
1、為磁盤I/O調整Linux內核電梯算法
在選擇文件系統后,有一些內核和掛載選項可能會影響到它的性能表現,其中一個內核設置是電梯算法,通過此算法,系統可以平衡低延遲需求,收集足夠的數據,從而有效地組織對磁盤的讀和寫請求。
2、禁用不必要的守護進程
服務器上有很多守護進程或服務不是必需的,這些服務不但沒有發揮作用,還消耗了一定的內存和CPU,因此,需要將它們從服務器移除,這一步最大的好處就是可以加快啟動時間,釋放內存。
3、關掉GUI
一般來說,Linux服務器是不需要GUI的,所以管理任務都可以在命令行下完成,因此最好關掉GUI。
4、清理不需要的模塊或功能
在服務器軟件包中有太多被啟動的功能或模塊實際上是不需要的,仔細看看Apache配置文件,確定FrontPage支持或其它額外的模塊是否真的要用到,如果不需要,應該毫不猶豫地從服務器禁用掉,這樣有助于提高系統內存可用量,騰出更多資源給那些真正需要的軟件,讓它們運行得更快。
5、禁用控制面板
在Linux中,有許多流行的控制面板,如Cpanel,Plesk,Webmin和phpMyAdmin等,但是,禁用掉這些軟件包可以釋放出大約120MB內存,它們可以通過PHP腳本(盡管有些不安全),或命令行命令啟用,這樣做后,內存使用量大約可以下降30-40%。
6、改善Linux Exim服務器性能
7、使用AES256增強gpg文件加密安全
為了提高備份文件或敏感信息的安全,許多Linux系統管理員都會使用gpg進行加密,它是一個開放的加密算法,沒有什么比它更安全的了。
8、遠程備份服務安全
安全是選擇遠程備份服務最重要的因素,大多數系統管理員都害怕兩件事:(黑客)可以刪除備份文件,不能從備份恢復系統。為了保證備份文件100%的安全,備份服務公司提供遠程備份服務器,使用scp腳本或RSYNC通過SSH傳輸數據,這樣,沒有人可以直接進入和訪問遠程系統,因此,也沒有人可以從備份服務刪除數據。在選擇遠程備份服務提供商時,最好從多個方面了解其服務強壯性,如果可以,可以親自測試一下。
文章名稱:linux常見調優命令 linux自帶的性能調優工具有哪些
當前鏈接:http://www.xueling.net.cn/article/hhigie.html