php-fpm模式下opcache的内存是共享全部吗?

[现象]
机器运行一段时间后每个php-fpm的内存都会从13MB增加到30MB左右,重启后php-fpm又会降下来

请问使用php-fpm模式运行下,opcache产生的文件内存是每个php-fpm独享的,还是所有php-fpm共享的?

使用pmap看到了一段以下数据,这个会是opcache的共享内存吗?
00007f6e17e04000 131072K rw-s- /dev/zero (deleted)

那如果是共享的话,为啥每一个php-fpm的进程都会占用到40MB?

撒科打诨
浏览 1081回答 3
3回答

婷婷同学_

原文: PHP processes with opcode cache enabled use shared memory for opcode caching. Yet, PHP processes will be able to "share" that shared memory, only if they were all created (forked) from the same, original PHP process, that allocated that shared memory.大致意思:开启opcache扩展的php进程都可以访问opcode的共享内存。然而,PHP进程将能够“共享”共享内存,只有当它们都是从相同的原始PHP进程创建时,才分配了共享内存

尚方宝剑之说

所有php-fpm共享的,OPcache会放在一块共享内存或一个文件目录里。

摇曳的蔷薇

opcache应该是共享的,只要是从同一个master上创建出来的php-fpm进程。但是你php-fpm内存的增加就不一定能给是opcache的问题了。这边是不是存在内存泄漏的问题呢?还是需要定位一下的。
打开App,查看更多内容
随时随地看视频慕课网APP