有其他人也看到这种情况吗?这个论坛的规模和流量都相当适中。目前运行着四个 pitchfork 工作进程,看起来其中一个处理了绝大部分的传入请求,并且占用的内存也比其他进程多。系统中有大量交换空间(swap)被使用,而通过手动重启 pitchfork,内存占用会显著降低。因此我推断,pitchfork 进程目前有很多冷页面被交换到了磁盘上。
这是在运行了 20 天之后,机器配置为 4G 内存和 4G 交换空间。
如果交换空间耗尽那将是很糟糕的。同样糟糕的是,如果 pitchfork 最终执行垃圾回收时,发现大量的交换空间需要重新换入内存。
有人遇到过类似的情况吗?请分享你们的机器配置!
# ps aux | sort -n -k 4 | egrep pitchf\|MEM |tail
root 2167652 0.0 0.0 5912 1792 pts/0 S+ 20:07 0:00 grep -E --color=auto pitchf|MEM
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
1000 15094 0.0 0.2 497544 10988 ? Sl Jul28 0:17 pitchfork monitor -
1000 15704 0.0 2.5 6799124 97836 ? Sl Jul28 1:00 pitchfork (gen:0) service - ready
1000 15097 0.0 4.8 6791252 189724 ? Sl Jul28 5:26 pitchfork (gen:0) mold - ready
1000 15959 0.0 8.1 6815508 319708 ? Sl Jul28 12:05 pitchfork (gen:0) worker[3] - requests: 6684, waiting
1000 15900 0.0 9.2 6864596 360696 ? Sl Jul28 17:43 pitchfork (gen:0) worker[2] - requests: 14756, waiting
1000 15795 0.1 10.3 6884756 405420 ? Sl Jul28 48:36 pitchfork (gen:0) worker[1] - requests: 97007, waiting
1000 15734 2.1 12.8 11299708 500120 ? Sl Jul28 637:50 pitchfork (gen:0) worker[0] - requests: 2229848, waiting
# free
total used free shared buff/cache available
Mem: 3904968 1874636 98840 678812 1931492 1160916
Swap: 4194288 1226600 2967688
# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 1226600 115820 65288 1866284 1 1 20 38 0 3 3 1 97 0 0
0 0 1226600 113208 65296 1866296 0 0 0 14 411 478 1 1 98 0 0
0 0 1226600 112956 65304 1866336 0 0 1 23 438 528 2 1 97 0 0
0 0 1226600 112704 65308 1866360 0 0 1 31 518 603 5 1 94 0 0
0 0 1226600 112704 65308 1866364 0 0 0 11 347 387 1 1 98 0 0
vmstat 的输出显示目前并没有内存压力——没有分页活动。我担心的是潜在的危险,而不是说我的安装目前运行得很糟糕。

