首页
学习
活动
专区
工具
TVP
发布

解决Linux下php-fpm进程过多导致内存耗尽问题

最近,发现个人博客的Linux服务器,数据库服务经常挂掉,导致需要重启,才能正常访问,极其恶心,于是决心开始解决问题,解放我的时间和精力(我可不想经常出问题,然后人工重启,费力费时)。...分析问题 发现问题以后,首先使用 free -m 指令查看当前服务器执行状况 可以看到我的服务器内存是2G的,但是目前可用内存只剩下70M,内存使用率高达92%,很有可能是内存使用率过高导致数据库服务挂断...内存使用过高时将会挤掉数据库进程(占用内存最高的进程),导致服务挂断,所以我们需要查看详细内存使用情况,是哪些进程耗费了这么多的内存呢?...最后,重启php-fpm systemctl restart php-fpm 再次查看内存使用情况, 使用内存降低很多: 之后经过多次观察内存使用情况,发现此次改进后,服务器内存资源消耗得到很大缓解。...总结 以上所述是小编给大家介绍的Linux下php-fpm进程过多导致内存耗尽问题解决,希望对大家有所帮助。

1.7K30

Linux下php-fpm进程过多导致内存耗尽问题解决

发现问题 最近,发现个人博客的Linux服务器,数据库服务经常挂掉,导致需要重启,才能正常访问,极其恶心,于是决心开始解决问题,解放我的时间和精力(我可不想经常出问题,然后人工重启,费力费时)。...分析问题 发现问题以后,首先使用free -m指令查看当前服务器执行状况: 可以看到我的服务器内存是2G的,但是目前可用内存只剩下70M,内存使用率高达92%,很有可能是内存使用率过高导致数据库服务挂断...内存使用过高时将会挤掉数据库进程(占用内存最高的进程),导致服务挂断,所以我们需要查看详细内存使用情况,是哪些进程耗费了这么多的内存呢?...服务池开启了太多子进程,占用超过大半内存,问题找到了,我们开始解决问题:设置控制php-fpm进程进程数量。...最后,重启php-fpm systemctl restart php-fpm 再次查看内存使用情况, 使用内存降低很多: 之后经过多次观察内存使用情况,发现此次改进后,服务器内存资源消耗得到很大缓解

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

如何解决Linux下php-fpm进程过多导致内存耗尽问题

最近,发现个人博客所部署的Linux服务器,不停的出现内存报警的问题,尤其半夜睡着了,总是听到手机在响,所以说最好的办法就是关掉报警,继续睡觉,哈哈,开玩笑,不过问题总归是要解决的,这样就可以安心的睡个好觉...分析问题 发现问题以后,首先使用 free -m 指令查看当前服务器执行状况: [root@VM-17-4-centos ~]# free -m total used...S 11:48 0:00 php-fpm: pool www 查看第四列内存使用占比,发现除了mysql数据库服务之外,php-fpm服务池开启了太多子进程,占用超过大半内存,问题找到了,我们开始解决问题...之后经过多次观察内存使用情况,发现此次改进后,服务器内存资源消耗得到很大缓解。...补充内容 查看php-fpm开启的进程数以及每个进程的内存限制 1.通过命令查看服务器上一共开了多少的 php-cgi 进程 [root@VM-17-4-centos ~]# ps -fe |grep

1.5K41

-XX:+PerfDisableSharedMem导致jps查不到java进程问题

笔者最近在使用开源物联网框架thingsboard时,发现docker内部的java进程通过jps命令查不到,凡是通过jps能查到的java进程,以linux系统为例都会在/tmp/hsperfdata..._当前用户/(如/tmp/hsperfdata_root/)目录下创建以java进程id命名的文件,最终排查是因为thingsboard启动时传入了-XX:+PerfDisableSharedMem这个...jvm参数导致,jvm参数里面有以下参数控制着该文件 java -XX:+PrintFlagsFinal |grep Perf bool PerfAllowAtExitRegistration...: Can't attach to the process)http://blog.sina.com.cn/s/blog_3fba24680102x6k1.html 2、磁盘读写、目录权限问题 (需要确认当前用户...) 4、java进程信息文件存储地址被设置,不在/tmp目录下 (启动进程的时候可以通过-Djava.io.tmpdir参数来设置进程信息存储地址,jps、jconsole都只会从/tmp目录读取,因此需要确认是否被修改过

