vip
为什么80%的码农都做不了架构师?>>>
1. net.ipv4.tcp_keepalive_time = 7200 //减小该值,更快的发现丢失的连接
2. if( pthread_detach(pthread_self()) != 0 )
3. net.core.somaxconn = 1024 // 改32768 ( 好像与 too many open files 无关 )
4. strace -p, pstack, pstree
5. lsof | grep "can't identify protocol"
===========================================================================
epoll问题
单纯靠epoll来管理描述符不泄露几乎是不可能的。
完全解决方案很简单,就是对每个fd设置超时时间,如果超过timeout的时间,这个fd没有活跃过,就close掉。
ll /proc/24401/fd >/tmp/xhs.txt
net.core.somaxconn= 4000
# sysctl -p
sysctl -a | grep 'net.coredev_max_backlog'
net.coredev_max_backlog,该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
cat /proc/sys/net/core/somaxconn
cat /etc/security/limits.conf ,增加:
* soft nofile 32768
* hard nofile 65536
工具和正常的一起测。 看gw响应。。
4. 直播的接口, php设定的超时时间。缩短。
===================
写数据时,直接调用send()发送;只有当send()返回EAGIAN时,才将socket加入EPOLL,等待可写事件后,再发送数据。全部数据发送完毕,再移出EPOLL
net.ipv4.tcp_fin_timeout = 10
file-nr 可以查看系统中当前打开的文件句柄的数量. 他里面包括3个数字: 第一个表示已经分配了的文件描述符数量, 第二个表示空闲的文件句柄数量, 第三个表示能够打开文件句柄的最大值(跟file-max一致). 内核会动态的分配文件句柄, 但是不会再次释放他们(这个可能不适应最新的内核了, 在我的file-nr中看到第二列一直为0, 第一列有增有减)
转载于:
vip
为什么80%的码农都做不了架构师?>>>
1. net.ipv4.tcp_keepalive_time = 7200 //减小该值,更快的发现丢失的连接
2. if( pthread_detach(pthread_self()) != 0 )
3. net.core.somaxconn = 1024 // 改32768 ( 好像与 too many open files 无关 )
4. strace -p, pstack, pstree
5. lsof | grep "can't identify protocol"
===========================================================================
epoll问题
单纯靠epoll来管理描述符不泄露几乎是不可能的。
完全解决方案很简单,就是对每个fd设置超时时间,如果超过timeout的时间,这个fd没有活跃过,就close掉。
ll /proc/24401/fd >/tmp/xhs.txt
net.core.somaxconn= 4000
# sysctl -p
sysctl -a | grep 'net.coredev_max_backlog'
net.coredev_max_backlog,该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
cat /proc/sys/net/core/somaxconn
cat /etc/security/limits.conf ,增加:
* soft nofile 32768
* hard nofile 65536
工具和正常的一起测。 看gw响应。。
4. 直播的接口, php设定的超时时间。缩短。
===================
写数据时,直接调用send()发送;只有当send()返回EAGIAN时,才将socket加入EPOLL,等待可写事件后,再发送数据。全部数据发送完毕,再移出EPOLL
net.ipv4.tcp_fin_timeout = 10
file-nr 可以查看系统中当前打开的文件句柄的数量. 他里面包括3个数字: 第一个表示已经分配了的文件描述符数量, 第二个表示空闲的文件句柄数量, 第三个表示能够打开文件句柄的最大值(跟file-max一致). 内核会动态的分配文件句柄, 但是不会再次释放他们(这个可能不适应最新的内核了, 在我的file-nr中看到第二列一直为0, 第一列有增有减)
转载于: