3
回答
nginx 共享内存过高
【寻找人气王】邀新用户免费体验华为云服务,百元话费等你拿!   

环境是 nginx+php-fpm;

在压力测试时,某台服务器 top信息中, nginx所占的 shr 是其他服务器的6倍,

两台服务器 硬件配置一样!

举报
守护树
发帖于3年前 3回/892阅
共有3个答案 最后回答: 3年前

所有能想到的配置都对比过,php-fpm.conf php-fpm.d/www.conf php.ini sysctl.conf nginx.conf 都一样

硬件也一样!

剖析top命令显示的VIRT RES SHR值:
top命令通过解析/proc/<pid>/statm统计VIRT和RES和SHR字段值.
VIRT是申请的虚拟内存总量.
RES是进程使用的物理内存总和.
SHR是RES中"映射至文件"的物理内存总和,包括:
程序的代码段.
动态库的代码段.
通过mmap做的文件映射.
通过mmap做的匿名映射,但指明了MAP_SHARED属性.
通过shmget申请的共享内存.

估计是你的这台服务器访问量比较大,而且开启了proxy_cache或fastcgi_cache缓存,所以Nginx用nmap把缓存文件映射到内存,跨进程共享数据,所以占用的共享内存SHR比较大.

--- 共有 1 条评论 ---
守护树看过了,两台机器nginx这块配置一样啊 3年前 回复
顶部