为什么我在 KVM 中看到的进程比在 OpenVZ 中多?

Maz*_*zzy 2 linux process kvm openvz

我有一个 512mb Centos 6 VPS 在 KVM 上运行。现在来自组织的另一个 VPS。我管理正在 OVZ 上运行。

当我在 KVM 上键入 top 时,我会得到所有排序进程的完整列表。但是当我在 OVZ one 中这样做时,我只能得到大约 20,这是正常的。

那么我如何关闭所有这些(不必要的?)进程并保持干净呢?下面是 top 现在的样子:

最佳

slm*_*slm 5

这些大多是在裸机上运行 Linux 发行版或在其他技术(如 KVM 或 VirtualBox)上作为虚拟机运行时必须执行的正常进程。您所看到的差异可以直接归因于虚拟化技术的差异。

KVM 和 VirtualBox 等技术在硬件级别进行虚拟化,基本上为客户操作系统提供硬件的虚拟版本。OpenVZ 等技术在进程级别进行虚拟化,因此每个来宾 VM 都有自己的init进程,但它们都共享相同的 Linux 内核。这就是为什么当您使用 OpenVZ 时,所有来宾操作系统都必须与主机操作系统具有相同的发行版。

正如您所证明的那样,使用 OpenVZ 的优势是来宾操作系统必须消耗的空间小得多,从而使系统的更多可用资源专用于 VM。

使用 OpenVZ 的主要缺点是所有来宾必须使用相同的内核,并且需要维护一个包含 OpenVZ 技术的特殊 Linux 内核。

那么有什么可以删除的吗?

你可以做的一件事来减少你的 CentOS 足迹,就是禁用任何你知道你不需要的服务。禁用服务通常是削减系统需要消耗的资源以及从安全角度加强系统的最佳方法。

例子

这是我最近设置的一个系统(CentOS 6.5)用作网络代理。我在运行级别 3 中运行系统,因为它没有 GUI 并且基本上只是一个服务器。

$ sudo chkconfig --list | grep 3:on
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
blk-availability    0:off   1:on    2:on    3:on    4:on    5:on    6:off
cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off
irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
livesys         0:off   1:off   2:off   3:on    4:on    5:on    6:off
livesys-late    0:off   1:off   2:off   3:on    4:on    5:on    6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
messagebus      0:off   1:off   2:on    3:on    4:on    5:on    6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:off   3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
Run Code Online (Sandbox Code Playgroud)

如果您有任何您知道不需要的服务,那么我鼓励您像这样禁用它们。这是一个 2 步过程。第一步将停止服务。第二步将禁止该服务在重新启动期间再次启动。

$ sudo /etc/init.d/nginx stop
$ sudo chkconfig nginx off
Run Code Online (Sandbox Code Playgroud)

使用上述相同的方法禁用其他服务,只需将名称从 更改nginxserviceX