我在 Solaris 机器上运行了一个 node.js 进程。在 top 命令视图中,我猜代表物理内存的“RES”列是恒定且合理的。但是“SIZE”列不断增长,在两个小时内它可以达到 520MB 并且不断增加。
- “SIZE”列到底代表什么?
- 这种行为是否可以接受(正常)。
- 重新启动该过程是否会对性能产生任何影响(例如,松散的缓存资源等)?
答案1
“SIZE”列测量地址空间(即虚拟内存)的使用情况。它不是一种稀缺资源,因此通常无需担心“过度”消耗。
但是,如果该值不断上升,则可能表示存在内存泄漏。物理内存可能不会被浪费,因为内存未被使用,但如果内存被弄脏,交换空间将被浪费,最终机器将需要执行 I/O 来节省内存,以保持足够的可用物理内存。
鉴于您没有看到驻留集大小增长,我认为很可能它没有被污染,只是在占用地址空间。这本身并不值得担心。