はじめに
コンピュータシステムにおいて、ランダムアクセスメモリ(RAM)はアプリケーションを実行するためのデータを保持する重要なコンポーネントです。物理RAMが完全に使い果たされると、オペレーティングシステムはハードドライブの一部を「仮想メモリ」として使用し、システムのクラッシュを防ぎます。この仮想メモリは一般的にスワップ領域(swap space)と呼ばれます。
この実験では、スワップファイルを作成および有効化することで、システムの仮想メモリを拡張するプロセスをガイドします。これは、物理RAMが限られているシステムでパフォーマンスを向上させるための一般的なシステム管理タスクです。メモリ使用量の確認方法、スワップファイルの作成、有効化、および使用状況の監視方法を学びます。
ハイパーバイザーでの仮想マシン設定へのアクセス
このステップでは、Linux環境の現在のメモリおよびスワップ領域の設定を確認します。これは、変更を加える前のベースラインとなります。システム内の物理メモリとスワップメモリの合計、使用量、空き容量を表示する free コマンドを使用します。
まず、ターミナルを開きます。人間が読みやすい形式(MBやGB単位など)で出力するために、-h フラグを使用します。
次のコマンドを実行してください。
free -h
以下のような出力が表示されます。正確な数値はシステムの現在の状態によって異なる場合があります。
total used free shared buff/cache available
Mem: 3.5Gi 502Mi 1.2Gi 3.0Mi 1.8Gi 2.8Gi
Swap: 0B 0B 0B
上記の出力において:
Mem: この行は物理メモリ(RAM)を示しています。Swap: この行は仮想メモリ(スワップ領域)を示しています。ご覧の通り、現在スワップ領域は設定されていません。
私たちの目標は、スワップファイルを追加して、利用可能な仮想メモリの合計を増やすことです。
RAM割り当てを4GBに増やす
このステップでは、スワップ領域として使用する2GBのファイルを作成し、仮想RAMとして機能させます。これには、ファイルの作成、権限の設定、スワップとしてのフォーマット、そして有効化といういくつかのサブステップを実行します。
まず、fallocate コマンドを使用して、特定のサイズのファイルを即座に作成します。プロジェクトディレクトリ内に swapfile という名前の2GBのファイルを作成します。
sudo fallocate -l 2G ~/project/swapfile
次に、セキュリティ上の理由から、rootユーザーのみがスワップファイルを読み書きできるようにする必要があります。chmod を使用して適切な権限を設定します。
sudo chmod 600 ~/project/swapfile
次に、mkswap コマンドを使用して、このファイルをスワップ領域としてフォーマットする必要があります。
sudo mkswap ~/project/swapfile
新しいスワップ領域のUUIDを含む、設定が完了したことを示す出力が表示されるはずです。
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
最後に、swapon コマンドでスワップファイルを有効にします。これにより、新しい仮想メモリがシステムですぐに使用可能になります。
sudo swapon ~/project/swapfile
これでシステムは新しく作成されたスワップファイルを使用するようになります。
free -h コマンドによるRAM検出の確認
このステップでは、新しいスワップファイルが正常に有効化され、システムによって認識されていることを確認します。最初のステップと同様に、free -h コマンドを再度使用します。
ターミナルでコマンドを実行してください。
free -h
出力が変化しているはずです。Swap 行に、割り当てた2GBの領域が表示されていることに注目してください。
total used free shared buff/cache available
Mem: 3.5Gi 543Mi 1.2Gi 3.0Mi 1.8Gi 2.7Gi
Swap: 2.0Gi 0B 2.0Gi
これで、システムに2GBの仮想メモリを正常に追加できたことが確認できました。物理RAMが不足した場合、オペレーティングシステムはこの領域を使用できるようになります。
htop コマンドによるRAM使用量の監視
このステップでは、人気のあるインタラクティブなプロセスビューアおよびシステムモニターである htop の使い方を学びます。これは top コマンドと比較して、システムリソースをより詳細かつユーザーフレンドリーに表示します。
ターミナルで名前を入力するだけで htop を実行できます。
htop
ターミナルが htop インターフェースに切り替わります。上部にCPU、メモリ(Mem)、スワップ(Swp)のメーターが表示されます。設定した2.00Gの合計スワップ領域が表示されている Swp メーターを確認してください。
CPU[|| 1.3%] Tasks: 31, 0 thr; 1 running
Mem[||||||||| 78/1985MB] Load average: 0.00 0.01 0.00
Swp[ 0/2048MB] Uptime: 00:05:10
このインターフェースを使用すると、物理メモリと仮想メモリがどれだけ使用されているかをリアルタイムで監視できます。htop を終了するには、キーボードの q キーを押すだけです。
htop を終了した後、Check をクリックする前に ls などの簡単なコマンドを1つ実行してください。これにより、最近実行した htop コマンドがシェル履歴に書き込まれ、検証ツールがそれを検出できるようになります。
変更の取り消しとVMの再起動
この最後のステップでは、スワップファイルを無効化および削除する方法を学びます。これは、追加の仮想メモリが不要になった場合や、サイズを変更したい場合に役立ちます。
まず、swapoff コマンドを使用してスワップファイルを無効にする必要があります。これにより、オペレーティングシステムに対して、スワップにそのファイルを使用しないよう指示します。
sudo swapoff ~/project/swapfile
スワップファイルが無効になったら、それは通常のファイルとなるため、rm コマンドを使用して安全に削除できます。
sudo rm ~/project/swapfile
変更が元に戻ったことを確認するために、最後に free -h コマンドを実行します。
free -h
出力はステップ1で見たものと同じになり、Swap 行の容量がゼロになっているはずです。
total used free shared buff/cache available
Mem: 3.5Gi 536Mi 1.1Gi 3.0Mi 1.9Gi 2.7Gi
Swap: 0B 0B 0B
これで環境を元の状態に正常に戻すことができました。
まとめ
実験の完了、おめでとうございます!スワップファイルを使用してLinuxシステムの仮想メモリを管理する方法を習得しました。
この実験では、以下の重要なシステム管理スキルを練習しました。
free -hを使用したシステムメモリの確認。fallocateを使用した大容量ファイルの即時作成。mkswapを使用したスワップ領域の設定。swaponおよびswapoffを使用したスワップ領域の有効化と無効化。htopを使用したシステムリソースの監視。
これらのスキルは、Linuxサーバーを管理し、特にリソースが制限された環境でシステムを円滑に動作させるための基本となります。



