disk buffer, cache, swap


Disk buffer

  • Linuxもバッファをディスクに書き込みます.
  • プロセスが変更を要求した場合、カーネルは直ちにこれらの変更をファイルシステムに書き込まない.
  • カーネルは、ディスクの実際の変更が可能になるまで、変更をRAMに保存します.
  • $ sudo dd if=<input> of=<output> bs=1M # 이렇게 하면 Write하는 동안 Bg에서 동작중이다.
    $ # 여기서 왔다고 바로 다 디스크에 Write 된 것이 아니다. (Non-blocking)
    
    # ============================================================================= #
    만약 Blocking 허용하고, Synchronization이 중요하면 '&& sync' 명령을 덧붙인다.
    $ sudo dd if=<input> of=<output> bs=1M && sync
    ...blocking

    Cache

  • カーネルは、RAMがディスクから読み出したデータブロックをキャッシュに格納する.ディスクを読み込む必要がなく、プロセスが繰り返されます.

  • swap

  • RAMが満タンの場合は交換が必要(RAMコンテンツ->ディスク)
  • $ free -h

  • 現在のメモリ使用状況とSwap情報を表示
  • free -hオプション運転時表示Human-Readable
  • スワップスペースの作成


    1.交換用パーティションの作成

  • 一つのパーティションを交換スペースにする
  • 空のパーティションでなければならない
  • 使用
  • mkswap <dev>コマンド.
  • swapon <dev>カーネルにスペースを登録する.
    ->エクスチェンジパーティションを作成したら、ファイルに新しいエクスチェンジアイテムを追加できます/etc/fstab
  • fstab登録
  • sdb 5をswapパーティションとして登録する場合は、/etc/fstab起動ごとに自動的にマウントする.
  • # ===== /etc/fstab ====== #
    /dev/sda5	none	swap	sw	0	0

    2.スワップファイルの作成

  • 次のコマンドを使用して空のファイルを生成します.これをスイッチングプールとして初期化し、スイッチングプール(swappool)に追加します.
  • $ dd if=/dev/zero of=<swap_file> bs=1024k count=<num_mb>
    $ mkswap <swap_file>
    $ swapon <swap_file>
  • bs=1Mもしそうであれば、ファイルを交換するcount=100生成
  • 3.スワップファイル/パーティションのダウングレード

    $ swapoff <swap partition | swap file>