PHP 网站内存占用很高,一做活动就挂了,大佬们帮忙看看

2019-07-16 09:03:49 +08:00
 haiyan
服务器就一个小说网站,服务器阿里云的 2 核 4G 配置,mysql 数据库 1.5G ,日活 2000 这样,平时网站内存就占到了 80%多了,mysql 占了 20%。如果发个促销网址,人同时一上来就挂,实际那两分钟来的人也还不多 1000,必须重启 php-fpm 才行。同配置的.net 版系统就毫无压力,索引设置了,日志也看了,现在不知道是配置低了,还是程序性能太差了。
请大家帮忙提点见解,谢谢了!
7685 次点击
所在节点    程序员
74 条回复
Snail233
2019-07-16 13:11:31 +08:00
@Woood 哈哈哈哈,用的 laravel 吧,哈哈哈哈哈哈哈
Snail233
2019-07-16 13:11:46 +08:00
@tanszhe 哈哈哈哈,用的 laravel 吧,哈哈哈哈哈哈哈
opengps
2019-07-16 13:52:18 +08:00
2 分钟 1000,这是很高的并发了,居然还用单机承载,而且是云服务器的硬盘
haiyan
2019-07-16 13:57:14 +08:00
@avenger
pm = dynamic
pm.max_children = 100
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 70
pm.max_requests = 2048
pm.process_idle_timeout = 10s
request_terminate_timeout = 120
request_slowlog_timeout = 0
ragnaroks
2019-07-16 14:44:13 +08:00
那就别用 php 了啊...你都用上.net 了,直接升级成.net core 呗,2c4g 抗 1w 并发不是轻轻松松?
haiyan
2019-07-16 15:16:01 +08:00
@ragnaroks 系统在用着
haiyan
2019-07-16 15:16:26 +08:00
@jsjscool 装了半天了还是没有装成功
jswh
2019-07-16 15:18:39 +08:00
看错了,对 linux 的不了解,实际是这样的
物理内存:共 3.702 G , 已用 3.082 G , 空闲 0.62 G , 使用率 83.25%

Cache 化内存为 2.058 G , 使用率 55.59 % | Buffers 缓冲为 0.15 G

真实内存使用 0.874 G , 真实内存空闲 2.828 G , 使用率 23.6 %
============================
另外你 2 核心 4G 服务器,这个 php-fpm 设置得有点高了,可以稍微小一点,毕竟 mysql 也是内存大户。


Linux 要看实际使用内存,不要把 buffer/cache 算上。和 Windows 策略不一样
jswh
2019-07-16 15:19:36 +08:00
@jswh 补充一下,如果还在用 php5.*建议尽快升级到 7.*
caryqy
2019-07-16 15:21:54 +08:00
暂时解决不了的话就加硬件配置
avenger
2019-07-16 16:03:18 +08:00
@haiyan 我贴一个我们产品服务器的配置,服务器也是 2 核 4G,高峰的时候,并发 1000,服务器都没啥压力,用的是 Laravel php7.2,开了 opcache,你参考一下,不过我们数据库是分开的,用的单独的阿里云 RDS

```
pm = static
pm.max_children = 300
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 50
;pm.process_idle_timeout = 10s
pm.max_requests = 5000
```

另外,建议服务器有压力的时候开启一下 php-fpm status 看一下具体的情况,这是一个成长的机会。
avenger
2019-07-16 16:12:11 +08:00
@haiyan 又去看了下,我们的服务器是 2 核 8g 内存,ssd 硬盘
jsjscool
2019-07-16 16:22:59 +08:00
@haiyan 报啥错?走到哪一步了?
qsbaq
2019-07-16 16:26:51 +08:00
@haiyan 配置成 static,然后上个 opcache。
lifeintools
2019-07-16 17:11:19 +08:00
@jsjscool 他的 PHP 水平 你让他安装个插件 太难为他了。不然 就 nginx 和 fpm 参数调优。
haiyan
2019-07-16 17:42:33 +08:00
@jsjscool git clone https://github.com/laynefyc/xhgui-branch.git
cd xhgui-branch
php install.php 这一步中途提示:github 连接超时
qinxi
2019-07-16 18:07:41 +08:00
建议用 Java ,同时招聘 https://www.v2ex.com/t/583148 这个同学
wangzz223
2019-07-16 18:17:16 +08:00
搞点缓存挡挡...都打到 mysql 上,服务并发不会很好..
能异步化处理的异步化处理.
yufeng0681
2019-07-16 18:25:05 +08:00
打日志,分段跟踪:
1、压力测试,数据库是否有问题
2、压力测试,web 响应是否有问题
3、压力中,将某一段逻辑拿掉测试性能( 1、拿掉数据库代码直接返回; 2、拿掉业务处理代码直接回 html )

小说业务有热门数据概念,最好上缓存,提高响应速度,减少数据库压力。虽然不知道你的小说是图片还是文字类的
codespots
2019-07-16 18:34:31 +08:00
@ragnaroks 你是在黑 PHP 还是在黑 .net core

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/583298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX