我正在研究 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 的共享内存机制?或者还有其他方法可以监视进程的共享内存使用情况?
答案1
Nginx 工作进程使用所谓的共享映射(请参阅 mmap(2))。此机制不同于 SYSV 和 POSIX 共享内存,因此 ipcs 不会提供您正在寻找的信息。您可以使用 top (SHR) 监控(某种程度上)共享内存使用情况,或者查看 /proc/[your_nginx_worker's_pid]/status 文件 (RssShmem)。