Linux 服務器基本優化


一:修改ulimit數

vi /etc/security/limits.conf
添加如下行:
* soft noproc 65535
* hard noproc 65535
* soft nofile 65535
* hard nofile 65535

二:內核優化

vim /etc/sysctl.conf

net.ipv4.tcp_syncookies= 1	#表示開啟SYNCookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉;
net.ipv4.tcp_tw_reuse= 1	#表示開啟重用。允許將TIME-WAITsockets重新用於新的TCP連接,默認為0,表示關閉;
net.ipv4.tcp_tw_recycle= 1	#表示開啟TCP連接中TIME-WAITsockets的快速回收,默認為0,表示關閉;
net.ipv4.tcp_fin_timeout= 30	#修改系統默認的TIMEOUT 時間。

#輸入下面的命令,讓內核參數生效:
sysctl-p

在經過這樣的調整之后,除了會進一步提升服務器的負載能力之外,還能夠防御小流量程度的DoS、CC和SYN攻擊。

此外,如果你的連接數本身就很多,我們可以再優化一下TCP的可使用端口范圍,進一步提升服務器的並發能力。依然是往上面的參數文件中,加入下面這些配置:

net.ipv4.tcp_keepalive_time= 1200	#表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改為20分鍾。
net.ipv4.ip_local_port_range= 1024 65535	#表示用於向外連接的端口范圍。缺省情況下很小,改為1024到65535。
net.ipv4.tcp_max_syn_backlog= 8192	#表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。
net.ipv4.tcp_max_tw_buckets= 5000	#表示系統同時保持TIME_WAIT的最大數量,如果超過這個數字,TIME_WAIT將立刻被清除並打印警告信息。默認為180000,改為5000。此項參數可以控制TIME_WAIT的最大數量,只要超出了。

這幾個參數,建議只在流量非常大的服務器上開啟,會有顯著的效果。一般的流量小的服務器上,沒有必要去設置這幾個參數

三:Tomcat優化

修改bin目錄下catalina.sh文件
在cygwin=false之上
添加以下語句
JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"

其中-xms為jvm初始化堆的大小,-xmx為jvm堆的最大值
-server:一定要作為第一個參數,在多個CPU時性能佳
-Xms:java Heap初始大小。 默認是物理內存的1/64。
-Xmx:java heap最大值。建議均設為物理內存的一半。不可超過物理內存。
-XX:PermSize:設定內存的永久保存區初始大小。缺省值為64M。
-XX:MaxPermSize:設定內存的永久保存區最大 大小。缺省值為64M。
-Xmn:young generation(年輕代)的heap大小。一般設置為Xmx的3、4分之一 (Sun官方推薦配置為整個堆的3/8。)

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM