1. 程式人生 > >二、架構搭建說明

二、架構搭建說明

關聯 小時 ping app network ash file 初始 ntpdate

1.使用操作系統為Centos6.6
2.源碼包統一下載路徑/application/tools/
3.服務器腳本目錄/server/scripts
4.程序安裝目錄/application
5.系統初始化的設置

(1)開機啟動項優化 
chkconfig --list | egrep -v "network|rsyslog|sshd|sysstat|crond" | awk -F ' ' '{print "chkconfig",$1,"off"}' | bash
(2)時間同步 
echo '
/5 
/usr/sbin/ntpdate 0.asia.pool.ntp.org >/dev/null 2>&1' >> /var/spool/cron/root
(3)加大文件描述符(高並發時)
echo '
 - nofile 65535'>>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
(4)sysctl優化
cat << EOF >> /etc/sysctl.conf 
net.ipv4.tcp_rmem = 4096 87380 4194304 
net.ipv4.tcp_wmem = 4096 65536 4194304 
net.core.wmem_default = 8388608 
net.core.rmem_default = 8388608 
net.core.rmem_max = 16777216 
net.core.wmem_max = 16777216 
net.core.netdev_max_backlog = 262144 
net.core.somaxconn = 262144 
net.ipv4.tcp_max_orphans = 3276800 
net.ipv4.tcp_max_syn_backlog = 8192 
net.ipv4.tcp_max_tw_buckets = 5000 
net.ipv4.tcp_timestamps = 0 
net.ipv4.tcp_synack_retries = 1 
net.ipv4.tcp_syn_retries = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_mem = 786432 1048576 1572864 
net.ipv4.tcp_fin_timeout = 30 
net.ipv4.tcp_keepalive_time = 1200 
net.ipv4.ip_local_port_range = 1024 65000
EOF
/sbin/sysctl -p
net.ipv4.tcp_rmem = 4096 87380 4194304:TCP讀buffer,可參考的優化值: 32768 436600 873200
net.ipv4.tcp_wmem = 4096 65536 4194304:TCP寫buffer,可參考的優化值: 8192 436600 873200
net.core.wmem_default:表示發送套接字緩沖區大小的缺省值(以字節為單位)
net.core.rmem_default:表示接收套接字緩沖區大小的缺省值(以字節為單位) 
net.core.rmem_max :表示接收套接字緩沖區大小的最大值(以字節為單位) 
net.core.wmem_max:表示發送套接字緩沖區大小的最大值(以字節為單位) 
net.core.netdev_max_backlog = 262144:每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。 
net.core.somaxconn = 262144:web應用中listen函數的backlog默認會給我們內核參數的net.core.somaxconn限制到128,而nginx定義的NGX_LISTEN_BACKLOG默認為511,所以有必要調整這個值。 
net.ipv4.tcp_max_orphans = 3276800:系統中最多有多少個TCP套接字不被關聯到任何一個用戶文件句柄上。 
net.ipv4.tcp_max_syn_backlog = 8192:表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。 
net.ipv4.tcp_max_tw_buckets = 5000:表示系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除並打印警告信息。減少它的最大數量,避免Squid服務器被大量的TIME_WAIT套接字拖死。 
net.ipv4.tcp_timestamps = 0:時間戳可以避免序列號的卷繞。一個1Gbps的鏈路肯定會遇到以前用過的序列號,時間戳能夠讓內核接受這種“異常”的數據包,這裏需要將其關掉。
net.ipv4.tcp_tw_recycle = 1:表示開啟TCP連接中TIME-WAIT sockets的快速回收。
net.ipv4.tcp_tw_reuse = 1:表示開啟重用,允許將TIME-WAIT sockets重新用於新的TCP連接。
net.ipv4.tcp_mem = 786432 1048576 1572864:同樣有3個值,net.ipv4.tcp_mem[0]:低於此值,TCP沒有內存壓力;net.ipv4.tcp_mem[1]:在此值下,進入內存壓力階段;net.ipv4.tcp_mem[2]:高於此值,TCP拒絕分配socket。可根據物理內存大小進行調整,如果內存足夠大的話,可適當往上調。建議94500000 915000000 927000000。 
net.ipv4.tcp_fin_timeout = 30:表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。 
net.ipv4.tcp_keepalive_time = 1200:表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改為20分鐘。 
net.ipv4.ip_local_port_range = 1024 65000:表示用於向外連接的端口範圍。缺省情況下很小:32768到61000,改為1024到65000。


二、架構搭建說明