[temp@xigua ~]$ ss -s

Total: 83678 (kernel 0)

TCP: 84982 (estab 127, closed 84812, orphaned 0, synrecv 0, timewait 1485/0), ports 0

Transport Total IP IPv6

* 0 - -

RAW 0 0 0

UDP 4 3 1

TCP 170 168 2

INET 174 171 3

FRAG 0 0 0

这里可以看到 CLOSED 状态的socket 有8w+ (closed 84812), 同时查看某个 fpm :

[temp@xigua ~]$ ss -s $ lsof -p ${fpm-pid}|grep 'protocol: TCP'|wc -l

1043

fpm 进程一共有 8 0个, 所以几乎可以肯定全是 fpm 导致的上述占用过多 CLOSED socket, 主要是我不理解为啥 fpm

不释放这些 socket, CLOSED 状态下的 socket 不是应该转瞬就被系统回收了吗?

这些状态为 CLOSED 的 socket 仍然占用较多内存, 当超过 tcp 上限(cat /proc/sys/net/ipv4/tcp_mem)的时候会报错 : out of memory -- consider tuning tcp_mem

请问我需要怎么进一步解决呢?

P.S. 2019年2月26日17:53:34 进一步的信息补充 :

$ ls -l /proc/${pfm}/fd|wc -l

1059

检查 sockstat :

cat /proc/net/sockstat

sockets: used 84442

TCP: inuse 168 orphan 0 tw 3052 alloc 84262 mem 84093

UDP: inuse 3 mem 1

UDPLITE: inuse 0

RAW: inuse 0

FRAG: inuse 0 memory 0

$ netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n

1 established)

1 Foreign

8 LISTEN

28 CLOSE_WAIT

138 ESTABLISHED

782 TIME_WAIT

fpm 的配置 :

pm.max_children = 80

pm.max_requests = 100000

某次重启前

$ cat /proc/net/sockstat

sockets: used 29901

TCP: inuse 168 orphan 0 tw 3618 alloc 29720 mem 29563

UDP: inuse 3 mem 1

UDPLITE: inuse 0

RAW: inuse 0

FRAG: inuse 0 memory 0

$ free -m

total used free shared buff/cache available

Mem: 7821 824 250 418 6746 6064

Swap: 511 98 413

重启后

$ cat /proc/net/sockstat

sockets: used 387

TCP: inuse 167 orphan 0 tw 3504 alloc 207 mem 42

UDP: inuse 3 mem 1

UDPLITE: inuse 0

RAW: inuse 0

FRAG: inuse 0 memory 0

$ lsof -p ${fpm-pid}|less

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

php-fpm 17699 temp 71u sock 0,7 0t0 552415632 protocol: TCP

php-fpm 17699 temp 72u sock 0,7 0t0 552428529 protocol: TCP

php-fpm 17699 temp 73u sock 0,7 0t0 552450479 protocol: TCP

php-fpm 17699 temp 74u sock 0,7 0t0 552462900 protocol: TCP

php-fpm 17699 temp 75u sock 0,7 0t0 552523600 protocol: TCP

php-fpm 17699 temp 76u sock 0,7 0t0 552542925 protocol: TCP

php-fpm 17699 temp 77u sock 0,7 0t0 552613133 protocol: TCP

php-fpm 17699 temp 78u sock 0,7 0t0 552639299 protocol: TCP

php-fpm 17699 temp 79u sock 0,7 0t0 552646395 protocol: TCP

php-fpm 17699 temp 80u sock 0,7 0t0 552659030 protocol: TCP

发现大量的 "protocol: TCP" 字样, 请教大家这是什么意思?为何不展示出 tcp 连接的双端ip, 端口信息而是省略成了"TCP"字样?

