我正在投资 nginx 的缓存机制。我在我的 nginx.conf 中设置了以下内容。
fastcgi_cache_path /run/nginx-cache levels=1:2 keys_zone=PHP_CACHE:4m inactive=5m max_size=1m;
通过keys_zone=PHP_CACHE:4m
,nginx 应该分配 4 MiB 的共享内存。为了检查这一点,我使用ipcs
了命令,但它没有显示任何内容。这是否意味着 nginx 并没有真正利用 Linux 的共享内存机制?还是有其他方法可以监控进程的共享内存使用情况?
Nginx 工作人员使用所谓的共享映射(参见 mmap(2))。这种机制不同于 SYSV 和 POSIX 共享内存,因此 ipcs 不提供您正在寻找的信息。您可以使用 top (SHR) 监控(某种程度上)共享内存使用情况或查看 /proc/[your_nginx_worker's_pid]/status 文件(RssShmem)。