Laravel 应用程序占用内存太高, 哪些方法可以优化?
当前情况
阿里云ECS 4核、8G
运行服务
Laravel5.3.*
Supervisor 共计10个进程
Node
Nginx
PHP 7.0.17
top 按照内存排序情况
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3476 root 20 0 2447420 71484 6932 S 0.7 0.9 305:46.31 /usr/local/cloudmonitor/jre/bin/java -Djava.compiler=none -XX:-UseGCOverheadLimit -XX:Ne+
3500 root 20 0 422332 34260 10892 S 0.0 0.4 2:43.70 /usr/bin/php /mnt/www/public.weipeiapp.com/artisan queue:work --queue=default --sleep=3 +
13010 chenghu+ 20 0 1180928 29588 11504 S 0.3 0.4 17:39.77 node /home/chenghuiyong/.nvm/versions/node/v7.9.0/lib/node_modules/gitlabhook/gitlabhook+
29643 php-fpm 20 0 424972 29184 8144 S 0.0 0.4 9:10.31 php-fpm: pool www
29678 php-fpm 20 0 424876 29096 8132 S 0.0 0.4 9:11.66 php-fpm: pool www
29644 php-fpm 20 0 424976 28896 7852 S 0.0 0.4 9:10.82 php-fpm: pool www
29646 php-fpm 20 0 423032 28556 7520 S 0.0 0.4 9:10.09 php-fpm: pool www
30301 php-fpm 20 0 422852 28544 7572 S 0.0 0.4 9:10.07 php-fpm: pool www
29647 php-fpm 20 0 422920 28496 7528 S 0.0 0.4 9:10.51 php-fpm: pool www
29923 php-fpm 20 0 423004 28496 7508 S 0.0 0.4 7:45.81 php-fpm: pool www
5958 php-fpm 20 0 422876 28412 7528 S 0.0 0.4 8:57.88 php-fpm: pool www
9789 php-fpm 20 0 422872 28408 7516 S 0.0 0.4 8:42.10 php-fpm: pool www
29645 php-fpm 20 0 422772 28348 7512 S 0.0 0.4 9:12.34 php-fpm: pool www
13545 php-fpm 20 0 422628 28060 7464 S 0.0 0.4 3:59.57 php-fpm: pool www
3545 root 20 0 335424 27788 8404 S 0.0 0.3 3:00.95 /usr/bin/php /mnt/www/wuliu-3.weipeiapp.com/artisan queue:work redis --q
阿里云监控报告服务器已经占满86%内存
请教大家,该如何一步一步跟踪并优化相关代码减少内存开销啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Linux系统内存监控全面讲解:free命令
我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在Linux系统中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。
所以 空闲内存=free+buffers+cached=total-used
laravel的源码你就别优化了...
从自己业务逻辑代码开始找问题吧,比如数据库数据获取的时候是否一次性获取大量条目。
没有一定之规,建议你用xdebug,开启profiling dump输出一些性能调试文件,然后看一下分析结果。
直接用phpstorm就能打开 .out文件
我个人觉得并不是laravel导致的问题,如果laravel的问题,根本不可能这么流行,但是laravel包括lumen的确不是最优的框架。我个人觉得首先看php-fpm执行慢的操作,或者增加对业务代码的监控来排查一下,使用探针。首先要定位问题吧,我觉得。
内存占用太高,是业务程序导致的么?