这些大多是在裸机上运行 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)
使用上述相同的方法禁用其他服务,只需将名称从 更改nginx
为serviceX
。