こんにちは。サカイです。
メモリの事について調べる機会があったので備忘も兼ねて、
今回はメモリの事について書きたいと思います。
※内容はWindows前提になります。
メモリ使用量について
PCやサーバーが重いと、とりあえずタスクマネージャーでメモリの状況を見ると思いますが、
グラフで描画されているメモリ使用量はあくまでも物理メモリ(RAM)のみです。
「メモリ結構使ってるな…。でも後3GBは余裕あるし大丈夫だろう」と思っていると危ないかもしれません。
というのも、メモリには物理メモリと仮想メモリというものがあります。
物理メモリとは
物理メモリとは、一般的に広く知られているメモリ(RAM)と呼ばれるものです。
プログラムを動かす際に使用するメモリ領域を指します。
仮想メモリとは
物理メモリ領域中の、使ってない領域部分をHDDやSSDといった記憶装置に
退避させる事があります。
その領域こそが仮想メモリの領域です。
ページング領域とも呼ばれています。
↑タスクマネージャーで、いつもはあまり気にしていない謎のエリア
画像のPCは搭載RAMが16GBですが、コミット済みの部分の分母が18GBとなっています。
そのため、搭載RAM(16GB)+仮想メモリ領域(2GB)=18GBという計算になります。
果たして本当に仮想メモリは2GB領域あるのでしょうか(;゚д゚)ゴクリ…
確認する方法は以下になります。
コントロールパネル→システムとセキュリティ→システム→システムの詳細設定→パフォーマンスの設定
→詳細設定タブ
総ページングファイルサイズが約2GBでした!
仮想メモリの設定
仮想メモリ領域は使用量に比例して拡大されていきます。
最大サイズはOSのバージョン等によって異なりますが、基本的には
搭載されているRAMの3倍から4倍ほどです。
仮想メモリに退避したものを再度使用する場合は、物理メモリ上まで持ってこないと
使用出来ないため、絶えず読み込み書き込みが発生してしまう事があります。
このとき、あまりの頻繁な読み書きにパフォーマンスが落ちることがあります。
この事をスラッシングと言います。
ちなみに、事前に最小仮想メモリ領域のサイズを変更したい場合は、上記で記載している
コントロールパネルからの設定で変更が可能です。
仮想メモリの使用率を確認したい
パフォーマンスモニターから仮想メモリの使用状況を見ることが出来ます。
コントロールパネル→システムとセキュリティ→管理ツール→パフォーマンスモニター
モニターツールからパフォーマンスモニターを選択し、グラフを追加する際に
Memory項目の中に以下の画像のようなカウンタが存在します。
下記カウンタはページファイルの読み取り等を計測しています。
Pages/sec
Page Reads/sec
Page Inputs/sec
下記カウンタはページファイルの書き込みを計測しています。
Page Writes/sec
Page Output/sec
サーバー監視など、ざっくりとメモリ容量だけを見がちですが、
仮想メモリについても気にかけて見てはいかがでしょうか。