0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

仮想メモリ = pagefile.sys は間違いです

Posted at

Windows でメモリ関連の話をするときに噛み合わないな思い、これを説明することがよくあります。

よく聞く間違い

Windows で仮想メモリに関連する設定は、パフォーマンス オプションにあり、pagefile.sys の配置先ドライブやサイズを変更できます。仮想メモリという項目で設定できるので、仮想メモリ = pagefile.sys と考えている人を見かけますが、それは正しくないので注意が必要です。

VirtualMemory.png

[変更] ボタンからページ ファイルの設定を変更できますが、今回は設定方法の話ではないので、設定方法を知りたい方は別の Web サイトに詳しく書いたので、そちらをご覧ください。

ページ ファイルの設定を変更する方法 | Microsoft Japan Windows Technology Support Blog
https://jpwinsup.github.io/blog/2023/02/08/Performance/Hang_BSOD/HowToChangePagingFileSetting/

仮想メモリの設定項目って何ができるの?

この設定では、ページ ファイル(pagefile.sys)のサイズを変更することで、仮想メモリのサイズを変更できます。ということは、"仮想メモリ = pagefile.sys" であってるのでは?っと思ってしまいますが、仮想メモリのサイズには、物理メモリのサイズが含まれるので、これが間違いになります。

仮想メモリのサイズ

仮想メモリのサイズは、物理メモリのサイズとページ ファイルのサイズを足したものになります。つまり、以下の数式が成り立ちます。

仮想メモリのサイズ = 物理メモリのサイズ + ページ ファイルのサイズ

端末に搭載している物理メモリのサイズが 4096 MB で、ページ ファイルのサイズを 1024 MB に設定すれば、仮想メモリのサイズは、5120 MB になります。

なお、仮想メモリのサイズ、物理メモリのサイズ、ページ ファイルのサイズは、PowerShell コマンドで確認できます。

$wmiobject = Get-WmiObject Win32_OperatingSystem
# 仮想メモリのサイズ
Write-Output "Virtual Memory Size (KB): $($wmiobject.TotalVirtualMemorySize.tostring("#,0"))"
# 物理メモリのサイズ
Write-Output "Visible Memory Size (KB): $($wmiobject.TotalVisibleMemorySize.tostring("#,0"))"
# ページ ファイルのサイズ
Write-Output "Page File (KB): $($wmiobject.SizeStoredInPagingFiles.tostring("#,0"))"

Win32_OperatingSystem class - Win32 apps | Microsoft Learn
https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-operatingsystem

もう一つの間違い

「ページ ファイル(pagefile.sys)って物理メモリが不足したときに使用される領域でしょ!」と考えていたらそれも間違いです。

物理メモリが不足していなくても使用されます。疑い深い人は、物理メモリが不足していない状態で、以下の PowerShell コマンドを実行し、CurrentUsage が0でないことを確認してみてください。

Get-WmiObject Win32_PageFileUsage | Select-Object Name, AllocatedBaseSize, CurrentUsage | fl *

# 実行結果例
# Name              : C:\pagefile.sys
# AllocatedBaseSize : 33168
# CurrentUsage      : 638

Win32_PageFileUsage class - Win32 apps | Microsoft Learn
https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-pagefileusage

さいごに

じゃあ仮想メモリって一体なにというかんじだと思いますが、それは別の投稿にしようかなと思っています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?