php php-fpm shmop_open 共享内存 释放

本文介绍了一次PHP请求中如何利用共享内存提高效率。通过在fopen和shmop_close处埋点,使得后续请求可以直接打开共享内存,避免重复加载文件内容。实验中尝试使用echo命令清理缓存并未成功,最终通过ipcrm命令实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一次php请求到来, phpf-pm 调度php, shmop_open 打开文件, 载入内存.

请求执行完成. GeoIP class __destruct 的时候会调用 shmop_close. 

通过在 fopen , shmop_close 埋点, 后续请求 shmop_open 可以直接打开共享内存, 不需要再次把 文件 读入 内存. 

通过 ipcs -m 查看:

key        shmid      owner      perms      bytes      nattch     status      
0x3f425f42 0          www        600        1156206704 0                      

free -m

              total        used        free      shared  buff/cache   available
Mem:          15868         684        3101        1105       12083       13749

echo 3 > /proc/sys/vm/drop_caches 后 free -m

              total        used        free      shared  buff/cache   available
Mem:          15868         679       13896        1105        1293       13825

并没能清理 共享内存.

 ipcrm -m 0  才能删掉. 同时 埋点显示, 重新 open了磁盘文件, 载入到共享内存. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值