宝塔面板php-fpm进程占用内存过高的原因及解决方法主要包括以下几个方面:
服务器配置不足:如果服务器配置较低,如单核1G的配置,却运载了占用资源较大的网站,建议进行服务器升级 。
安装了多个PHP版本:在宝塔面板中安装多个PHP版本会增加系统负载和内存使用率。建议只保留一个常用版本,卸载其他版本(在服务器配置够的前提下,安装多个php版本的确会占用很大的进程,在程序支持的前提下,可以更改为统一的PHP版本;另外经过实测,php7.2版本的程序进程占用过大,具体什么原因不清楚,更换版本后服务器的cpu进行大量减少,有效缓解了服务器负载)。
未使用缓存组件:未使用如memcached等缓存组件会增加数据库和内存的使用。可以自行安装这些缓存组件来减少内存占用。
安装了不常用的系统软件:安装了不常用的系统软件如宝塔运维、宝塔一键安装源码等会增加内存使用。建议卸载这些不常用的软件,只保留必要的系统程序1。
安装了不必要的PHP扩展:安装了不必要的PHP扩展会增加内存使用。建议只安装必要的扩展,如opcache和memcached(有一定的作用,能起到锦上添花的作用)。
php-fpm配置不当:可以通过调整php-fpm的配置来优化内存使用。例如,调整pm.start_servers、pm.min_spare_servers、pm.max_spare_servers和pm.max_children等参数,限制PHP-FPM进程数量。
具体优化措施包括:
调整PHP-FPM配置:可以通过修改php-fpm的配置文件(通常位于/etc/php-fpm.d/www.conf),调整pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers等参数,以限制PHP-FPM进程数量,避免占用过多资源。
启用缓存组件:安装和使用memcached等缓存组件,减少数据库和内存的使用。
卸载不必要软件和扩展:卸载不常用的系统软件和不必要的PHP扩展,只保留必要的程序和扩展。
硬件升级:如果服务器配置过低,考虑进行硬件升级,增加CPU和内存等资源。