skillup

技術ブログ

サーバー・ネットワーク

OSキャッシュの仕組み

投稿日:

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

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

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

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

執筆者:


comment

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

関連記事

no image

シェルスクリプトテキストファイルから配列&プロセス監視シェル

またまたシェルスクリプトネタなどを。 今回はtxtファイルの文字列を読み込んで配列に入れる処理ですね。 例えば aaa bbb ccc こんな文字列がテキストファイルに格納されていたとして、これを配列 …

no image

任意のログファイルのログローテションについて

本日は自作のログファイルをうまくローテーションさせる方法について。 自作でログを作っておりますと、日がたつにずれどんどんと容量が膨らんでいきます。 放置するととんでもない量になっていることが多いですね …

no image

環境変数の扱いについて

環境変数の扱いについてのメモ Contents1 .env.prodなど本番用のものをgitに入れておいてコピー2 S3などのストレージに入れておいて引っ張ってくる3 PaaSに登録4 SysteMa …

no image

ポート解放(CentOS7)

新サーバー構築をしていたときにwebサーバーとしてnginxを立てましたが、外部から接続ができません。 500エラーすら吐かれず、ログも残っていません。 こんな時はホスト自体にアクセスが届いていない可 …

no image

HTTPヘッダ・インジェクション+オープンリダイレクタ

Contents1 HTTPヘッダ・インジェクションとは?1.1 被害(ほぼクロスサイト・スクリプティング攻撃による脅威と同じ脅威)1.2 対策2 オープンリダイレクタとは?2.1 対策 HTTPヘッ …

アーカイブ