タグ

cacheに関するsabroのブックマーク (28)

  • Varnishでテストコードを書こう! | GREE Engineering

    はじめまして、サーバ基盤チームの田中祥平(@xcir)です。 最近入社しまして、チームではいわなちゃんと呼ばれています。よろしくお願いします。 入社してからGREEの配信システムをVarnish Cache(以下Varnish)に置き換える仕事をしていたのですが、少し前に問題なく山を超えました。 そこで今回利用したVarnishの特にテスト機能について紹介しようと思います。 なお、今回の説明に利用するVersionは3.0.3です。 Varnishとは VCLというドメイン固有言語をもち、キャッシュもできる高速リバースプロキシです。 if文が書けるので柔軟に記述しやすいという特徴があります。 たとえば/admin/以下に許可したIP以外からのアクセスは弾くと言ったことは以下のように記述できます。

    Varnishでテストコードを書こう! | GREE Engineering
  • 改行削除するくらいなら gzip したらいいじゃない

    CSSJavaScript ファイルなどを gzip 圧縮して転送量の削減や Web サイト表示速度の向上を実現する方法を解説。既存 Web サイトのソースには一切手を加えない方法でまとめています。おまけでキャッシュ関連の記述もあり。 いや、1バイトの無駄もゆるせねぇんだよとか、難読化したいとかなら別にやればいいんですけど、CSSJavaScript ファイルの改行やスペースを削除しただけでファイル容量圧縮、読み込み速ーい的なこという人がいるので今さらですが書いてみます。すでに色々なところで書かれてるのでかぶるのは承知の上で。 改行や無駄なスペースなどを削除すること自体が悪いと言ってるわけではありませんのでその辺は誤解ないようにお願いします。ただ、gzip 使って圧縮するのに比べたら、改行削除して削れるファイルサイズなんて微々たるものです。もちろん、両方やれば最大限ファイルサイ

    改行削除するくらいなら gzip したらいいじゃない
  • CPU とキャッシュのはなし - graphics.hatenablog.com

    別にグラフィックスに限ったことじゃないし、そもそも論文とか全然関係ないけど。GPU 周りでもたまに話題になるし、自分でもたまにわけわからんくなるから整理しとく。 メインメモリは遅い CPU からメインメモリにデータを読みに行く場合、これはとにかく遅い。例えばレジスタにあるデータを読みに行く場合と比べると、だいたい数倍から数100倍の遅さ。ヤバいからなんとかしよう。もっと早くアクセスできる場所にデータおいとこう。 キャッシュライン CPU がメインメモリからデータを読み出すとき、必ず小さなメモリチャンクをキャッシュ上にロードする。ロード単位はプロセッサによるけど、だいたい 8 ~ 512 バイト。このロード単位をキャッシュラインと呼ぶ。 アクセス対象のデータが既にキャッシュに載ってる場合は、メインメモリじゃなくてキャッシュを読みに行く。ない場合はメインメモリにアクセスするけど、そのデータはも

    CPU とキャッシュのはなし - graphics.hatenablog.com
  • x3.js JavaScript rapidly reloader release - latest log

    x3.js というものを創ってみました。 http://code.google.com/p/x3-js/ JavaScript をキャッシュしておき、JavaScript ロード時に発生するボトルネック/ブロッキングやネットワークアクセスコストをゼロにしようという、ありそうでなかったライブラリです。 WebSQL が使える環境なら WebSQL を、だめなら WebStorage にキャッシュします。 x3.js のターゲットは iPhone, Android です PC ブラウザでも動作します。IE6 と IE7 対応は特別料金となっております 5MB までのファイルをキャッシュ可能です ページの読み込みが落ち着いてから、サーバにアクセスしキャッシュを更新する機能があります x3.js は Minified で 2.2kbyte。ページに直接埋め込んで使います js の一化を強制します

    x3.js JavaScript rapidly reloader release - latest log
  • basket.js - a simple script loader that caches scripts with localStorage

    A simple (proof-of-concept) script loader that caches scripts with localStorage Tweet Version 0.5.0: basket.js (2.2 kB) basket.min.js* (0.7 kB gzipped) basket.full.min.js (3.8 kB gzipped) CDN-Usage * = Use this version if you want to manually handle the rsvp.js dependency If you're seeing this message, something has gone wrong. Please ensure you are testing this page using a HTTP server. Introduct

  • クエリキャッシュは切ったほうがいいんじゃなイカ? : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の2日目は、昨日に引き続き、MySQLを骨までしゃぶるためのテクニックです。 ソーシャルゲームは一般サイトよりもDBへの更新クエリの割合が多くなりがちです。更新クエリが多いMySQLでは、通常は有益なクエリキャッシュが無益どころか有害になります。 そもそもキャッシュヒット率が低い。20%以下なんてこともザラにある しかもクエリキャッシュの更新はグローバルなロックを取得する からです。特に後者は問題です。ただの参照クエリもクエリキャッシュを更新する上に、更新クエリはクエリキャッシュの全エントリをチェックして、更新したテーブルに影響がありそうな全キャッシュをdiscardしていくためです。たとえばユーザーの行動力のようなパラメータを格納した参照も更新も多いテーブルでクエリキャッシュが有効になって

    クエリキャッシュは切ったほうがいいんじゃなイカ? : DSAS開発者の部屋
  • 3000req / sec と戦う - だるろぐ

    ざっくり概要 ピークで3000req / sec 毎分コンテンツ更新要求 コンテンツ更新の際は他所からデータをapi経由で受け取る コンテンツ更新にはTheSchwartzを使用 なコンテンツを色々してきたログ。 尚、ここに書く技術は大半が周囲のギークな方々にサポートしてもらったもので、僕自身が何かしたわけではない。残念すぎる。 構成 internet -> www(squid -> apache) -> app(memcached -> app) -> db フロントエンド wwwサーバがapacheとsquidを動かしている。apacheがリクエストを受け、squidのキャッシュが有ればそれを返し、無ければバックエンドのappサーバへproxy。 バックエンド appサーバがmemcachedとアプリを動かしている。 それぞれ冗長化してるけど、リクエスト数の割に台数は少ない。 技術があ

    3000req / sec と戦う - だるろぐ
  • 夏に出したVarnishCache入門をPDFで公開しました – cat /dev/random > /dev/null &

    夏コミで同人誌でだしたVarnishCache入門ですがPDFで公開します。 幾つか公開したかった理由はあったのですが、実際コミケまで足を運んで買っていただいた方にちょっと申し訳ないかなと 電子出版での有料配布も考えていたのですが 64P程度で大げさかなというのと、もう一ヶ月経って3.0.1も出たしいいかなと思い公開します。 内容的には初心者向けとなっていますので、そこまで高度な内容については記述していません。 なお3.0.1が公開されたためページ数が変わらない範囲で、その内容についても一部加筆しています。(fallback directorとか) Varnishを使ってみようと考えている方の参考になればと考えています。 PDFのダウンロード ちなみに、時間と印刷費の関係で書ききれなかった事がたくさんあるのですが(転記されないパラメータやら、varnishtestとか・・・) そういうこと

    夏に出したVarnishCache入門をPDFで公開しました – cat /dev/random > /dev/null &
  • isuconお遊びチーム(事前社内β組)の設定あれこれ - hideden.hatenablog.com

    ISUCONに行ってきました。社内での事前βテストに参加して問題を知っていたので出場はせず。社内β参加を持ちかけられたときは、正直「めんどくせーなw」が素直な感想だったんですが、実際にやってみるとスコアがリアルタイムにわかる&ちょっとずつ自分のスコアが上がっていくってのは楽しくて、わりと気でチューニングしてしまいました。 さて、戦でも14時頃からお遊び用としてサーバー一式が解放されたので、大人げも無くそこで112500req/minをたたき出して参加者のやる気を削いだ(・・と懇親会で言われました。色々すいません!)構成について。 reverse proxy nginx(1.0.5) ngx_http_memcached + ngx_http_ssi_filter + ngx_http_scgi + ngx_http_upstream_keepalive(3rd party plugin

    isuconお遊びチーム(事前社内β組)の設定あれこれ - hideden.hatenablog.com
  • RAMディスク不要!FirefoxのキャッシュをRAMに置いて高速化する方法! | フリーソフトラボ.com

    Firefoxに限った事ではありませんが、一般的なウェブブラウザはウェブページにアクセスするたびに、次回以降の表示速度を高速化するため、また相手側のサーバー負荷を軽減するために、そのページ内で表示される画像や外部ファイルなどをPCのローカルストレージに”キャッシュ”として保存する仕組みになっています。 つまり、ウェブページを開くたびにハードディスクから”キャッシュ”として保存されているデータを読み込んだり、あたらしく書き込まれてくことになりますが、この”キャッシュ”保存場所をハードディスクではなく、読み込み・書き込み共にアクセスの速いRAMディスクに変更することでブラウジングの高速化が期待できるのはよく知られていることです。 ただし、RAMディスクを用意するためには通常は専用ソフトウェアが必要になるなど、必ずしも手軽に実践できるとは言えないのが難点ですが、FirefoxならわざわざRAMデ

    RAMディスク不要!FirefoxのキャッシュをRAMに置いて高速化する方法! | フリーソフトラボ.com
  • 『SSDをキャッシュデバイスとして使用できるFlashcacheの紹介』

    こんにちは。アメーバでインフラエンジニアをやっているSakamotoです。 今回はSSDをキャッシュデバイスとして使用できるFlashcacheについて書きたいとおもいます。 ■Flashcacheとは Facebookが開発したSSDをキャッシュ領域として使用し、 データを書きこむ際にHDDと同時にSSDに書き込み(ライトバック)を 行うことができるカーネルモジュールです。 データの読み出し時もSSDを参照するため高速になります。 Device-Mapper(論理/物理デバイスのマッピング機構)を使用しており、 OSからはキャッシュで使用する領域とデータとして使用する領域が 論理的に一つのスライスとして認識されます。 MySQLのInnoDB用に開発されたようですが、 上記のことから他アプリケーションでも通常のディスクとして キャッシュ領域を意識することなく使用することができます。 今回

    『SSDをキャッシュデバイスとして使用できるFlashcacheの紹介』
  • ブラウザキャッシュによる HTTP 高速化チューニング

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

  • ウノウラボ Unoh Labs: Varnishの使用例とか

    一部の人に鳥の人として認識されているyamaokaです。 フォト蔵では最近Varnishをコンテンツキャッシュに利用しています。 具体的には、写真のサムネイルなどの静的なコンテンツをキャッシュするために使っていたりします。 Varnishはコンテンツキャッシュ機能を備えたHTTPアクセラレータです。 同じような目的に使われるプロダクトとしてSquidがありますが、 それよりも高速に効率よく動作することを売りにしています。 サーバーへのインストールについてはCentOSなどRed Hat系のLinuxであれば EPELからrpmを入手するか、 ソースを展開するとredhatディレクトリにspecファイルが用意されているので そちらを利用すれば最新版のrpmが作成可能です。 以下、rpmを使ってインストールしたものとして話を進めます。 起動設定は/etc/sysconfig/varnishです

  • JavaScriptで画像のオフラインキャッシュを実装する - KAYAC Engineers' Blog

    もうすぐクリスマスシーズンなんですかね?間です。 巷で話題のイケメンホイホイ(以下イケホイ)ですが、このたびiPhone用サイトがオープンしました。 それにあわせて新機能も搭載!イケメン写真にタグを付ける機能と、iPhoneでぼんやり眺めているだけで楽しいビューア機能です。 タグ機能はPC版にも搭載されましたので、ぜひぜひみんなで色んなイケメンにタグを付け合ってくださいね。 タグが付くことで、オススメの精度が上がりますよ! ビューア機能は、自分がゲットしたイケメンズがiPhone上で次から次へと表示される機能です。 オフラインでも表示できる機能付き! 電車の中で見るも良し、卓上に置いて眺めるも良しです。 あなた好みのイケメンがゾロゾロ。イケメンホイホイのサイトはこちら! …うーん、ユーザ層がかぶらなそうだな、この記事。 さてさて、題はHTML5の機能を使った画像のオフライン表示について

    JavaScriptで画像のオフラインキャッシュを実装する - KAYAC Engineers' Blog
  • nginx+squidで画像キャッシュサーバーの作り方 - hideden.hatenablog.com

    仕事で画像キャッシュサーバーを構築した時のメモ。大規模事例の設定例が検索してもあまり見つからなかったので同じような境遇の誰かの参考になれば。 ピーク時のトラフィックは数Gbps 画像総容量は数十TB バックエンドのstorageが複数種類 規模とアクセス量とアクセスされる画像の種類が多いので、squidでdisk cacheを使用するとCOSS等を使用してもdiskIOで詰まる為、全てon memory cache。cache容量を確保する為に必然的にcacheサーバーの台数も数十台。 1. squidをsibling構成で並列に並べる cache_peer 10.0.1.1 sibling 80 3130 no-query no-digest proxy-only cache_peer 10.0.1.2 sibling 80 3130 no-query no-digest proxy-o

    nginx+squidで画像キャッシュサーバーの作り方 - hideden.hatenablog.com
  • Tokyo TyrantとテーブルDBでリアルタイム検索 - mixi engineer blog

    ドラクエは卒業して、もっと英語漬けをやっているmikioです。さて今回は、データベースサーバTokyo Tyrantとテーブルデータベースを使ってリアルタイム検索システムを構築する方法について語ります。 テーブルDBを分散させたい Tokyo TyrantでもテーブルDBがサポートされているわけですが、これはリアルタイム検索システムへの布石です。テーブルDBは任意のコラムにインデックスを張ることができ、時系列のコラムにインデックスを張ればその値によって古いコラムを効率的に消すことができます。チュートリアルの「Persistent but Expirable Cache」でもその方法を示しています。また、任意のコラムに分かち書きトークン方式もしくは文字N-gram方式で転置インデックスを張ることができます。これらを総合すると、最新のデータのみを保持してサイズと性能を一定に保ったインデックスを

    Tokyo TyrantとテーブルDBでリアルタイム検索 - mixi engineer blog
  • Twitter、進化するアーキテクチャ

    原文(投稿日:2009/6/26)へのリンク Twitterサービスチームの主任エンジニアであり、主に最適化とスケーラビリティを担当しているEvan Weaver氏が、QCon London 2009においてTwitterのアーキテクチャ、とりわけ過去一年にわたって行ってきたウェブサイトの最適化について語った。 Twitterで使われているツールの多くはオープンソースである。そのスタックは、フロントサイドにRails、中間のビジネス層にC、ScalaJava、データストアとしてMySQLを利用してつくられている。すべてがRAM上に保持されており、データベースは単なるバックアップである。Railsフロントエンドはレンダリング、複合キャッシュ、DBクエリ、同期的挿入を扱う。このフロントエンドは、MySQLクライアント、Memcachedクライアント、JSONクライアントなどの、多くはCで書

    Twitter、進化するアーキテクチャ
  • mod_libmemcached_cacheでApacheのcacheをmemcachedに保存する : blog.nomadscafe.jp

    mod_libmemcached_cacheでApacheのcacheをmemcachedに保存する Apacheのmod_cacheのキャッシュ保存先にmemcachedが使えればいいのにと長年思ってきましたが、mod_libmemcached_cacheがそれを実現してくれました。 しかも、libmemcachedを利用しているので、性能も高く、またConsitent Hashingも使えますし、バイナリプロトコルもばっちりです。 図にするとこんな感じ。revserse proxyのcacheがmemcachedになるので、cache効率が上がり、またApplicationサーバからも同じmemcachedが参照できるのでcacheを変更したりできるかもしれません。 導入 mod_libmemcached_cacheはgithubから入手できます http://github.com/a

  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • GREE Engineer's Blog coming soon...

    コンテンツへスキップ ナビゲーションに移動 Engineers' Blog Awards 2024 を実施しました!2024/06/26yutaka.sashimaこんにちは、開発企画部の佐島です。 Engineers' Blog Awards 2024 という技術ブログ執筆者を称える社内イベントを開催しましたので紹介したいと思います。 開催背景 きっかけは昨年の新卒エンジニア研修 […] InfoGREE Engineers’ Bash 2024 を6月19日(水)に開催しました!2024/06/26yutaka.sashima 勉強会 こんにちは、開発企画部の佐島です。 GREE Engineers’ Bash 2024 という社内限定イベントが昨年に引き続き開催されましたので紹介させて頂きます。 (GREE Engineers’ Bash については […] InfoSlackオート

    GREE Engineer's Blog coming soon...