为什么我的 centos、nginx、php、mysql 服务器占用这么多内存

为什么我的 centos、nginx、php、mysql 服务器占用这么多内存

我不确定问题出在哪里。我有:

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 站点,运行得非常好。

相关内容