skillup

技術ブログ

サーバー・ネットワーク

OSキャッシュの仕組み

投稿日:

大規模サービス技術入門のつづきです。

主にOSのキャッシュメモリについてです。

  • メモリとディスクの速度差は10万倍~100万倍
  • いかにディスクへのアクセスを減らすかがポイント
  • OSは各プロセスにメモリの番地(物理アドレス)を直接は渡さず、代わりに論理アドレスを渡す(プロセスがメモリの管理をする必要をなくすため)
  • ディスクから読みだされたデータはメモリ上に置かれ、一旦おかれるとしばらくは解放されない(ページキャッシュ)
  • Linuxではデータを常にキャッシュをしようとするので、sar -r でみるとあまり使っていないサーバーでも%memusedに50%ぐらいは割り当たっている
  • メモリを増やす→キャッシュに大量のデータを取り込める→その分IO負荷が減る(数値的にはiowaitの割合がへる)
  • データ規模 < 物理メモリならすべてのデータをメモリ上にキャッシュできる
  • メモリにデータが乗り切らないときにはじめて、複数のサーバーによる負荷分散を考える(DBの場合、単純にこうはいかない)
  • 単純に台数を増やしてもキャッシュは増えない(キャッシュできない部分までコピーしてしまうことになるため)
  • キャッシュの容量を増やすには局所化(アクセスのパターンごとに担当するサーバーを分ける)などの工夫が必要

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

docker上でミニサービスを起動させるまで

dockerで何とかホストOS上でサービスを起動させるところまでは終了。 Contents1 やったこと2 苦戦したこと やったこと CentOSのイメージを取得 [crayon-604693be67 …

no image

webサーバーのログの見方

サーバー監視の基礎となるWebサーバーのログ(主にApache)の見方について少し書いてみようと思います。Apacheで解説しますが、nginxでもほぼおなじです。 Contents1 モジュール読み …

no image

ansible mysql,cronなど

Contents1 ansibleでのMySQlのインストール (CentOS6)2 ansibleのcronインストール3 任意のコマンド4 ansibleオプション ansibleでのMySQlの …

no image

AWSのSNSについて

AWSについてここ2年ぐらい触っていますが、以前の現場ではリーダーの方が色々やられたおかげで根本的なところが理解できておらず、家でアカウントを作ってコツコツとやってます。 今回はSNSについて。 基本 …

no image

カレントディレクトリ以下のすべてのCR+LFをLFに

windows環境からファイルをアップしていると文字コードがバラバラだったりすることが多々あります。 まあ何がめんどくさいかというと差分がチェックできない。これが最悪です。 gitのdiffコマンドの …