質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

9回答

1617閲覧

仮想環境は物理PCが一台なのだからコード実行したらショートしないのですか?

question_april

総合スコア90

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2015/11/02 12:48

こんにちは

最近、サーバ仮想環境というものを知ったのですが、仮想にサーバプログラムを置いても、処理をするのは物理PCなのだから、一斉に複数のプログラムを実行したら物理サーバがショートするのではないですか??

もしよろしければ回答お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答9

0

ご理解の通り、物理PCの能力を超える処理を仮想環境で実行することは出来ませんし、仮想化によるオーバーヘッドがあるため、物理PCの能力を100%使う事も出来ません。

ただ、それを補って余りあるメリットが仮想環境を使用することで発生するケースがあります。
参考URL
参考URL

例えば、仮想化することによってハードウェア(物理サーバ)が壊れても簡単に引っ越し出来る(仮想マシンはイメージファイルと設定ファイルだけ移動すれば移動可能)なんてことが出来て便利です。

投稿2015/11/02 13:32

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

心配いりません。
現在のCPUは、CPUのハードウェアの機能として、仮想CPUを生成できる仕組みをもっています。

仮想CPUを生成する?という話がよく分からない所もあるかもしれませんが・・・例えば、古いゲーム機などのシミュレータソフトみたいなものありますよね、そのイメージでもよいかもしれません。まったく別のコンピュータ(ゲーム環境)が動作していますよね、、、。
そのような事を、CPUの機能としてハードウェアレベルで実現しています。

話を戻して、
いわゆる物理CPUと、仮想CPUという言い方をしますが、

物理CPUの中に、仮想CPU(いわゆるIntel 80x86とか、にあたるもの)を、複数生成できます。よって、物理CPUの中で、複数の(仮想CPUで動く)コンピュータを動作させることができます。

レジスタや、クロックなどなど、CPUのリソースは、仮想CPU毎にそれぞれに固有に生成されているので

その仮想CPU上で動作しているコンピュータは、
物理CPUや、他の仮想CPUとは、
まったく別の環境として切り離されており、

それらが干渉することは、基本的に(物理CPUにバグがなければ)有り得ません。
(もちろん別途物理CPU側には、この仮想CPUをコントロールする命令群があります。)

メモリについても、物理メモリは物理CPUが管理して、仮想CPUに必要な分を、仮想CPUから見たら自分のCPUに繋がっている物理メモリのように振る舞うように、割り当てます。

これらのような動作をしますので、
仮想環境で動かしたC++のプログラムは、仮想環境内にのみ影響を与えます。繰り返しになりますが、他の仮想環境や、そもそもの物理CPUとは、切り離されています。
また仮想環境と言うモノの、普通にインストールした物理PCと何らかわりはありません(性能は別ですが)。

ただし、すでに書かれていますが、物理CPUの性能は決まっているので、仮想CPU内で動作するプログラムは、物理CPUの性能の上限にもちろん制限されます。

なかなか、うまく説明できませんが。。。

投稿2015/11/02 19:50

ItoTomonori

総合スコア1283

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まず、仮想マシンが何かというレベルから勉強されては?
http://gihyo.jp/dev/serial/01/vm_work

投稿2015/11/02 13:03

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

物理PCがショートしてしまわないように、仮想環境を提供しているアプリケーションは、仮想環境それぞれに、どのくらいまでCPU時間やメモリを割り当てるかを制御して、MAXで動かさないようにしています(その辺がしっかりできていないものもあるかもしれませんが...)。

たとえば、メモリ使用量の合計が物理PCの搭載量のキャパを超えそうになると、仮想環境のいくつかを無理やり一時停止(サスペンド)させて、物理PCがショートして共倒れにならないようにしたりします。

また、仮想環境に対応しているOSは、自分が何もしていない時間(アイドルタイム)は、他の仮想環境にCPU時間を譲って仮想環境どうしでシェアします。メモリも、実際に確保・利用する段階まで物理PCにメモリを要求しません。