php closewait,centos 上 php-fpm 占用太多状态为 CLOSED 的 socket 且不释放, 如何解决?相关推荐

  1. linux socket关闭并释放资源,【linux】centos 上 php-fpm 占用太多状态为 CLOSED 的 socket 且不释放, 如何解决?...

    [[email protected] ~]$ ss -s Total: 83678 (kernel 0) TCP: 84982 (estab 127, closed 84812, orphaned 0 ...

  2. 怎么减少计算机内存占有,还在为电脑内存占用太高而烦恼吗?教你一招轻松解决...

    查毒了也不管用.结果是电脑的物理内存占用太高了,下面就教大家怎么减少物理内存,希望对您有所帮助! 1.启动"windows任务管理器",快捷键"alt+ctrl+dele ...

  3. CentOS上安装运行XWiKi

    现在XWiKi已经一行命令支持安装java -jar xwiki-enterprise-installer-generic-9.4-standard.jar. war安装我搞了三天都没有搞定,参考了& ...

  4. CentOS上PHP源码安装和配置

    CentOS上PHP源码安装和配置 此文是在CentOS 7上已经部署了Nginx的基础上进行的 关于CentOS7上安装Nginx,可参考我之前的文章: CentOS上Nginx安装记录 我们现在在 ...

  5. 在centos上安装最新的glibc

    centos上的glibc的远古版本: root@:~/clickhouse/ClickHouse/build# ldd --version ldd (GNU libc) 2.17 Copyright ...

  6. 设置/修改centos上的swap交换分区的方法

    设置centos上的swap交换分区的方法 作为linux世界里最稳定的服务器版本,rhas5一直有很大的应用面,之前一直关注的是freebsd,因为应用的需要,特别在配合mysql和oracle上r ...

  7. Centos上安装EPEL

    RHEL以及他的衍生发行版如CentOS.Scientific Linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安 ...

  8. centos llvm安装_在CentOS上编译安装llvm-3.8.1详细教程

    在CentOS上编译安装llvm-3.8.1详细教程 2020/1/11  18:12 1682次 注:CentOS版本是6.8,6.x版本的操作类似 安装需求: [list] [*]Cmake: 3 ...

  9. 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置

    简介 Shutter前身叫GScrot,它是一款相当棒的截图软件. 通过Shutter,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...

最新文章

  1. 庖丁解牛迭代器,聊聊那些藏在幕后的秘密
  2. 网红送餐无人车被指用人冒充AI始末:没有人工,就没有智能
  3. Python 如何优雅的将数字转化为时间格式
  4. 机器人动力学(Basic Newton-Euler Mechanics)
  5. VS中的调试相关的技巧
  6. 电脑技巧:键盘失灵怎么办?
  7. js页面自适应屏幕大小_移动端自适应布局方法的calc()与vw
  8. 【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?
  9. 超极本认知六大误区详解:不只是轻薄+长续航
  10. android -------- 解决NDK开发中的 Method 'NewStringUTF' could not be resolved
  11. 用R进行文本挖掘与分析:分词、画词云
  12. dns提供商主机名_DNS域名解析的过程
  13. 【十次方基础教程(后台)】Dockerfile脚本完成镜像的构建
  14. MyEclipse插件不能安装原因
  15. html滚动轮播图片代码,html 无缝轮播图完整代码
  16. en开头的单词_【2016年大学英语四级考试词汇常见前后缀:en-】- 环球网校
  17. 安卓利用Xposed实现通话双向录音
  18. Google浏览器简体中文版下载
  19. java获得当月法定工作日_java获取当月的工作日
  20. DHCPV4 VS DHCPV6

热门文章

  1. 二十五个顶级PHP模板引擎
  2. 计算机网络 | 基于UDP的C/S模型代码实现
  3. php有什么岗位职责,php工程师岗位职责包括什么
  4. Qt 数据可视化之3D图形
  5. 51单片机项目之OLED显示多功能门禁系统(密码、刷卡、指纹、WIFI、蓝牙等)(一)硬件设计
  6. Java类中的get,set方法的快捷设置
  7. 单相费控电能表的工作原理
  8. 制鞋行业ERP管理系统应用解决方案(3)
  9. #include <stdlib.h>
  10. 【TcaplusDB知识库】TcaplusDB数据回档介绍