为什么有些服务器有这么多进程在运行?

为什么有些服务器有这么多进程在运行?

我有两个 VPS 服务器,但它们的内存使用量和运行的进程量差别很大。我对运行 Linux 服务器还不熟悉,所以我很难弄清楚发生了什么,也不知道该怎么做才能修复它。

两者都是 Debian 5 32位安装。

在一台拥有 128MB RAM 和单个 CPU 核心的服务器上,我有正在运行仅 84MB 内存。另一台服务器有 512MB(四核 CPU),并且除了核心进程外没有运行任何内容但它仍然占用94MB的RAM。

是否有一种不同类型的虚拟化技术需要更多的 Linux 核心进程?

答案1

您看到的是正常行为。不要将已用内存与不可用内存混淆。当需要内存时,内存中保存的许多结构可以快速缩小。只要系统正常运行且有大量可用内存,您的使用量就会增加。

用于磁盘缓存的空间计为已使用空间。一旦您读取或写入文件,数据往往会被缓存,直到需要此空间为止。日志文件往往是只写的,但会在生成时被缓存。从我的使用图表中可以看出以下几点:

  • 系统运行时间越长,用于文件缓存和缓冲区的内存就越多。这受可用内存量限制。随着内存需求的增加,用于文件缓存和缓冲区的内存可能会按要求减少。
  • 总内存使用量稳定在 100% 以下。这是为运行子进程保留的内存。如果此空间太小,则会导致性能下降和崩溃。
  • 总内存使用量与其用途并不重要。

如果您有任何 tmpfs 文件系统,它将使用可用内存。随着内存使用量的增加,其中一些数据可能会被分页到交换文件中。

Web 服务器进程通常与一个主进程一起运行,用于接受传入连接,并有许多子进程来处理请求。子进程通常具有相同的 PPID(父进程 ID)。您的其中一个服务器似乎正在运行nginxphp-cgi使用大量进程来处理 Web 请求。命令pstree(如果可用)可用于查看此类设置。

相关内容