系统优化怎么做-Linux系统配置优化
前言
應用系統(tǒng)跑在操作系統(tǒng)上面,系統(tǒng)的性能也關系到應用程序的性能,這里講一些Linux性能關鍵的配置信息。
永久關閉selinux
selinux提高系統(tǒng)安全性,但會造成很多麻煩,一般關閉
將SELINUX=enforcing改為SELINUX=disabled,保存后退出,重啟生效
reboot設定系統(tǒng)runlevel為3
節(jié)約系統(tǒng)資源
加大系統(tǒng)文件描述符最大值
vim /etc/security/limits.conf調整大小
* soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536說明:* 代表針對所有用戶
noproc 是代表最大進程數(shù)
nofile 是代表最大文件打開數(shù)
調整內核參數(shù)文件 /etc/syctl.conf
配置網絡參數(shù)來提高系統(tǒng)負載能力
如果出現(xiàn)服務器丟包的情況,需要考慮是不是如下配置需要調整
表示開啟SYN Cookies。當出現(xiàn)SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉;
表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關閉;
表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。
表示如果套接字由本端要求關閉,這個參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時間。
表示當keepalive起用的時候,TCP發(fā)送keepalive消息的頻度。缺省是2小時,改為20分鐘。
表示用于向外連接的端口范圍。缺省情況下很小:32768到61000,改為1024到65000。
表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數(shù)。
在內核內存中netfilter可以同時處理的“任務”(連接跟蹤條目)
火墻配置
/etc/syctl 尾部加上如下防火墻相關配置
有可能是sysctl.conf.first文件
開啟重用,回收 socket資源用于新的TCP鏈接
開啟回收:
```javascript net.ipv4.tcp_tw_recycle=1 網絡鏈接最大值及超時配置 ```javascript net.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_tcp_timeout_established = 180 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120net.nf_conntrack_max
nf_conntrack_max決定連接跟蹤表的大小,默認值是65535,可以根據(jù)系統(tǒng)內存大小計算一個合理值:CONNTRACK_MAX = RAMSIZE(in bytes)/16384/(ARCH/32),如32G內存可以設置1048576;
nf_conntrack_buckets
決定存儲conntrack條目的哈希表大小,默認值是nf_conntrack_max的1/4,延續(xù)這種計算方式:BUCKETS = CONNTRACK_MAX/4,如32G內存可以設置262144;
net.netfilter.nf_conntrack_max
最大連接數(shù)
net.netfilter.nf_conntrack_tcp_timeout_established
決定ESTABLISHED狀態(tài)連接的超時時間,默認值是5天,可以縮短到1小時,即3600。
net.netfilter.nf_conntrack_tcp_timeout_time_wait
決定WAIT狀態(tài)連接的超時等待時間
net.netfilter.nf_conntrack_tcp_timeout_close_wait
決定關閉狀態(tài)連接的超時等待時間
net.netfilter.nf_conntrack_tcp_timeout_fin_wait
決定WAIT狀態(tài)連接的超時等待時間
以上配置生效
常見異常
- too many open files(打開的文件過多)
程序在Linux系統(tǒng)中常見的錯誤,從字面意思上看就是說程序打開的文件數(shù)過多,不過這里的files不單是文件的意思,也包括打開的通訊鏈接(比如socket),正在監(jiān)聽的端口等等,所以有時候也可以叫做句柄(handle),這個錯誤通常也可以叫做句柄數(shù)超出系統(tǒng)限制。
在高并發(fā)情況或者程序代碼中沒有正確關閉IO, 并系統(tǒng)限制比較小的情況下,系統(tǒng)在運行一段時間后,程序打開句柄數(shù)超過系統(tǒng)限制的時候拋出該異常 - 連接服務器超時
一般TimeWait進程數(shù)過多
原因一般為 應用程序沒有正確關閉連接,導致服務器TIME_WAIT進程過多,主動關閉連接導致TIME_WAIT產生。先檢查程序及系統(tǒng)以上配置
常見命令
uptime
iostat
統(tǒng)計機器網絡狀態(tài)狀態(tài)
狀態(tài):描述
CLOSED:無連接是活動的或正在進行
LISTEN:服務器在等待進入呼叫
SYN_RECV:一個連接請求已經到達,等待確認
SYN_SENT:應用已經開始,打開一個連接
ESTABLISHED:正常數(shù)據(jù)傳輸狀態(tài)
FIN_WAIT1:應用說它已經完成
FIN_WAIT2:另一邊已同意釋放
ITMED_WAIT:等待所有分組死掉
CLOSING:兩邊同時嘗試關閉
TIME_WAIT:另一邊已初始化一個釋放
LAST_ACK:等待所有分組死掉
總結
Linux提供了豐富的內核參數(shù)供使用者調整,調整得當可以大幅提高服務器的處理能力
總結
以上是生活随笔為你收集整理的系统优化怎么做-Linux系统配置优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统优化怎么做-SQL优化
- 下一篇: 系统优化怎么做-Tomcat优化