centos机器查看、支持、修改当前并发数
1、查看服务器并发数
查看当前服务器的并发连接数:
查看使用了多少连接数:
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count
新版本centos用这个:
cat /proc/sys/net/netfilter/nf_conntrack_count
查看总数多少:
cat /proc/sys/net/ipv4/ip_conntrack_max
新版本用这个:
cat /proc/sys/net/netfilter/nf_conntrack_max
临时设置增加并发数多少:
echo “524288” > /proc/sys/net/ipv4/ip_conntrack_max
新版本centos用这个:
echo “524288” > /proc/sys/net/netfilter/nf_conntrack_max
最终:
/etc/sysctl.conf中加入:net.ipv4.ip_conntract_max =102400
新版本centos用这个:
/etc/sysctl.conf中加入:net.nf_conntract_max =102400
重启配置
/sbin/sysctl -p
linux的并发过程中,time_wait的数量太大,引起的链接挂起等待,需要在服务器增加以下配置:
编辑文件/etc/sysctl.conf,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后执行 /sbin/sysctl -p 让参数生效。
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout 修改系默认的 TIMEOUT 时间
2、监控tcp连接情况
$ netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
CLOSE_WAIT 13 (等待结束的请求13个)
ESTABLISHED 98 (有98个正常数据传输状态)
TIME_WAIT 563(SYN连接请求收到563个 等待确认)
您在 /var/spool/mail/yfbkf 中有新邮件
2、查看服务器支持的最大用户进程数和文件打开数
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 127973
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024 (支持的最大文件句柄数,支持的单个进程最大并发数)
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 4096 (支持的最大用户进程数)
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
默认情况下,linux最大文件句柄数为1024个。当你的服务器在大并发达到极限时,就会报出“too many open files”。
3、修改服务器系统支持的最大用户进程数和文件打开数
$ ulimit -n 2048 临时修改最大并发数
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 127973
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 2048
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
但是,这种方法只针对当前进程有效。重新打开一个shell或者开启一个进程,你就会发现参数还是ulimit -n xx修改之前的数字。那么有没有一劳永逸的方法呢?
当然有!那就是修改系统参数。
2、修改linux系统参数。vi /etc/security/limits.conf 添加
* soft nofile 65535
* hard nofile 65535
修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了