仮想メモリを使用する必要はありますか?


14

私はこれがすでに尋ねられたと思ったでしょうが、私はそれを見つけることができないようです。

どの時点で仮想メモリを有効にする必要がなくなりましたか?4GBのRAMを使用すると、コンピューターがそのすべての近くで使用することはほとんどありません。その時点では、仮想メモリは厳密には必要ありません。オフにするのは危険ですか?削除すると失われる機能はありますか?


1
重要:non-pagedおよびpagedプールメモリセクション呼ばれる、ドライバに与えられるメモリの量は限られています。ページファイルは、ページセクションがいっぱいになったときに必要です。ゲーマーは、8 GBシステムでページファイルを無効にしたという理由だけで、ページプールメモリについて文句を言っています。結論:ページファイルが必要であり、ページプールの枯渇を防ぎ、実際にシステムを高速化します。
タマラWijsman

回答:


9

メモリはデスクトップPC /ラップトップではまさしくまばらなリソースではないため、ほとんどのプログラムがメモリ不足の状態を適切に処理し、代わりにクラッシュすることはないでしょう。
だから:危険ですか?はい、4GBが何らかの方法で使い果たされ、ページファイルがない場合、アプリケーションがクラッシュし始める可能性があります。
また、Zoranの例に示すように、後で問題を特定するのは難しいかもしれません。

Ramが言及している記事では、通常、スワップをオフにしても速度は向上せず、代わりに逆のことが行われる可能性があると述べています

そのため、ページングファイルを使用せずにパフォーマンスを向上させるワークロードが存在する場合がありますが、一般に、ワークロードを使用すると、システムで使用可能なメモリが増えます。


MSのサイトで記事を掘り下げる必要がありますが、MSは常にページファイルを用意すべきだと言っています。ハイメモリシステムでも、持っていない場合はマシンの動作が遅くなる可能性があります。
ケルタリ

10

仮想メモリに関するMark Russinovichの記事を参照してください。これにより、仮想メモリに関する適切なポインタが得られます。

リンクからの有用な抜粋はここにあります

では、ワークロードに必要なコミットチャージをどのように知ることができますか?スクリーンショットで、Windowsがその数を追跡し、Process Explorerがそれを表示していることに気付いたかもしれません:Peak Commit Charge。ページングファイルのサイズを最適化するには、同時に実行するすべてのアプリケーションを起動し、一般的なデータセットをロードしてから、コミットチャージピークに注意する必要があります(または、最大負荷に達したことがわかっている期間後にこの値を確認します) 。ページングファイルの最小値を、その値からシステムのRAM量を引いた値に設定します(値が負の場合、設定されているクラッシュダンプの種類を許可する最小サイズを選択します)。潜在的に大規模なコミット要求に対応する余裕を持たせたい場合は、最大値をその数の2倍に設定します。


マーク・ルシノビッチの参照用に+1。常に素晴らしい読書。
mrduclaw 09

3

ServerFaultに関するこの古典的な投稿には、いくつかの良い点があります。4GBの場合、ページファイルはそのままにしておきますが、ディスクに含まれるスペースはいずれにせよマイナーです。


3

仮想メモリの設定をデフォルトのままにすることをお勧めします。私は8GBのRAMを持ち、速度を上げると考えて仮想メモリをオフにしました(スワッピングがないため)が、システムが不安定になったことがわかりました(そして、これを2台のマシンで行いました、同様の結果です)。両方のマシンで、おおよそ1週間に1つのBSODが発生していました。生成されたミニダンプの調査を開始すると、すべてのBSODはKiPageFaultというルーチンの呼び出しによってトリガーされることがわかりました。そこで、仮想メモリの設定をデフォルトに戻してみましたが、通常のBSODは消えました。

2を相関させるのにかなり時間がかかりました。仮想メモリをオフにしたことがBSODの原因であるという実際の証拠はありませんが、電源をオンにした後、私のマシンはより安定していました...


ありがとう。単なる推測ではなく、実際の結果を聞くのは良いことです。
スティーブロウ

0

ワークロードに依存します。Webアプリケーション用のディスクレスフロントエンドの束を設定しました。ネットワークが起動し、8GBのRAM内で必要なすべてを実行しました。