74810

事故记录:php-cgi进程过多导致系统资源耗尽

事故现象: 机房一台服务器运行一段时间后,突然发现系统资源即将被耗尽!...这就有点不对劲,这台服务器的内核进程也就80个左右,加上memcached, nginx, mysqld,也不会超出90个,除了这些,剩下的只有php-fpm管理的php-cgi了。...所以,可以大胆地猜想:服务器内存资源比较紧张,并没有被某个进程占用大量内存,有可能被某些挂起的进程占着内存没有释放。通过free进一步监控内存使用情况,验证我们的想法。...但是频繁地swpd,则有可能意味着服务器物理内存不足,小于指定的swap额定值,需要换出内存页。 查看free结果的时候,主要查看第二行。...php-cgi由php-fpm管理,因此可以断定,是由于php-fpm配置文件php.ini中的max_children参数配置不当,才导致打开过多的php-cgi进程

2.1K50

由MasterProcWals状态日志过多导致的HBase Master重启失败问题

1 文档编写目的 本文主要讲述如何解决由MasterProcWals状态日志过多导致的HBase Master重启失败问题。...总结 2 问题描述 由于某些已知存在的问题,会导致MasterProcWals状态日志过多,如果重启HBase Master,可能会导致HBase Master启动失败。...43:38,978 WARN org.apache.hadoop.hdfs.BlockReaderFactory:I/O error constructing remote block reader. java.net.SocketException...如果出现由MasterProcWals状态日志过多导致的HBase Master重启失败问题建议先将/hbase/MasterProcWALs目录下的所有文件备份,然后删除/hbase/MasterProcWALs...4 总结 1、如果MasterProcWals状态日志过多,那么重启HBase Master,可能会导致HBase Master启动失败。

6.5K50

性能分析(1)- Java 进程导致 CPU 使用率升高,问题怎么定位?

可以看到,没有丢包,而且延时也很低,证明网络没有问题服务器中,通过 top 查看是否有进程的用户态(us)过高 top ?...可以看到是 Java 进程导致 CPU 使用率贼高,已经占满了四个 CPU 记住该进程 PID 通过 ps 命令确认具体是哪个进程 ps -aux | grep 2838 ?...很明显,就是我们 Java 程序所在的 Tomcat 进程啦 通过 top 查看 Java 进程的线程执行情况 2838 是进程 id 哦(pid) top -Hp 2838 ?...打印 Java 线程栈的信息 jstack 2838 | grep 12c8 -A30 2838:java 进程 12c8:线程十六进制 -A30:打印 30 行 ?...包含:包名、类名、代码行信息,可以快速定位到某行代码导致该线程 CPU 使用率过高 jstack:JDK 自带命令

87820

Java 进程占用内存过多,幕后元凶原来是线程太多

但是好景不长,天不遂人愿,服务器不遂程序员愿。 以下是同事的经历,我转述以下。 就在定时任务跑起来后的第二个晚上,那本来该是一个平常的晚上,可是告警邮件扰人清梦。...一看日志,内存使用空间过高,撑爆了,导致机器自动重启了。windows 就这点好啊,还会自动重启(尴尬脸)。然后手动上去把服务启动起来,解决。...隔了一天,还是晚上,又报警了,服务器又自动重启了,又是内存使用空间过高。又手动上去把服务启动了。...我开始怀疑是不是用了 redis 之类的外部缓存,结果进服务器一查 redis 、memcached 之类的压根儿就没装,所以基本排除外部缓存。...并且登录上去之后查看进程内存占用,确实就是一个 Java 进程占了这么多内存。 那既然不是外部缓存,那肯定出在 JVM 上了,要不然就是用了 JVM 缓存,要不然就是内存泄漏什么的。

4.6K10

记一次INST_DRTLD_MISMATCH导致的version count过多问题

原因查找 看到latch free ,想到可能是共享池的问题,一般可能是硬解析过多导致冲突 2.1 检查执行次数为1的语句 我们首先查找shared pool中 执行次数等于1的语句 select substr...查下来一看hash_value的值是一样的,说明不是绑定变量的问题,而是version count过多,而且是五分钟一次,接下来我们来分析原因 2.3 查看version count 过多原因 我们通过如下语句找出未复用的原因...select * from v$sql_shared_cursor where kglhdpar = 'C0000001D25F7518' ; 发现是由于INST_DRTLD_MISMATCH这个导致...但是我们的没有使用hint,猜测可能Oracle认为查询的结果有很多的值而导致使用direct load方式 这时我在asktom上咨询了下,他们认为是bug ,需要升级,链接见最后 3....0,就叫应用人员修改看是否可以现行查询然后进行insert 至此问题解决,最后还是建议能升级的数据库就升级啦~ 4.参考链接 Direct-Load INSERT INST_DRTLD_MISMATCH

60620

MySQL Insert语句单个批次数量过多导致的CPU性能问题分析

问题】 最近有台服务器比较频繁的CPU报警,表现的特征有CPU sys占比偏高,大量慢查询,大量并发线程堆积。后面开发对insert的相关业务限流后,服务器性能恢复正常。...个线程在innodb层,同时看到还有280个线程在排队等待进入innodb线程,状态是sleeping before entering InnoDB innodb层的并发线程执行的SQL比较慢,产生了阻塞,导致了...,统计了下这句SQL批量插入大于342条记录(SQL被截断) 【批量insert的性能测试】 类似这种批量的insert SQL会对MySQL性能造成影响吗,多大的批次比较合理呢,做了下面测试 在测试服务器上新建测试表...,每10条1个批次insert,每50条1个批次insert,每100条1个批次insert,每340条1个批次insert 用压测工具模拟512个并发线程的情况下,不同类型的SQL插入100W条记录服务器的性能情况...但当批次增大到一定数量时,在高并发访问的情况下,单个批次执行的性能会出现较大的下降,出现大量慢查询,并发线程堆积,CPU上升出现瓶颈, innodb层的并发线程处理被慢查询阻塞,后面只能通过限流来缓解性能问题

91510

面试官:哪些原因会导致JAVA进程退出?

今天讲的这个问题 JAVA进程消失可能有哪些原因? 这个问题也是面试中经常出现的,如下图所示 ? ps:由于两年多没写crud了,所以忘记mybatis怎么用了,所以上面那个问题,我选择了无视。...因此,你发现java进程突然没了,首先要怀疑是不是被linux的OOM killer给干掉了!...有时Linux系统或者系统上运行的java或者其它进程,会发生一些莫名其妙的问题,比如突然挂掉了,比如突然重启等等。...crash 的线程信息 所有线程信息 安全点和锁信息 堆信息 本地代码缓存 编译事件 gc 相关记录 jvm 内存映射 jvm 启动参数 服务器信息 拿到这个文件后,不用说了,慢慢啃吧。...JVM的OOM 坦白说,我很少遇到因为JVM的OOM,导致java进程退出的情况。 因为,一般情况下,出现OOM异常,JVM的GC会进行回收,是不会导致JVM进程退出的。

2.3K20

crontab设置导致服务器进程异常问题 (r10笔记第4天)

前几天的时候,有个同事问我一个问题,大体的意思是突然收到报警,服务器进程数翻了好几倍,其实那个服务器也没有任何操作。所以想让我帮忙看看。...,4287在sleep状态,服务器负载也不高,iowait很低,CPU使用率也很低。...所以这个问题就有些奇怪了。 我静了静,这个问题似乎之前碰到过类似的,那是因为存在NFS的挂载点失效导致CROND执行失败,结果累计了大量的后台进程。这次的环境问题似乎还有所不同。...其实解释明白就很容易理解了,我查看了系统的日志,在问题发生的时间段,确实没有其它的操作,而就是在某一个特定的时间,因为inode溢出导致sendmail,maildrop的进程阻塞, 结果大量的进程都堆积下来了...,这样导致了没10分钟一次循环调用,所以修复了问题以后,文件的生成频率大大降低。

