socket優化
lsof -p pid |wc -l 檢視系統占用
我們可以通過ulimit –n命令來檢視最大檔案開啟數,如下:
32768
一般情況下是1024,我系統已經改為了32768。
修改/etc/security/limits.conf /etc/security/limits.d/90-nproc.conf
通過 vi /etc/security/limits.conf and /etc/security/limits.d/90-nproc.conf 修改其內容,在檔案最後加入(數值也可以自己定義):
cat <>/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
eof
/etc/security/limits.d/90-nproc.conf
root soft nproc 102400
root hard nproc 102400
mysql soft nproc 102400
mysql hard nproc 102400
* soft nproc 32768
修改/etc/pam.d/login
vi /etc/pam.d/login
在後面加上
session required /lib64/security/pam_limits.so
然後重新登入即可生效了。
tcp優化 試用於 nginx 和socket伺服器
vi /etc/sysctl.conf
vm.overcommit_memory = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.ipv4.tcp_max_syn_backlog = 65536
fs.file-max =9553600
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_intvl = 2
net.nf_conntrack_max=6553600
net.netfilter.nf_conntrack_max=6553600
# controls ip packet forwarding
net.ipv4.ip_forward = 1
sysctl -p 執行生效
報錯:error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
解決方法如下:
modprobe bridge
echo "modprobe bridge" >>/etc/rc.local
linux 優化
redis cache集群方案
本文目標是設計高可用,易伸縮的rediscache集群方案,需求 1.總體架構 2.keeper 負責在zookeeper中註冊維護redis例項的資訊。keeper和redis位於同一臺機器,keeper通過local host位址訪問它維護的redis例項。2.1.啟動 keeper啟動過程的輸...
session 集群方案
背景 假設某個 是由多台伺服器提供服務,nginx採用輪詢機制做負載均衡,那麼同乙個ip訪問該 時,請求就可能會被分配到不同的伺服器上,如果session沒有實現共享,就會出現重複登陸授權的情況。session 集群主要有兩個方案 session 複製和session共享 session 複製 是指...
Memcache 集群方案
一 偽集群方案 最常見的做法 memcache安裝後,在一台機器或多台機器上啟動多個例項,客戶端配置memcache節點的ip,port即可。由客戶端實現分布式快取效果,其實是偽集群。memcache節點之間不通訊,無資料備份,負載均衡由客戶端實現,存在單點故障。客戶端可設定故障恢復和故障轉移機制。...