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

2019-07-16 09:03:49 +08:00
 haiyan
服务器就一个小说网站,服务器阿里云的 2 核 4G 配置,mysql 数据库 1.5G ,日活 2000 这样,平时网站内存就占到了 80%多了,mysql 占了 20%。如果发个促销网址,人同时一上来就挂,实际那两分钟来的人也还不多 1000,必须重启 php-fpm 才行。同配置的.net 版系统就毫无压力,索引设置了,日志也看了,现在不知道是配置低了,还是程序性能太差了。
请大家帮忙提点见解,谢谢了!
7449 次点击
所在节点    程序员
74 条回复
abccccabc
2019-07-16 09:09:32 +08:00
你这是在 win 系统跑 PHP 吗??试下加缓存之类的。
AngryPanda
2019-07-16 09:11:31 +08:00
我知道了,你是来黑 PHP 的
AngryPanda
2019-07-16 09:12:47 +08:00
看一下 phpfpm 的 log
chuhemiao
2019-07-16 09:13:42 +08:00
加个 cdn 和 rdb
Dogergo
2019-07-16 09:14:00 +08:00
代码有问题,大变量释放之类的
hbolive
2019-07-16 09:14:54 +08:00
你这是单台服务器,所以重点检查下数据库,程序。
所以可以检查下是哪些页面导致数据库负载太高,SHOW full PROCESSLIST,做好库表优化工作。。。
程序的优化只能一点点排查了,也跟写程序的人有关系。。
加入缓存系统。。
lmaster
2019-07-16 09:16:55 +08:00
有篇博文介绍了 nginx+php ( http://zyan.cc/nginx_php_v4/),你看看是不是 nginx 进程太多导致,试试将 worker_processes 降低,然后你的服务器外网带宽是多少?
kiwier
2019-07-16 09:17:51 +08:00
fpm 再不济,这一两千并发还是可以承受得住的
tanszhe
2019-07-16 09:19:12 +08:00
用的 laravel 吧
Woood
2019-07-16 09:20:00 +08:00
试下 swoole
Woood
2019-07-16 09:21:17 +08:00
2 分钟 1000,都扛不住,是有的参数没有设置吧,比如 app_debug 之类的
haiyan
2019-07-16 09:23:11 +08:00
root 2696 0.0 0.2 39816 7816 ? Ss Jul15 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
www 2698 0.0 0.8 70536 33328 ? S Jul15 0:25 nginx: worker process
www 2699 0.0 0.9 91016 35620 ? S Jul15 0:35 nginx: worker process
mysql 4024 1.6 13.1 2156936 508640 ? Sl Jul15 17:17 /usr/local/mysql/bin/mysqld
root 5569 0.0 0.3 551672 14788 ? Ss Jul15 0:01 php-fpm: master process
www 5579 0.0 0.5 633356 21584 ? S Jul15 0:12 php-fpm: pool www
php-fpm X 32 个
haiyan
2019-07-16 09:24:51 +08:00
centos7 跑的,thinkphp 3 的框架,没用什么缓存,感觉没用也没什么影响,系统其实算起来很简单的了
haiyan
2019-07-16 09:29:45 +08:00
挂了看 php 日志就是 connect() to unix:/dev/shm/php-cgi.sock failed (2: No such file or directory) while connecting to upstream 这个,max_children 设置到 100 了
jsjscool
2019-07-16 09:30:41 +08:00
装个 xhgui-branch 看看慢在哪
justrand
2019-07-16 09:33:47 +08:00
慢日志发上来看看。一般一个 fpm 进程 40M-60M
haiyan
2019-07-16 09:35:20 +08:00
@hbolive
@jsjscool 看了数据库日志,把慢的查询都优化了,还是那样
haiyan
2019-07-16 09:37:51 +08:00
这个还不好测试并发,因为都要网站依赖微信登录,没有登录都调到了登录页面了
components
2019-07-16 09:52:51 +08:00
就一小说阅读站,为什么要用 MySQL,sqllite 足以!
其实,你用 MySQL,就已经吃掉很大一半内存了
lifeintools
2019-07-16 09:54:34 +08:00
@haiyan 目测是需要参数调优。

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

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

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

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

© 2021 V2EX