1.2K60

360可能导致服务器出现这些问题

360会引起很多问题,但360杀毒防护效果确实不错,建议权衡使用360可能导致这些问题(本文引用的文档都是我自己写的)1、内存泄漏2、影响服务器重置密码3、影响控制台远程登录(web rdp)4、导致cloudbase-init...的extend volume有问题5、导致dism操作巨慢6、拦截一些系统命令或可执行文件的调用,这些最好提前在360里信任下文件1、内存泄漏重启后过一段时间内存就满了,重启后的监控图像是一条斜率稳定的线解决方案...dism操作巨慢解决方案:临时调整360不要开机运行,主动防护和自我保护都关掉,用完dism后再恢复360正常使用不光360,其他安全软件也可能导致这个问题https://cloud.tencent.com...certutil.exe 、net.exe 、net1.exe、cmd.exe、sc.exe等https://cloud.tencent.com/developer/article/1945812图片肯定还会导致其他问题...虽然360导致这么多问题,但是我仍然愿意用它,因为它保证了安全,参考我这篇文档:https://cloud.tencent.com/developer/article/2180366一般来说,更新到最新对比个人版的几款免费杀毒防护软件全盘杀毒速度

1.5K30

spring cloud项目升级java11导致编译卡住排查

投稿:Dreamer,作者联系方式:sdcuike.blog.csdn.net ---- 现象 ---- Spring Cloud项目由Java8 升级Java11,导致编译一直卡住。...排查工具 ---- maven编译器插件选项,查看编译日志详情。...renzhikeji/demo/api/demoapi/demo/Test.class] [共 594 毫秒] 实际项目中,一直卡在@lombok.Builder.Default注解的类上,去掉此注解,编译不再卡在...由于没有跟踪此注解处理器的详细处理流程,不再纠结根本原因,毕竟 lombok在github中出现在issue中的问题确实很多,建议只是使用简单的get、 set方法、构造函数方法等自动生成,其他复杂的代码自动生成不要使用...在遇到编译问题,我们学会调整maven编译器选项,看到详情的处理流程。

22530

过多服务器缓存加速Gravatar 头像,解决被墙问题

之前曾经分享过通过《WordPress 免插件仅代码实现 Gravatar 头像缓存》实现本地服务器缓存头像的方法。如果主机本身也是在国外的话,起到的作用其实是有限的。...使用过多说的可能知道,多说对于Gravatar 头像的引用其实是缓存在多说的服务上的。那么,可以通过通过多服务器缓存加速Gravatar 头像来解决被墙问题。...因为开头说到的原因,对于国内用户来说,使用官方服务器的头像不是一个明智的选择。...缓存在多说上的Gravatar 头像路径都是在gravatar.duoshuo.com,如下面这个头像图片,你可以查看一下路径:  通过多服务器缓存加速Gravatar 头像 将下面的代码丢入WordPress...查看评论里的Gravatar 头像,已经是通过多说服务上的了: ?

1.3K100

编译Java字节码,并且定位问题

编译 在调试Java应用程序时,可以使用以下工具来查看字节码反编译的结果: javap命令:Javap是一个Java类反汇编工具,可以查看编译后的字节码。...安装好JD-GUI后,只需将.class文件拖放到其界面上即可查看反编译结果。 定位问题 利用这些信息进行问题定位,可以通过以下步骤进行: 根据问题的描述和错误日志,确定可能存在问题Java类。...使用以上工具之一查看该类的字节码反编译结果。 分析反编译结果,查看其中的方法和操作指令,比较与预期的逻辑是否一致。 通过对比字节码和源代码,可以确定是否存在编译器优化或其他差异导致问题。...跟踪问题代码的执行路径,将反编译结果与实际代码逻辑进行对比,找出可能的问题原因。 根据问题的具体情况,可以进一步使用以上工具以及调试器等来进行深入调试和问题定位。...通过查看字节码反编译结果,我们可以更深入地理解Java代码的内部实现,并通过与实际代码进行对比来确定问题的源头。这些工具提供了一个便捷的方式,帮助开发者更好地理解和调试Java应用程序。

24351
领券