業務用レベルのもの(vSphere や Hyper-Vあたり)になると、構築した仮想環境それぞれに「物理PCがもつCPUの最大40%までCPU時間を分ける」「物理PCのCPUは8コアだが、このうちあなたの仮想環境では2コアまで使ってよい」など、管理者が細かく指定できるものが多いです。
http://builder.japan.zdnet.com/virtualization/20371977/4/

仮想環境の導入では、仮想環境でどのくらいのパワー(リソース)が必要か計算をしておき、余力がある物理PCを選んで使うに限ります。

投稿2015/12/02 04:25

編集2015/12/02 04:41
hsk

総合スコア728

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

サーバと言ってるからには、純粋に仮想マシンの仕組みを訊いてるのではなくて、VPSなどの共用型仮想サーバサービスなどのことで質問しているのだと解釈しました。

たしかに他人と共有しているリソースなので、一部のユーザーがリソースを占有してしまうことはありえますが、それは基本的には他人が使っていないリソースでもあります。もし物理環境の限界を超えるリソース要求があった場合には、なるべく平等に分けられるでしょう。別の言い方をすると平等に制限を食らうようなものです。CPUでもIO帯域でもだいたいそうです。

最近はどうなのか知りませんが、以前AWSだと「当たり」と「外れ」のインスタンス(t1.micro)がありました。アタリの(空いてる)インスタンスに割り当てられるまで再起動とか生成/破棄を繰り返すという不毛なテクニック(?)があったのです。外れのインスタンスというのは、質問者さんが言うように「一斉に複数のプログラムが実行」されたような状態で、物理ホストが忙しすぎて全員が少しずつ制限を食らっている状態です。

このように共用型のデメリットもありますが、経済的メリットも大きいので・・・要するに安く使えるわけです。考えてみると「全員が一斉に使わない」という前提で運用されているものは沢山あります。電力、水道、高速道路、通信網…などなど、全員が一斉にフルに使えるほどの供給能力はありません。その供給能力を整備するにはあまりにも高くつきすぎるのです。

ちなみに、業者様の仮想サーバのホスト(物理マシン)は24コアとか32コアのと~ってもリソースの多いものが普通ですので、あんまり神経質にならなくても大丈夫ですよ。

投稿2015/11/07 07:57

sharow

総合スコア1149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

仮想サーバも物理サーバから見れば、1つのプログラムです。ExcelとWordを同時に起動してもショートしないように、仮想サーバを複数起動しても、物理サーバの体力が続く限りショートしません。

投稿2015/11/07 01:59

sugima

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

実機、仮想のいずれの能力を越えればもちろんショート(レスポンスが遅くなったり止まったように見えます)します。

どちらも能力は低いものから高いものがあるのでショートしないように選ぶ必要があるということです。
実機の能力によっては、能力の低い実機より、能力の高い実機の仮想環境が良いという逆転現象も起こります。
実機も仮想も能力が高いものはコスト(価格等)が高くなるのでプログラムの必要な能力を考え実機か仮想か考えれば良いと思います。

投稿2015/11/06 22:40

taka2063

総合スコア307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

タスクマネージャを開いて、「詳細」タブをクリックすると、
現在実行中のプログラムがずらずらーっと出てきます。
この中の一つに仮想環境があるとしたら、如何でしょう?
懸念は払拭されませんか?

PC以上のスペックを必要とするプログラムなら動かないでしょうから、
仮想環境はそれ以下のスペックで動かすということになると思います。

投稿2015/11/03 00:04

TetsujiMiwa

総合スコア1124

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

その通りですが、それほど処理能力を必要としないサーバも多くあります。
それらを1つの物理サーバにまとめることでコストダウンや高可用性を実現するのが仮想環境であり、仮想環境を使用するメリットです。
そのため実際に仮想環境を準備する際は、十分な処理能力が確保されることを確認してから準備するのが普通です。

投稿2015/11/02 15:14

matsu

総合スコア702

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問