linux服务器总是内存占用很高,cpu使用率反而不高,这是什么情况啊??

机器上面主要是php,nginx,数据库用的阿里的,

clipboard.png

一般访问不高的时候,内存占用情况像这样,访问高的时候cpu占用会上升,但是有时候内存占用反而会下降,改了几次php-fpm,也没多大效果,由于目前项目这边没运维,我对linux不是特别熟悉,问下各位这种是什么情况啊??属于正常吗??

clipboard.png

上图是free出来的数据,看着cache/buffers都不大啊,但是我的php-fpm启动了
clipboard.png
两百多个...php5.6的,8g内存,这个是要优化吗?

阅读 7.3k
3 个回答

free -m 看下,buff/cache,available 这两列比较大的话,不用担心。 linux默认会把许多内容缓存到内存里,提高运行效率。如果内存不足,会把缓存里的数据交换到磁盘。

如果这两项比较小,估计是你开了太多php-fpm进程。 PHP5版本的话8G内存一般开128个PHP-FPM进程就可以了。PHP7可以开256个进程。
如果想获得更高的RPS,需要优化你的PHP程序。 系统上线后,分析下nginx日志,看看哪些接口访问量比较大,耗费时间长,然后优先处理这些接口。

建议把PHP升级到7.0版本,内存和CPU资源占用要少很多。如果想要获得更高性能,可以考虑将瓶颈接口换成GO语言实现。

你看是哪个进程占用了较多的内存

首先得定位那个软件占用很高的内存~ 然后如果是运行时占用很高,就得做具体的问题定位了!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题