马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
公司服务器连接数超过10K了,查了下大多数是没有即时回收,采用tcp复用容易后程序出现了故障,以前一直看到说PHP持久连接有问题,所以没怎么用,最近有机会试了下。
非常香,连接数直接降低到几百了,目前观察数周没有问题。
查看连接数
- netstat -n | wc -l # 总连接数
- netstat -n | grep -i time_wait | wc -l # time_wait 连接数
- netstat -anp # 查看占用端口过多的程序
复制代码 tcp复用解决方案
网上大部分解决方案是修改sysctl.conf回收重用ipv4连接,但是可能带来其他问题- net.ipv4.tcp_syncookies = 1
- net.ipv4.tcp_timestamps=1
- net.ipv4.tcp_tw_reuse=1
- net.ipv4.tcp_tw_recycle=1
- net.ipv4.tcp_fin_timeout=30
- net.ipv4.tcp_keepalive_time = 600
复制代码 nginx fastcgi(php) 解决方案
修改nginx.conf- upstream fastcgi_backend {
- server 127.0.0.1:9000;
- keepalive 60;
- }
- location ~ \.php$ {
- fastcgi_pass fastcgi_backend;
- fastcgi_keep_conn on;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
复制代码 主要是 fastcgi_keep_conn on 与 upstream 的 keepalive
nginx + proxy (python/go/java) 解决方案
- upstream wxpic {
- keepalive 60;
- server 127.0.0.1:xxx;
- }
- server {
- keepalive_requests 10000; # 默认100
- location / {
- proxy_http_version 1.1;
- proxy_set_header Connection "";
- }
- }
复制代码 主要是 proxy_http_version, proxy_set_header Connection ""以及keepalive_requests
mysql数据库连接解决方案
修改yii数据库配置采用长链接- 'db' => [
- 'class' => 'yii\db\Connection',
- 'dsn' => '*', 'username' => '*',
- 'password' => '*',
- 'charset' => 'utf8mb4',
- 'attributes' => [
- PDO::ATTR_PERSISTENT => true
- ]
- ],
复制代码 redis 连接数
Yii redis 持久配置
- 'redis' => [
- 'class' => 'yii\redis\Connection',
- 'hostname' => '127.0.0.1',
- 'retries' => 3,
- 'port' => 6379,
- 'password' => '',
- 'socketClientFlags' => STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT,
- ],
复制代码 predis redis 持久配置
- $client = new \Predis\Client([
- 'scheme' => 'tcp',
- 'host' => $redis->hostname,
- 'port' => $redis->port,
- 'password' => $redis->password,
- 'persistent'=>true,
- ]);
复制代码 phpredis redis 持久配置
- $redis->pconnect('127.0.0.1', 6379);
复制代码
源文地址:https://c4ys.com/archives/1609
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 网站部分内容来源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|
|