また、32MBでページファイルのないウィンドウ(おそらく98)を使用しました。もちろん、そのメモリ空間に住んで、リソースに合わせてアプリを制限する必要があります。

ディスクキャッシュ用に追加のRAMがあることを確認する必要があります。そうしないと、パフォーマンスが恐ろしくなります。

VMなしでは実行できないプログラムがあることを思い出すようですが、それが何であるかはわかりません。


-2

さて、スティーブ、あなたがそれを尋ねるのは面白いことです。

私はあなたに少し秘密を教えます:あなたが仮想メモリを必要としたポイントは決してありませんでした。仮想メモリは、実用的なコンピューティングシステムについてゼロを知っていた多くの学者によって作成された非常に無能なアイデアでした。VMなしで実行できるコンピュータは、非常に優れた機能を発揮します。

さて、VMが役に立たず有害である場合、なぜ最近の大規模なオペレーティングシステムのほとんどがそれを使用するのかと尋ねるかもしれません。この質問に対する簡単な答えは、Microsoft、Apple、およびIBMでVMを使用するかどうかを決定する人々は、VMを発明し、同じ、まったく間違った仮定に基づいてVMを採用したい学者よりも愚かで経験が浅いということです学者はそれを発明したときに持っていました。これらの仮定と誤解について話し始めることができましたが、残念ながら、それらが理解しやすく、説明しやすいなら、そもそもVMの問題はないでしょう。

戻ってきます。残念なことに、前述のAppleおよびMicrosoftのtardnogginsと同様に、VMをオフにできるという独自の誤解があります。もちろん、それをオフにすることはできません。それをオフにするだけでも、ねじ込むという目的全体を無効にすることになります。人々が本当に愚かなことをするとき、彼らはそれが不可逆的であることを常に確認します。結局のところ、誰もがVMをオフにすることができれば、それを作成し、それを作成したbozosはかなり愚かに見えるでしょうか?彼らは、MicrosoftがInternet Explorerを取り外し不可能にしたようなものを、取り外し不可能にすることでこの可能性を防いだ。

できることは、ページファイルのサイズを制限することです。これは、もちろん最小値(0が望ましい)に設定する必要があります。狂気にディスクドライブを巻き込まないように頼むことで遅くなります。


仮想メモリは、非常に多くの優れた機能を提供します。仮想メモリがない場合、実際に参照されたかどうかにかかわらず、システム上のすべてのプロセスが定義するコードとデータのすべてのバイトを保持するのに十分なRAMが必要です。ほとんどのプログラムはコードとデータの10%を使用して時間の90%を費やしているため、これは大きな無駄です。また、他の多くの有用なものを失うことになりますが、ここでのコメント形式では概要を説明する余地がありません。仮想メモリを放棄しなかった理由は、それがまだ本当に良いアイデアだからです。「実用的なコンピューティングシステム」でも。
ジェイミーハンラハン

@RickBrant 1980年代にVMが良いアイデアだった理由を説明しようとするのに耳を傾けなければならないIntelとIBMの馬鹿な電気技師のように聞こえます。IBMがOS / 2を発表したときのことを思い出します。OS/ 2はVMで最初に損傷を受けたオペレーティングシステムであり、なぜそのような素晴らしいアイデアであるかを説明しなければなりませんでした。ありがたいことに、OS / 2が死んだことを感謝しますが、残念ながらVMはゾンビのように動き続けたので、ここは2017年であり、私はまだこのナンセンスに耳を傾けています。君は?それは冗談です。VMを宣伝する人の99%はプログラマーではありません
タイラーダーデン

実際、私は西海岸で最高のハイテク学校の1つであるCS / EEの二重専攻でした。今日、私は主にプログラマーですが、ハードウェアタイプとやり取りしています。さて、プログラムが必要とするかどうかにかかわらず、プログラムが定義するコードとデータのすべての最後のバイトを常にRAMに保持しなければならないのは非常に無駄であるという点に対する反論がありますか?仮想メモリはそれを避けるためです。または、「あなたはばかでなければならない」という量の個人的な攻撃を続けるつもりですか?
ジェイミーハンラハン

ああ、そして「OS / 2、これはVMで最初に損傷を受けたオペレーティングシステムの頭脳」でした。おそらく最初に広く使用されているPC用のOSです。(しかし、「パーソナルコンピューター」の最初ではありません。)
ジェイミーハンラハン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.