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

我有两台VPS服务器,但它们的内存使用量和进程运行量大不相同。 我对运行linux服务器还是一个新东西,所以我很难搞清楚发生了什么,以及我能做些什么来解决这个问题。

两者都是Debian 5 32bit安装。

在一台128MB内存和一个CPU内核的服务器上 ,我有一个完整的服务器 ,只有84MB内存。 另一台服务器有512MB(四核CPU),它没有任何运行,但核心进程,但它仍然使用94MB的RAM。

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

你正在看到正常的行为。 不要将使用过的内存与不可用的内存混淆。 内存中的许多结构可以在需要内存时快速缩小尺寸。 只要系统启动并且有大量内存可用,预计您的使用量将会增加。

用于磁盘caching计数的空间。 一旦读取或写入文件,数据往往会被caching,直到需要这个空间。 日志文件通常只写,但在生成时caching。 从我的使用情况图中可以看出几点:

  • 系统越长,专用于文件caching和缓冲区的内存就越多。 这受限于可用的内存量。 随着内存需求的增加,专用于文件caching和缓冲区的内存可能会根据需要减less。
  • 使用的总内存稳定一些Mb短缺100%。 这是为运行subprocess保留的内存。 如果这个空间变得太小,性能下降,崩溃。
  • 使用的内存总量几乎不像它用于的那样。

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

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