前沿拓展:
kb4020102
1后,外置解码器的音频无法工作的问题。
解决了I
我们只需要对net.ipv4.tcp_mem,net.ipv4.tcp_wmem,net.ipv4.tcp_rmem进行适合的修改即可
# 编辑内核参数配置文件
vim /etc/sysctl.conf
# 添加以下内容
# 最小值 默认值 最大值
net.ipv4.tcp_mem = 252144 524288 786432 # tcp协议栈的大小,单位为内存页(4K),分别是 1G 2G 3G,如果大于2G,tcp协议栈会进行一定的优化
net.ipv4.tcp_wmem = 1024 1024 2048 # tcp接收缓存区(用于tcp接受滑动窗口)的最小值,默认值和最大值(单位byte)1k 1k 2k,每一个连接fd都有一个接收缓存区
net.ipv4.tcp_rmem = 1024 1024 2048 # tcp发送缓存区(用于tcp发送滑动窗口)的最小值,默认值和最大值(单位byte)1k 1k 2k,每一个连接fd都有一个发送缓存区
# 总缓存 = (每个fd发送缓存区 + 每个fd接收缓存区) * fd数量
# (1024byte + 1024byte ) * 100w 约等于 2G
如果服务器是用来接收大文件,传输量很大的时候,就要把send buffer和read buffer调大。
如果服务器只是接收小数据字符的时候。把buffer调小是为了把fd的数量做到更多,并发数量能做到更大。如果buffer调大的话,内存会不够。
百万并发测试结果
出现的问题小编综合来说
想要实现服务器百万并发:
一个进程能够打开文件描述符的数量open files 和 file-max 改成100w以上在不同的环境下要看开放的端口够不够socket fd — < 源IP地址 , 源端口 , 目的IP地址 , 目的端口 , 协议 >设置netfilter允许对外最大连接数量100w以上根据内存和场景,适当调整net.ipv4.tcp_mem,net.ipv4.tcp_wmem,net.ipv4.tcp_rmem
原文地址:Linux服务器百万并发实现与问题排查
拓展知识:
原创文章,作者:九贤生活小编,如若转载,请注明出处:http://www.wangguangwei.com/29712.html