タグ

cacheに関するzsiarreのブックマーク (18)

  • アプリケーション内でhttpsによる外部APIを叩いているサーバのメモリ使用量が増加し続ける件について - s_tajima:TechBlog

    問題 アプリケーション内でhttpsによる外部APIを叩いているサーバのメモリ使用量が増加し続ける件について調べた。 該当のサーバでは、以下のようにメモリの使用率が徐々に上昇していく。 また、アプリケーションのプロセス自体がメモリを消費しているわけではない状態。 原因 調査すると、このバグ仕様を踏んでいるのではないかと思われるページを見つけた。 https://bugzilla.redhat.com/show_bug.cgi?id=1044666 内容としては、curlを実行した際に /etc/pki/nssdb/以下の存在しないファイル(毎回違うパス)に対してaccessシステムコールが大量にコールされ、 negative dentry cacheが溜まっていき、メモリ使用量が圧迫されるというもの。 実際、この状況が起きているサーバを調べるとメモリ使用率のうち多くを占めているのはnega

    アプリケーション内でhttpsによる外部APIを叩いているサーバのメモリ使用量が増加し続ける件について - s_tajima:TechBlog
  • Tips - 静的リソースのURIに?をつけるべからず : 404 Blog Not Found

    2014年03月14日20:00 カテゴリTipsCode Tips - 静的リソースのURIに?をつけるべからず Webを支える技術 HTTP、URI、HTML、そしてREST 山陽平 であればなおのことこの実装はNG。 ブラウザのキャッシュを利用できれば、余分なリクエストを減らすことができます。はてなブログでは、なるべく長い間ブラウザにキャッシュを保存するために、JavaScriptなどの一部の種類のファイルのレスポンスに、以下のようなヘッダを指定しています。 はてなブログにおけるページ表示速度改善の取り組みについて - Hatena Developer BlogはてなブログではJavaScriptを配信する際には、上記のURLのように、?よりあとの部分にabc078624b2a746c618156847827166bのようなバージョンIDを付与しています。JavaScriptが変更

    Tips - 静的リソースのURIに?をつけるべからず : 404 Blog Not Found
  • 一時ファイルとdentry cacheとメモリ - blog.nomadscafe.jp

    わりと長い間悩んでいたんだけど、最近解決したのでメモ。 サービスで利用しているsmalllightの画像変換サーバが、Apacheが使っているメモリ以上のメモリを使用し、Swapしたりメモリ枯渇でサーバがダウンするなどのことが何度かありました。 ↑メモリの動きはこんな感じ いろいろ調べた結果「dentry cache」なるものがメモリ多くを占めていることがわかりました。dentry cacheはディレクトリやファイル名とinodeとを結びつけに使われるキャッシュです。smalllightでは画像を変換する際に一時ファイルを作成するので、その情報が残るようです。 手元で再現させる 番で使っているサーバはCentOS5系ですが、手元のVagrant上のCentOS6(ファイルシステムはext4)で、再現させてみました。 use Parallel::Prefork; use File::Tem

  • mod_cacheとVaryヘッダ - ダメ人間オンライン

    mod_cahceで画像をキャッシュしてる場合は画像に"Vary: User-Agent"つけないようにしましょうという話 はい 外部ストレージで画像を管理してて、表示時に毎回その外部ストレージに取りにいかなくて済むようにフロント側でキャッシュしとくというのはよくある話(?)だと思います。 例えばapacheの設定で RewriteEngine on RewriteRule ^/images/(.+)$ http://external.storage.dameninngenn.com/images/$1 [P,L] <IfModule mod_cache.c> CacheRoot /dev/shm/mod_cache CacheEnable disk /images # ... </IfModule>みたいにしておくと /images/hoge.jpg にリクエストきた場合キャッシュされて

    mod_cacheとVaryヘッダ - ダメ人間オンライン
  • Javaで使えるオープンソース・キャッシュライブラリ - CLOVER🍀

    最近は、仕事でEhcacheを使っていたり、他にも調べたりすることがあったので、ちょっとJavaで使えるオープンソースなキャッシュライブラリについてまとめてみることにしました。 あ、そんなに大した内容ではないので、ご期待なさらぬよう…。 でまあ、改めて調べてみた感想としては、Ehcacheが現状デファクトになっていることが改めてわかった感じですね。Javaのキャッシュライブラリって、そこそこ数が見つかるんですけど、開発が止まってしまっているものが多かったり、ドキュメントも全然ないというものもけっこう多くて、割とカオス…。 しかも、軽量で気軽に導入できるキャッシュライブラリって、今はない感じですね。Guavaがキャッシュだけで独立していれば…。EhcacheとかInfinispanだと、機能で困ることはないと思いますが、ちょいと大きいですよね。 調べる時に気になるのは、以下のようなところでし

    Javaで使えるオープンソース・キャッシュライブラリ - CLOVER🍀
  • O+P Insights: Improving Linux performance by preserving Buffer Cache State

    The file system cache (buffer cache) helps programs to get to their data blocks faster by keeping recently used file blocks in memory. If you copy a large file tree, this has a devestating effect on the cache since all the copied data will also end up in the cache, force other data blocks out of the cache. This is very bad for system performance since of all the other processes on the system that

  • PHP5.5 のコードキャッシュは APC から Zend OPcache へ

    PHP5.5 からコードキャッシュとして標準バンドルされた Zend OPcache を試してみました。 第6回関西PHP勉強会で Zend OPcache についてLTしたのでインストールやベンチマークなどはこちらで。 beta4時点では、Zend OPcache は拡張で提供され、opcache.so インストールされる。 Zend OPcache を使うには、php.ini で zend_extension=opcache.so の記述が必要。 やっぱりデフォルトでインストールされるのは楽。 PHP5.5リリースと共に使えるので安心。(PHP5.4 対応の APC はまだ beta) ユーザデータのキャッシュはできないので、別の方法が必要。 OCP – OPcache Control Panel Zend OPcache の利用状況(設定、キャッシュ量など)が確認できるスクリプトが

  • Webアプリにおけるキャッシュ。オレオレ事例 - ゆーすけべー日記

    Webアプリにおいて、アクセスやデータ量が多く/大きくなってくると、 バックエンドのパフォーマンスが低下しがちです。 MySQLなどのRDBMSにデータを置いている場合は適切に クエリーを改善する、インデックスを張る、といった策で解決する場合もありますが、 キャッシュを効果的に利用することでより高負荷に対応できる可能性があります。 また、外部APIへの問い合わせなど、どうしてもネットワークや他のリソースのレスポンスタイムに 引きずられる部分に関しては情報を手元にキャッシュしておくと何かとよいでしょう。 今回はWebアプリケーションのレイヤーで最近僕がどのようにキャッシュを使っているのか? の事例を紹介しつつまとめてみたいと思います。 キャッシュについてとその基 そもそもキャッシュとは、簡単にふわっと表現するならば、 「一時的に情報を手元の近い場所に置いておいて利用する手法、もしくはその一

    Webアプリにおけるキャッシュ。オレオレ事例 - ゆーすけべー日記
  • ナイーブなオンメモリキャッシュ実装をかいた - tokuhirom's blog

    https://github.com/tokuhirom/Cache-Memory-Simple/blob/master/lib/Cache/Memory/Simple.pm Expire されたデータがとれなくなるだけのナイーブなキャッシュ実装をかきました。 わりとみんな手でかいてるとおもうんですが、手でかくとバグりやすいしテストかくのも面倒なので CPAN にあげておくといういつものアレです。Expire がきいてシンプルではやそうなのがなかったんでまあ。 10秒ぐらいhttpdの中にオンメモリキャッシュしときたいなあ、という時などにどうぞ。 使い方は以下のようなかんじです。 use Cache::Memory::Simple; use feature qw/state/; sub get_stuff { my ($class, $key) = @_; state $cache = C

  • kernel:Memory Manage(1) Page Cache & Writeback - Simple is Beautiful

    Linuxでは空いているMemoryは積極的にファイル用のCacheに使用する MemoryはPageという単位で分割して管理されており、Cacheに使用されているMemoryをPage Cacheと呼ぶ Memoryのチューニングのポイントは無駄なPage Cacheを残さないこと Page Cacheにデータを書き込んだ時点でProcessからの書き込み処理は終了するが、実際のデータの書き込みはHDDに後に書き込まれる(Writeback処理) LinuxにおけるWriteback処理は、"pdflush"というデーモンが担当する "pdflash"デーモンのパラメータ パラメータ 内容 vm.dirty_backgroudo_ratio Processの書き込み処理は終了したがまだWritebackされていないPageの、全物理Pageに対する割合(%)が"vm.darty_back

    kernel:Memory Manage(1) Page Cache & Writeback - Simple is Beautiful
  • キャッシュエンジンの比較(3/3) | IIJの技術 | インターネットイニシアティブ(IIJ)

    (※)このページで紹介している事項は記事初出時点の情報に基づいたものです。ページはアーカイブとして掲載しています。 ツイート 2012年6月26日 前回、前々回は、キャッシュサーバに期待される役割と、キャッシュサーバやキャッシュエンジン、特にVarnish Cache、Apache Traffic Serverについて、IIJで行った比較実験の結果を交えて詳しく説明しました。最後に、nginxについて取り上げます。 nginx nginxは、既に紹介している機能のほかに、下記のような特徴を持っています。 非同期のイベント駆動による高速な処理能力 サービスを止めずにバイナリをアップデートできる 豊富な3rdパーティ製モジュール nginxは、既に紹介している他のキャッシュエンジンと同様に、接続を非同期のイベント駆動の仕組みで処理しますが、処理能力はその中でも高く、多くの接続が集中するサイト

    キャッシュエンジンの比較(3/3) | IIJの技術 | インターネットイニシアティブ(IIJ)
  • キャッシュエンジンの比較(2/3) | IIJの技術 | インターネットイニシアティブ(IIJ)

    Varnish Cache Varnish Cacheは、前回述べたVCLという設定ファイルの記述方法において、下記のような特徴があります。 設定ファイルの動的読み込み インラインCによる設定 Varnish Modules(VMODs)による拡張 probeによるオリジンサーバのヘルスチェック まず、Varnish CacheではVCLで記述された設定ファイルをC言語として解釈します。設定をC言語として解釈した後に設定ファイルをコンパイルし、共有ライブラリを作成します。最終的には、Varnish Cacheが設定ファイルから生成された共有ライブラリをリンクすることで、設定が反映されます。このような実装により、Varnish Cacheではプログラムを作成する感覚で、柔軟性に富んだ設定ファイルを作成できます。また、コンパイルした結果をリンクさせているため、全体的に速度向上を期待できるという

    キャッシュエンジンの比較(2/3) | IIJの技術 | インターネットイニシアティブ(IIJ)
  • キャッシュエンジンの比較(1/3) | IIJの技術 | インターネットイニシアティブ(IIJ)

    大規模なサイトでは、クライアントからのアクセスを効率よく受け付けるためにオリジナルのコンテンツを保持するオリジンサーバのほかに、何らかのリバースプロキシも運用してコンテンツの配信をしています。まず、ここではリバースプロキシとして利用できるプロダクトの中からコンテンツキャッシュの機能(キャッシュサーバ)について説明します。 キャッシュサーバに期待される役割 コンテンツを配信する上で、キャッシュサーバには以下のような役割が期待されています。 コンテンツをキャッシュデータとして保持すること キャッシュデータを管理すること オリジンサーバへの問い合わせを減らすといった負荷分散をすること 大抵のキャッシュサーバでは、キャッシュしているコンテンツを有効期限(Time To Live : TTL)付きのキャッシュオブジェクトとして保持していますが、TTLを無視してキャッシュオブジェクトの更新をしたい、と

    キャッシュエンジンの比較(1/3) | IIJの技術 | インターネットイニシアティブ(IIJ)
  • page cache utilities for Linux

    pcu.git about / heads / tags page cache utilities for Linux $ git log --pretty=format:'%h %s (%cs)%d' 1b6b807 mincore: fix mismatched parentheses (2015-05-13) (HEAD -> master) e4dfd05 README: update license to GPLv2+ (2013-11-16) d167ac7 open_noatime wrapper to deal with EPERM on O_NOATIME (2013-09-15) a0eb499 pcu-fadvise: fall back if O_NOATIME fails due to EPERM (2013-09-14) 7c02591 Makefile: gh

  • @naota344の今週のLKML - Emacs ひきこもり生活

    今週は [PATCH v3] xen block backend. [RFC] [PATCH] drop_pagecache syscall [PATCH v3] xen block backend. http://permalink.gmane.org/gmane.linux.kernel/1129246 これは Xen のゲストにrawドライブをエクスポートするものです。LVMや iSCSIなどでも使えます。カーネル空間で動くので基的に速いです。 http://permalink.gmane.org/gmane.linux.kernel/1132295 ベンチマークの結果がこのメールでしめされています。 http://permalink.gmane.org/gmane.comp.emulators.xen.devel/103184 このメールの簡単なサマリによると xen-blkba

    @naota344の今週のLKML - Emacs ひきこもり生活
  • systemtapでファイルシステムキャッシュのヒット率を見る

    systemtapでファイルシステムキャッシュのヒット率を見る 2012-06-18 Linuxでは、自動的にメモリの空き容量をファイルシステムキャッシュ(以下単にキャッシュ)として使用するような仕組みが用意されている。MySQLでMyISAMを使う時のようにOSのキャッシュを使用するような仕組みを使っていたり、単にファイルをNFSで公開しているファイルサーバなどでは、このキャッシュがどの程度効くかによってかなりパフォーマンスが違ってくる。 多数のファイルが読みだされ、かつ読み出し対象ファイルの総容量が物理メモリ容量より多い場合(普通そうだと思うが)、どのくらいのキャッシュヒット率になっているかを知っておくのは、パフォーマンス改善の一助になる。しかし、あるファイルがキャッシュに載っているかどうかを調べたり、ファイルをキャッシュに載せたりするための単純なコマンドというのは実は存在していない(

  • Linuxエンジニア日記 ページキャッシュの効率化

    メモリチューニングの一環としてページキャッシュの効率化を纏めてみます。 ちなみにLinuxは空きメモリをがしがしファイルI/O用のキャッシュとして利用しますが、 メモリはページ単位で分割管理されており、これらのキャッシュをページキャッシュと言います。 (これらは使われっぱなしではなく頻繁に割当て、解放が行われています) ではページキャッシュのチューニングとは何をするかと言うと、 要は無駄なページキャッシュを残さないようにしてあげればよいのです。 通常のI/O処理はライトバックで処理されているので、ページキャッシュに書き込まれた時点で プロセスには書き込み完了通知が返され、キャッシュ上のデータはバックグランドでディスクに 書き込まれていきます。 ライトバックしたキャッシュ上のデータは解放可能なデータとなりますので、 頻繁にライトバックをしてあげる事でキャッシュの解放サイクルを早める事が出来ま

  • Linuxのメモリ上のキャッシュを解放する - 元RX-7乗りの適当な日々

    いつも思いだすのに時間がかかるというか、ググるのでメモ。 例えば、ベンチマークとかをとっていて、残ったキャッシュを奇麗さっぱりに消したい時とかに使う。 Linuxのメモリで保持しているキャッシュをクリアするには、以下を実行する。 # sync # echo 3 > /proc/sys/vm/drop_caches 値の意味としては、、、 1: ページキャッシュを解放 2: dentry、inode を解放 3: ページキャッシュ、dentry、inode を解放 以下を参考に。 /proc/sys/vm/drop_caches (Linux 2.6.16 以降) このファイルに書き込みを行うことで、クリーンなキャッシュ、dentry、 inode をメモリ上から外し、そのメモリを解放する。 ページキャッシュを解放するには、 echo 1 > /proc/sys/vm/drop_caches

    Linuxのメモリ上のキャッシュを解放する - 元RX-7乗りの適当な日々
  • 1