私が質問するのが正しいかどうかはわかりません。それとも間違ったことを見ているかもしれません。あるCentOS Vps(OpenVZシステム)から別のCentOS VPS(VMWareシステム)に移行しようとしています。
- VPS#1 = CentOSバージョン6.5(最終) - Linuxバージョン2.6.32-042stab061.2(gccバージョン4.4.6 20120305(Red Hat 4.4.6-4)
- VPS#2 = CentOSバージョン6.5(最終)Linuxバージョン2.6.32-431.29.2.el6.x86_64(gccバージョン4.4.7 20120313(Red Hat 4.4.7-4)
デフォルトでは、同じ設定のLAMPがYUMを介して最新バージョンに更新されました。ただし、VPS#1には多くのプロセスがなく、設定で予想される標準しかありません。
VPS#2にはより多くのプロセスがありますが、その理由はわかりません。もちろん、「空」プロセス(0%CPU、0%メモリ)のように見えますが、なぜそこにありますか?
1つのVPSはOpenVZにあり、もう1つはVMWareにあるためではないようです。それともそうですか?
仮想プライベートサーバー#1
仮想プライベートサーバー#2
質問
- 誰かがこれら2つのシステム間にこれらの違いが存在する理由を説明できますか?
- あるシステムに他のシステムよりも多くのプロセスがあるのはなぜですか?
答え1
OpenVZでは、欠落しているプロセスは正常です。 OpenVZは、VMWareやVirtualBoxなどの真の仮想化テクノロジではなく、コンテナテクノロジです。 VMWareには、ホストシステムのカーネルに統合されるハイパーバイザーと呼ばれる技術があります。
OpenVZシステムでは、ゲストシステムは同じLinuxカーネルを共有します。したがって、実際にはゲストごとに1つずつ実行されるのではなく、1つのLinuxカーネルだけが実行されます。
私のOpenVZゲストの1つの出力は次のとおりです。
$ ps -eaf
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mar09 ? 00:00:18 init [3]
root 7699 22497 1 14:05 ? 00:00:00 sshd: root@pts/0
root 7769 7699 2 14:05 pts/0 00:00:00 -bash
root 7794 7769 0 14:05 pts/0 00:00:00 ps -eaf
apache 12221 25901 1 10:41 ? 00:02:33 /usr/sbin/httpd
apache 13386 25901 1 Sep17 ? 00:14:23 /usr/sbin/httpd
apache 14030 25901 1 07:22 ? 00:05:37 /usr/sbin/httpd
apache 14038 25901 1 07:22 ? 00:05:36 /usr/sbin/httpd
root 21967 1 0 Mar09 ? 00:00:00 /sbin/udevd -d
rpc 22317 1 0 Mar09 ? 00:00:22 portmap
rpcuser 22349 1 0 Mar09 ? 00:00:00 rpc.statd
root 22419 1 0 Mar09 ? 00:00:01 /sbin/rsyslogd -i /var/run/rsyslogd.pid -m 0
root 22435 1 0 Mar09 ? 00:00:49 ypbind
root 22457 1 0 Mar09 ? 00:15:42 automount
root 22485 1 0 Mar09 ? 00:13:33 /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a
root 22497 1 0 Mar09 ? 00:00:00 /usr/sbin/sshd
root 22508 1 0 Mar09 ? 00:00:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
root 22526 1 0 Mar09 ? 00:00:23 sendmail: accepting connections
smmsp 23558 1 0 Mar09 ? 00:00:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
root 23577 1 0 Mar09 ? 00:00:03 crond
root 23585 1 0 Mar09 ? 00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2
root 23586 23585 0 Mar09 ? 00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2
root 23594 1 0 Mar09 ? 00:00:07 /usr/sbin/uptimed
apache 24238 25901 1 04:34 ? 00:07:22 /usr/sbin/httpd
root 25901 1 0 Sep16 ? 00:00:00 /usr/sbin/httpd
OpenVZプロジェクトのWebサイトは、コンテナ仮想化技術と仮想マシン技術の違いの良い概要を提供します。
「空」プロセスの削除
これは空のプロセスではありません。仮想マシン環境はハードウェア層で仮想化するため、ゲストオペレーティングシステムはベアメタルで実行されている場合よりも多くのコアプロセスを提供する必要があります。
OpenVZ / Docker / LXCなどのコンテナテクノロジを使用すると、プロセスレベルで仮想化されるため、義務が異なります。すべてのコンテナは単一のLinuxカーネルを共有することで利点を得ることができます。