服务器内存占满的问题

安装wordpress后,wordpress会和nginx等协作运行,但是慢慢会发现2G内存很快就满了。这时候可能是php-fpm进程启动太多了的问题。(top命令之后加M就会按照内存排序)

image-20240710201654127

上述启动的进程是我设置之后的,没设置之前php-fpm进程启动了30个左右,把内存占满了,影响网站的访问。这个问题我找了很久。

不设置之前php-fpm进程的运行个数是动态的(默认),可以根据自己的内存和需求设置。

在php-fpm.conf文件中设置

在 PHP-FPM 的配置中,pm(process manager)指令可以被设置为以下几个值:

  • static:这个选项会创建一个固定数量的子进程(由 pm.max_children 指定)。这些子进程会一直运行,不管是否有请求需要处理。
  • dynamic:当设置为 dynamic 时,子进程的数量会根据当前的需求动态调整。这个选项会根据 pm.max_childrenpm.start_serverspm.min_spare_serverspm.max_spare_servers 的设置来增加或减少子进程的数量。
  • ondemand:在 ondemand 模式下,子进程会在有新的请求时才创建。这意味着在没有请求的时候,不会有任何子进程运行,这可以进一步减少资源的使用。当请求到来时,新的子进程会被创建来处理请求,处理完成后,如果这些子进程在 pm.process_idle_timeout 设置的时间内没有新的请求,它们将被终止。

这些选项允许您根据服务器的负载和资源情况来优化 PHP-FPM 的性能。选择合适的 pm 设置可以帮助您更有效地管理服务器资源,确保应用程序的响应性和稳定性。不同的选项对应其他不同的参数,可以根据需求搜索细看。

systemctl restart php-fpm

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top