交换内存使用较多

Q:启动一个进程运行时间久了之后会又swap过大的问题,使用free命令查看used用了很多,一般都要手动swap out,请问为什么swap会占用过大呢,和 ps中的RES,VIRT参数内容有关系吗

讨论数量: 1

您的问题,我谈些个人的看法:

  1. swap 占用大, ps 或 top 中的 RES 或 VIRT 参数只是显示出占用的内存,而不是这些参数造成的。总的来说,swap 占用大,是与您的进程占用内存大的原因造成的,因为操作系统在内存不够时才使用 swap 进行内存与 swap 交换。

    1. 您说的启动的进程是什么样的程序,是自己开发的,还是公开的经过检验的程序。若是公开的经过验证的程序,尤其是一些守护进程,那么可能是您的机器配置偏低,内存不够,或任务重到您的系统不能承担。也可能是配置方面有问题。若是其它不可靠程序,就有可能是程序出现内存泄漏的问题。

    2. 总的来说,我认为应该是你启动的这个进程出现了内存泄漏。若是服务(守护进程),那看看配置方面是否有问题,如开的线程数太多,单个服务等待时间设置太长,导致结束的服务一直挂着不释放内存所致等原因。

一些个人看法,未必正确,请参考。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!