タグ

cacheに関するhirafooのブックマーク (8)

  • キャッシュシステムの Thundering Herd 問題対策モジュール Cache::Isolatorというのを書いた。 - blog.nomadscafe.jp

    やや大袈裟な名前ですが「memcachedにおけるキャッシュシステムの Thundering Herd 問題への対策案」とか「キャッシュシステムの Thundering Herd 問題への対策案。その2 排他制御」で書いていたコードをモジュールにした github: https://github.com/kazeburo/Cache-Isolator 機能としては、平行動作数を制御できるget_or_setと、一定の確率で少し早く有効期限が切れるキャッシュの保存、取得、削除あたりがあげられます 使い方ですが、まず、get_or_setの例。 my $isolator = Cache::Isolator->new( cache => Cache::Memcached::Fast->new(...), concurrency => 4, # get_or_setのcallbackの最大平行動作

  • Kazuho@Cybozu Labs: ウェブサービスのためのMutex - KeyedMutex

    « キャッシュシステムの Thundering Herd 問題 | メイン | DBI::Printf - A Yet Another Prepared Statement » 2007年09月27日 ウェブサービスのためのMutex - KeyedMutex 昨日、以下のように書いたのですが、両者のうち2番目のアプローチを実現する Perl モジュール KeyedMutex を作成しました。 サーバにおける Thundering Herd 問題は良く知られていると思いますが、類似の現象はキャッシュシステムでも発生することがあります。 (中略) 対策としては、以下の2種類の手段があります。 バックエンドへの同一リクエストを束ねるような仕組みを実装する エクスパイヤ以前の残存時間が一定以下となった段階で、キャッシュエントリのアップデートを開始する これらの手法には、それぞれメリットとデメリッ

  • Kazuho@Cybozu Labs: キャッシュシステムの Thundering Herd 問題

    « MySQL の高速化プチBK | メイン | ウェブサービスのためのMutex - KeyedMutex » 2007年09月26日 キャッシュシステムの Thundering Herd 問題 サーバにおける Thundering Herd 問題注1は良く知られていると思いますが、類似の現象はキャッシュシステムでも発生することがあります注2。 通常、キャッシュに格納されるデータは、それぞれ単一の生存時間をもっています。問題は、頻繁にアクセスされるキャッシュデータがエクスパイアした際に発生します。データがエクスパイヤした瞬間から、並行に走る複数のアプリケーションロジックがミスヒットを検知し、いずれかのプロセスがキャッシュデータを格納するまでの間、同一のリクエストが多数、バックエンドに飛んでしまうのです。 対策としては、以下の2種類の手段があります。 バックエンドへの同一リクエストを束ねる

  • HTTP キャッシュ ヘッダの設定 - Cache-Control

    Cache-Control ヘッダを使用すると、コンテンツを直ちに有効期限切れにしたり、キャッシュ機能全体を無効にしたりすることができます。キャッシュされたページレット/ポートレット コンテンツが複数のユーザ間で共有可能かどうかは、このヘッダの値により決まります。

  • ブラウザキャッシュによる HTTP 高速化チューニング

    かれこれ一年ほど前に実施した実サービスでの apache のチューニングネタを思い出したように書いています。 以前いた部署では少ないサーバ台数で大量のリクエストを如何に処理しきるかってことに燃えていたので、静的コンテンツなどをブラウザに支障のない範囲で最大限にキャッシュさせ、サーバとネットワークの負荷を最小化させていました。 当時参考にした情報源は以下の3つでした。 どのようなレスポンスヘッダを返しておけばブラウザキャッシュを最大化できるかのテクニックがまとめられています。 ブラウザキャッシュとレスポンスヘッダ - murankの日記 Kazuho@Cybozu Labs: キャッシュの上手な使い方 [Studying HTTP] HTTP Status Code チューニングにおいて重要なのは自分自身での検証。というわけで自前で検証した結果と検証するために用意したプログラムを公開します。

  • IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第5章 暴露対策:プロキシキャッシュ対策

    第5章 暴露対策 プロキシキャッシュ対策 プロキシキャッシュへのコンテンツ残留 ブラウザとWebサーバの間には、いくつかのキャッシュメカニズムが働いていることが多い。 プロキシサーバのキャッシュ──企業等LANを運用している多くの組織体ではLANからインターネットアクセスを行う際プロキシサーバを経由して行うことが多い キャッシュサーバ─インターネットプロバイダの中には、会員のWebアクセスを円滑にする目的でキャッシュサーバを運用しているところがある これらのキャッシュメカニズムは、ブラウザからのリクエストによって得られたコンテンツをキャッシュに保持しておき、同じURLのリクエストが生じたとき、来のWebサーバにコンテンツを取りに行かず、キャッシュの内容をブラウザに渡すものである。 このようにキャッシュは、円滑なインターネットの利用に寄与してくれる。 しかし、コンテンツによっては、ただひと

    hirafoo
    hirafoo 2010/01/14
    Cache-Control: must-revalidate
  • squid.conf squid 設定ファイル 日本語 Proxy キャッシュ

    これは、デフォルトのSquid設定ファイルです。Squid.2.5用のsquid.confをベースを基に説明しています。 以前(Squid2.0ベース)のSquid.confの説明はこちらに置いてあります。 ドキュメンテーションについては、 http://cache.is.co.za/squid/ を、またFAQについては http://squid.nlanr.net/ のホームページを参照すると良いでしょう。 ※squid.confでミスや不明な点を見つけたらメールください。 ネットワーク・オプション TAG: http_port Usage: port hostname:port 1.2.3.4:port SquidがHTTPクライアント・リクエストを受け取るソケット・アドレス。 多数のソケット・アドレスを指定してもよい。 3つの形式があります: ・ポート ・ホスト名とポート ・IPア

    hirafoo
    hirafoo 2009/10/14
    peer_connect_timeout
  • preventing cache stampedes : maaash.jp

    webサイトとかで、重いSQLを使ったページを快適に表示するために、重いSQLの結果をキャッシュするためにmemcachedとかをよく使います。 キャッシュの有効期限が切れた後に、大量のリクエストに対応して大量の重いSQLが走ると困るので、どうしよう。 これをthundering herd 問題といったり、cache stampede, database stampedeというそうです。 キャッシュ切れた後にががっとくるやつ、です。 A. キャッシュの有効期限が切れる B. SQL発行 C. SQLの結果を受け取る D. キャッシュにつっこむ A-D.の間に大量のリクエストが来ると、重いSQLが走るので困ります。 Kazuhookuさんが書いています。 キャッシュシステムの Thundering Herd 問題 対策としては、以下の2種類の手段があります。 * バックエンドへ

  • 1