我不确定问题出在哪里。我有:
centos 6 mysql php php-fpm wordpress(1 个站点)。
这是我正在学习的专用服务器。
当我运行 Web URL 时,内存猛增到 512k 服务器的 125%,我不得不升级到 1gig,所以我不确定问题出在哪里。我以为从 apache 切换到 nginx 会有更多的内存可用,但我仍然被这个问题困扰。
在使用 nginx 和 mysqld 启动网站之前,网站的内存占用约为 5%。
我将“my-small.cnf”重命名为 my.cnf,并将其放入原始文件夹所在的 /etc 文件夹中,但似乎并没有起到作用。
查看了我的 TOP 结果后,我开始认为可能是 php-fpm 占用了我的内存,但不确定。
php-fpm 是首选方法吗?还是有更好的方法可用?我读到过有关 php-fpm 中可能存在内存泄漏的信息。
以下是我所拥有的:
php-fpm.conf
;;;;;;;;;;;;;;;;;;;;; ;FPM 配置; ;;;;;;;;;;;;;;;;;;;;; ; 本配置文件中的所有相对路径均相对于 PHP 的安装 ; 字首。 ; 包含一个或多个文件。如果 glob(3) 存在,则用于包含一堆 ; 来自 glob(3) 模式的文件。此指令可以在 ; 文件。 包括=/etc/php-fpm.d/*.conf ;;;;;;;;;;;;;;;;;; ; 全局选项 ; ;;;;;;;;;;;;;;;;;; [全球的] ;PID 文件 ;默认值:无 pid = /var/run/php-fpm/php-fpm.pid ;错误日志文件 ;默认值:/var/log/php-fpm.log 错误日志 = /var/log/php-fpm/error.log ;日志级别 ;可能的值:警报、错误、警告、通知、调试 ;默认值:通知 ;log_level = 通知 ; 如果在规定的时间内,有这么多的子进程以 SIGSEGV 或 SIGBUS 信号退出 ;由 emergency_restart_interval 设置的间隔,然后 FPM 将重新启动。值 ;‘0’ 表示‘关闭’。 ;默认值:0 ;紧急重启阈值 = 0 ; emergency_restart_interval 使用的时间间隔来确定何时 ;将启动优雅重启。这可以用于解决 ;加速器共享内存中的意外损坏。 ;可用单位:s(秒)、m(分钟)、h(小时)或 d(天) ;默认单位:秒 ;默认值:0 ;紧急重启间隔 = 0 ;子进程等待主进程信号反应的时间限制。 ;可用单位:s(秒)、m(分钟)、h(小时)或 d(天) ;默认单位:秒 ;默认值:0 ;进程控制超时 = 0 ;将 FPM 发送到后台。设置为“否”以将 FPM 保持在前台进行调试。 ;默认值:是 ;守护进程 = 是 ;;;;;;;;;;;;;;;;;;;; ;池定义; ;;;;;;;;;;;;;;;;;;;; ;参见 /etc/php-fpm.d/*.conf
结束 php-fpm.conf
答案1
最好的解决方案是将这一行添加到你的 cronjob 中,每 10-60 分钟重新加载一次(CentOS):
/etc/init.d/php-fpm 重新加载
我的 networkcities.com 网络服务上运行着大量 WP 站点,运行得非常好。