4. st
使用state thread library,编写机器人
st实为单线程
受空间限制,st_create_pthread默认只能创建3w线程,可使用如下方法进行设置
echo "1000000" > /proc/sys/vm/max_map_count
3. TIME_WAIT影响
表现:connect失败,返回“Cannot assign requested address”
说明:客户端频繁的连服务器,连接断开后,生成很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口
解决:程序编码,设置套接字选项 linger l = {1, 0}; 或者修改系统配置,开启TIME_WAIT快速回收
sysctl -w net.ipv4.tcp_timestamps=1
sysctl -w net.ipv4.tcp_tw_recycle=1
2. 端口数限制
查看:cat /proc/sys/net/ipv4/ip_local_port_range
保留端口:0 - 32768
实际可使用端口:32768 - 61000
设置:echo "1024 65535" > /proc/sys/net/ipv4/ip_local_port_range
端口最大值65535,超过此值,设置将会失败
1. 文件句柄限制
查看:ulimit -n
设置:ulimit -n 524288
说明:只对当前会话有效,如果需要,可将设置写入/etc/profile,后续打开的所有会话均有效