linux服務器TCP併發鏈接數優化

一、查看用戶單一進程最大文件打開數html

[root@localhost ~]# ulimit -n
1024

二、修改/etc/security/limits.conf文件,添加下面兩行,linux

[root@localhost ~]# vim /etc/security/limits.conf
* soft nofile 20480      #前面的*表示對全部用戶生效,若是隻想對單一用戶修改則把*改爲對應用戶便可
* hard nofile 20480      #soft和hard分別表示軟限制和硬限制,軟限制必須小於或等於硬限制
修改保存後新開窗口再執行ulimit -n就能看到修改生效了,若是沒生效則修改/etc/pam.d/login文件,在文件中添加以下行
[root@localhost ~]# vim /etc/pam.d/login
session required /lib/security/pam_limits.so
還有一種修改方法,就是在/etc/profile文件中添加ulimit -n 65535

注:centos 6.X之後新增了一個/etc/security/limits.d/90-nproc.conf 文件,用於控制nproc 。這裏面的默認配置是
*          soft    nproc     1024
root       soft    nproc     unlimited
1024大小顯然對運行程序的用戶來講,太少了點。更改成65535便可

三、查看系統的最大文件打開數,這是全部用戶能打開文件數的總和,也就是說上面對單一用戶容許的最大文件打開數不能大於這個值。vim

[root@localhost ~]# cat /proc/sys/fs/file-max
97901
若是想修改的話,雖然不建議修改,可執行下面語句
echo 1620582 > /proc/sys/fs/file-max
若是沒生效能夠查看/etc/profile文件中是否添加了ulimit-n,註釋掉便可。

四、修改端口限制
當客戶端socket鏈接過來時服務端會開個臨時的端口進行通訊,linux內核對本地端口號範圍有限制,可用下面命令查看centos

[root@localhost ~]# cat /proc/sys/net/ipv4/ip_local_port_range
32768   61000

優化建議:ruby

[root@localhost ~]# vim /etc/sysctl.conf #修改/etc/sysctl.conf文件,在文件中添加以下行
net.ipv4.ip_local_port_range = 1024 65535
[root@localhost ~]# sysctl -p #使修改當即生效,若是沒有報錯就說明成功了
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range = 1024 65535
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
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_local_port_range
1024    65535

參考博客:http://blog.sina.com.cn/s/blog_6f5b22060101362c.htmlmarkdown

相關文章
相關標籤/搜索