タグ

memcachedに関するwillnetのブックマーク (24)

  • GitHub - petergoldstein/dalli: High performance memcached client for Ruby

    Dalli is a high performance pure Ruby client for accessing memcached servers. Dalli supports: Simple and complex memcached configurations Failover between memcached instances Fine-grained control of data serialization and compression Thread-safe operation (either through use of a connection pool, or by using the Dalli client in threadsafe mode) SSL/TLS connections to memcached OpenTelemetry distri

    GitHub - petergoldstein/dalli: High performance memcached client for Ruby
    willnet
    willnet 2011/10/19
    memcache-clientの後継のgemっぽい/heorkuがオススメしてた
  • 第4回 memcachedを快適に利用するTips集 | gihyo.jp

    「memcachedの活用と運用 実践編」の連載も今回が最後となります。連載の第1回ではmemcachedの最新バージョンである1.4系で増えたオプションやよく利用されるオプションの紹介をしました。第2回目では安全にmemcachedを利用するために気を配るセキュリティや脆弱性について説明し、3回目では稼働監視やリソースモニタリングについて書かせて頂きました。 最終回では、これまで説明してこなかったmemcachedを快適に活用、運用するための小さめのTipsをいくつか紹介します。 指定したキーが含まれるサーバを探す 複数台のmemcachedのサーバを1つのグループとしてWebアプリケーションサーバなどのクライアントから利用している場合、特定のキーのデータがどのmemcachedサーバに保存されているのか知ることは容易ではありません。 memcachedのキャッシュオブジェクトの分散は、

    第4回 memcachedを快適に利用するTips集 | gihyo.jp
  • blog.katsuma.tv

    当然のごとくmemcachedが最速だろう。。。と思いきや、そうでもない結果に。むしろ一番遅い結果に。なんだこれーーーと思って調べ続けていたのですが、バインディングのgemのコードを追いかけるかぎり、どうもこれはmemcache-clientの実装が原因のよう。 これは、memcache-clientの実装はpure-rubyで実装されているのに対して、TokyoCabinet/TokyoTyrantのバインディングの実装はnativeコードで実装されてあるのが原因のようです。事実、TokyoTyrantはmemcacheプロトコルを実装しているので、memcache-clientを利用してTokyoTyrantにアクセスすると両者はこんな結果になりました。 user system total real

    willnet
    willnet 2010/08/31
    rubyのmemcache-clientはpure rubyでtokyotyrantのバインディングgemはnativeコード実装なので、rubyから使う分にはtokyotyrantの方が早い
  • mixi大規模障害について 解明編 - mixi engineer blog

    こんにちは、システム技術部たんぽぽGの森です。 先日のmixi大規模障害の原因となったmemcachedの不具合の詳細な解明ができました。 再来週まで発表を見合わせようと思ったのですが、早くお伝えしたほうがいいと思いましたので公開発表致します。 memcachedとlibevent memcachedはlibeventというライブラリを使用してクライアントからの要求(接続、コマンド送信)を処理しています。 libeventを使用するにはevent_baseという構造体を用います。 main threadはmain_baseを使用します。 static struct event_base *main_base; ... int main (int argc, char **argv) { ... main_base = event_init(); ... /* enter the ev

    mixi大規模障害について 解明編 - mixi engineer blog
  • 第2回 memcachedのセキュリティと脆弱性 | gihyo.jp

    memcachedを安全に運用するポイント 2010年8月10日のスラッシュドット・ジャパンにて「Memcached に潜むセキュリティホール」としてmemcachedの脆弱性に関する記事が上げられました。記事の内容をまとめると以下の2点となります。 bit.ly や Globworld、Gowalla といったサイトではインターネットから memcached へのアクセスが可能であった アクセスしたmemcached上にユーザーのログイン ID / パスワードが格納されており参照可能だった http://slashdot.jp/security/article.pl?sid=10/08/10/0052240 ここには2つの問題があったと考えます。1つ目はmemcachedをインターネットから接続可能な状態で設置してしまったこと、もう1つはキャッシュ上に置かれている必要はなさそうなパスワー

    第2回 memcachedのセキュリティと脆弱性 | gihyo.jp
    willnet
    willnet 2010/08/24
    不正アクセスとインジェクションの対策について
  • mixi大規模障害について その2 - mixi engineer blog

    こんにちは。システム技術部たんぽぽGの森です 補足を追記しました (2010/08/20 15時) 先日のmixi大規模障害についての続報です 今回は小ネタはありません はじめに まず初めにtwitter/blogなどを通じて今回の問題の解析を行っていただいたみなさんに感謝の言葉を捧げたいと思います kzk_moverさん stanakaさん mala(bulkneets)さん llameradaさん (順不同) ありがとうございました 書き漏らした人ごめんなさい memcachedはすごい 今回の件でmemcachedに対して不安感を持たれた方もおられるとお聞きしました 説明不足だったせいで誤解を与えてしまい申し訳ありません きちんと設定および監視を行っていれば通常の使用にはまったく問題はありません 弊社にて -c 30万で起動したmemcachedに対して、先のテストスクリプトに

    mixi大規模障害について その2 - mixi engineer blog
    willnet
    willnet 2010/08/21
    最大接続数を30万に増やすことでとりあえず対策
  • 第1回 memcachedの起動オプションを把握しよう | gihyo.jp

    1.4系で新しく追加された主な機能しては バイナリプロトコルの導入 マルチスレッドの標準化 統計の強化 などが上げられます。この1.4系の機能の詳細については前坂徹氏の連載「memcached 1.4の到来」が参考となります。ここではバージョン1.2.5と最新の1.4.5の起動オプションを比較しながら、新しく追加された機能や実際の運用で用いられる起動オプションについて説明します。 1.2系と1.4系の起動オプションの違い まず、memcachedの起動オプションの一覧(ヘルプ)を確認しましょう。memcachedのヘルプを出力するには、「⁠-h」オプションを使います。 $ memcached -h memcached 1.x.x -p <num> TCP port number to listen on (default: 11211) -U <num> UDP port number t

    第1回 memcachedの起動オプションを把握しよう | gihyo.jp
    willnet
    willnet 2010/08/17
    あとで
  • mixiがはまったmemcached(or libevent?)の問題を調べる人たち

    Neal Sato @nealsato 二日とも複数台のmemcachedが連続して落ちました。コアは吐かずにストンと落ちるので、原因追及に時間がかかりましたが、memcachedへの接続数が異常に多いと落ちる事は再現できました。 #mixi 2010-08-12 02:33:00 Neal Sato @nealsato memcachedが大量の接続を受けると突然停止をするので、memcachedへの接続数を減らし安定運用中。外部からの過剰アクセスではなく、サーバ追加→クライアント数増加→停止。 2010-08-12 08:45:50 Masahiro Nagano / 長野雅広 @kazeburo ファイルディスクリプタが不足してmemcachedが落ちたとして、そのときには、3万強の接続となってるはず。3万強の接続となるにはアプリケーションサーバ側のmax clientが平均60とし

    mixiがはまったmemcached(or libevent?)の問題を調べる人たち
    willnet
    willnet 2010/08/13
    3万以上のコネクションを続けると落ちる
  • [速報]mixiが障害の経緯を発表。原因はお盆のアクセス急増ではなく、memcachedの異常終了

    8月10日の17時20分頃から12日未明までの長時間にわたり、サービスが利用不能もしくは利用しにくい状況になっていた「mixi」。数度の断続的な復旧ののちに、日12日午前1時50分頃には復旧が完了し、現時点で全面的に復旧しているようです。 その障害の経緯について株式会社ミクシィの広報からプレスリリース「『mixi』のアクセス障害のお詫び及び復旧に関するお知らせ」として発表されました。 原因はアクセスの急増ではなかった プレスリリースの中で、今回の障害の原因は以下のように説明されています。 『mixi』のデータベースへの負荷軽減のために導入しているデータキャッシュシステムが複数同時に異常終了したことに伴い、データベースへの負荷が急増したため『mixi』を閲覧しづらい状態となりました。 高負荷かつ特殊な状態でのみデータキャッシュシステムの異常終了が発生していたため、根的な原因の究明に時間が

    [速報]mixiが障害の経緯を発表。原因はお盆のアクセス急増ではなく、memcachedの異常終了
    willnet
    willnet 2010/08/12
    memcachedへの接続数が異常に多いと落ちる
  • 第2回 RDBMSと組み合わせて使えるmemcached | gihyo.jp

    はじめに 今回からタイプ毎に代表的なNoSQLデータベースを扱っていきます。まず今回は、揮発性key-valueストアの代表としてmemcachedを取り上げます。 なお、利用したコードやプログラムはgithubに置いてあります。適宜参照してください。 どんなところに使える? memcachedの特徴は、何といってもデータの揮発性(memcachedサーバを停止すると全データが消えてしまうこと)です[1]⁠。そのため、データが消えても影響が小さいところに利用シーンは限られてきます。一方、連想配列(ハッシュ)のように使えて扱いやすいこと、様々なサイトでの事例があること、などから導入はしやすいです。 具体的な利用シーン memcachedの具体的な利用シーンとしては、以下の事柄が考えられます。 RDBMSから取得したデータのキャッシュ 消えても大きな影響の無いデータの保存 一般的には(1)のよ

    第2回 RDBMSと組み合わせて使えるmemcached | gihyo.jp
    willnet
    willnet 2010/06/04
    rubyでmemcachedを使う例/memcache-clientはバージョン1.6からConsistent Hashingに対応してる
  • rubyのmemcache-client-1.7.6にキャッシュをdelete(expire)できない不具合 - 暴想

    削除できないなぁ。。と思っていたら仕様変更?にともなう不具合なのかな。 これ、家では直っていないけど、みんな困っていないのかなぁ・・? 修正されているバージョンがgithubで公開されている。 http://github.com/billhorsman/memcache-client/commit/adfcb8115e74b051f7c858e21dc5fcaeb477a52a しかし、githubとgemの流儀がわからないんだけど、いくらgithubで修正済みのものが公開されているとしても、これをgemでインストールして良いものなの? その場合、どれをロードすべきなの? そして、その後のバージョンアップは? わからないなぁ。。。 となると、パッチを手元の家のバージョンに適用するのが良いのかな。と思って、そうしてみた。 けど、他のサーバーでgem install ...とか気軽にできな

    rubyのmemcache-client-1.7.6にキャッシュをdelete(expire)できない不具合 - 暴想
    willnet
    willnet 2009/11/26
    1.7.7では直ってるのかな
  • 第4回 memcachedのCASとmixiでの運用動向 | gihyo.jp

    今まで簡単に触れてきたmemcachedのCAS(Compare and Swap)機能ですが、今回はその具体的な使用例や、プロトコルの違いによる特徴を紹介します。また、mixiでの今後のmemcached運用動向を紹介します。 CASの概要 memcachedには特定のデータに対してアトミックな更新を試みる機能が存在します。この機能の仕組みは単純で、クライアントは特定のコマンド(テキストプロトコルの場合は“⁠gets⁠”⁠)を実行することにより、サーバから特定のレコードとその状態を表すユニークな識別子を与えられます。 この識別子はレコードが何らかの手段によって更新されると変更され、クライアントが保持している識別子とは別の値になります。したがって、クライアントは与えられた識別子を更新命令と一緒に送信することで、サーバはレコードをアトミックに更新できるかを確認することができます。もし識別子が

    第4回 memcachedのCASとmixiでの運用動向 | gihyo.jp
    willnet
    willnet 2009/09/29
    CAS(Compare and Swap)を使って楽観的ロックのようなことができる
  • [ ]カテゴリの記事一覧 - 情報科学屋さんを目指す人のメモ(FC2ブログ版)

    タグ Windows  /  インストール  /  Linux  /  設定  /  エラー  /  Java  /  Eclipse  /  AutoHotkey  /  TeX  /  C#  /  VisualStudio2008  /  対策  /  Subversion  /  LaTeX  /  Vista  /  方法  /  CentOS  /  Android  /  Microsoft  /  Windows7  /  Office  /  バージョン管理  /  プログラミング  /  eclipse  /  PowerPoint  /  SSH  /  Ubuntu  /  WindowsVista  /  コマンド  /  ショートカット  /  .NET  /  Desire  /  VisualStudio  /  便利  /  P2P  /  Unix  /

  • memcachedのちょっとまとめその2 - うま味がない

    memcachedのちょっとまとめの続き・・・ memcached起動スクリプトについて Debian系 memcachedインストールディレクトリ/scripts/ 配下にある 「memcached-init」を/etc/init.d/へ設置 cp memcached-init /etc/init.d/memcached chmod +x memcachedRedHat系 memcachedインストールディレクトリ/scripts/ 配下にある 「memcached-sysv」を/etc/rc.d/init.d/へ設置 cp memcached-sysv /etc/rc.d/init.d/memcached chmod +x memcached※ポート番号やキャッシュサイズ等がデフォルトの値になっているので 環境に合わせて「memcached-init」や「memcached-sysv」

    memcachedのちょっとまとめその2 - うま味がない
    willnet
    willnet 2009/09/11
    initスクリプト作らなきゃなーと思ってたらひな形がソースアーカイブに含まれてた
  • 第1回 memcached 1.4、基本の基本 | gihyo.jp

    今回は、1.4になってアップデートされた新機能を中心に紹介します。 memcachedとは? memcachedとは、主にデータベースへの負荷を下げ、かつWebアプリケーションのスケーラビリティをコストパフォーマンス良く向上させる高性能な分散キャッシュサーバです。memcachedの基や概要に関しては、以前ミクシィ運用グループの長野と執筆した「memcachedを知り尽くす」をご覧ください。 memcached 1.4の特徴 1.4、5つの特徴 memcached 1.4の大きなニュースの1つはバイナリプロトコルの正式導入です。また、他にも色々と嬉しい機能や改修が施されています。詳しくは1.4のリリースノートに記述されていますが、要約すると以下の5点が上げられます。 バイナリプロトコルの正式導入 パフォーマンス向上 統計システムの強化 報告されたバグの修正 テストの強化 入手先 memc

    第1回 memcached 1.4、基本の基本 | gihyo.jp
    willnet
    willnet 2009/09/05
    バイナリプロトコルの採用
  • 第5回 memcachedの運用と互換アプリケーション | gihyo.jp

    株式会社ミクシィの長野です。memcachedの連載も今回が最終回になります。前回までmemcachedに直接関連する話題を中心に書いてきましたが、今回はmixiでの事例や運用に関する話題、memcachedの互換アプリケーションについて紹介します。 mixiでの事例 mixiではサービスの初期の頃からmemcachedを利用していました。memcachedはサイトへのアクセスの増加が、データベースのスレーブを増やしていく方法では追いつかないほど急激にのびていく中で導入して行きました。加えてスケーラビリティを向上させていく手段として検証を行い、十分な速度と安定性があることが確認できたことも導入の理由になります。現在ではmemcachedはmixiのサービスを提供していく中で非常に重要なコンポーネントとなっています。 図1 現在のシステムコンポーネント サーバ構成と台数 mixiではデータベ

    第5回 memcachedの運用と互換アプリケーション | gihyo.jp
    willnet
    willnet 2009/08/27
    memcachedの起動時に指定する割当メモリはmemcachedに保存できるデータの量で,「slab allocator」が確保するメモリや,データを保持するための管理用の領域を含んでいません/daemontoolsでmemcachedのプロセスを監視して再起動
  • 第4回 memcachedの分散アルゴリズム | gihyo.jp

    株式会社ミクシィの長野です。第2回、第3回と前坂がmemcachedの内部について紹介しました。今回は内部構造から離れて、memcachedの分散についての紹介をいたします。 memcachedの分散 連載の1回目に紹介しましたが、memcachedは「分散」キャッシュサーバと言われていますが、サーバ側には「分散」の機能は備わっていません。サーバ側には当連載の第2回、第3回で前坂が紹介したメモリストレージの機能のみが組み込まれており、非常にシンプルな実装となっています。では、memcachedの分散はどのように実現しているのかと言うと、すべてクライアントライブラリによって実現されます。この分散方法はmemcachedの大きな特徴です。 memcachedの分散とは ここまで数度「分散」という言葉を用いてきましたが、あまり詳しく触れてきませんでした。ここでは各クライアントの実装に共通する大ま

    第4回 memcachedの分散アルゴリズム | gihyo.jp
    willnet
    willnet 2009/08/27
    memcachedはそれ自身では分散機能は持っていない/CRCの剰余で分散/Consistent Hashingとかいう方法で分散
  • 第3回 memcachedの消去メカニズムと今後の動向 | gihyo.jp

    memcachedはキャッシュなので、特定のデータが常にサーバに存在しないことが前提でシステムに導入されます。今回はmemcachedのデータ削除メカニズム、そしてmemcachedの最新動向であるバイナリプロトコルと外部エンジンサポートをご紹介いたします。 memcachedはデータ削除もリソースを有効活用する memcachedから実際にデータは消えない 前回の記事で紹介させていただきましたが、memcachedは確保したメモリを解放しません。レコードはtimeoutが過ぎたらクライエントから見えなくなる(invisible・透明になる)だけで、その領域は再利用される仕組みです。 Lazy Expiration memcachedは内部的にレコードがexpireしたかの監視を行いません。替わりにgetする際にレコードのtimestampを見ることで、そのレコードがexpireしたかをチ

    第3回 memcachedの消去メカニズムと今後の動向 | gihyo.jp
    willnet
    willnet 2009/08/27
    memcachedは内部的にレコードがexpireしたかの監視を行いません。替わりにgetする際にレコードのtimestampを見ることで,そのレコードがexpireしたかをチェックします。
  • 第2回 memcachedのメモリストレージを理解する | gihyo.jp

    株式会社ミクシィ 研究開発グループの前坂です。前回の記事でmemcachedは分散に長けた高速なキャッシュサーバであることが紹介されました。今回はmemcachedの内部構造がどう実装されているのか、そしてメモリがどう管理されているのかをご紹介します。また、memcachedの内部構造の事情による弱点も紹介します。 メモリを整理して再利用するSlab Allocationメカニズム 昨今のmemcachedはデフォルトでSlab Allocatorというメカニズムを使ってメモリの確保・管理を行っています。このメカニズムが登場する以前のメモリ確保の戦略は、単純にすべてのレコードに対してmallocとfreeを行うといったものでした。しがしながら、このアプローチではメモリにフラグメンテーション(断片化)を発生させてしまい、OSのメモリマネージャに負荷をかけ、最悪の場合だとmemcachedのプ

    第2回 memcachedのメモリストレージを理解する | gihyo.jp
    willnet
    willnet 2009/08/27
    Slab Allocatorアルゴリズムを利用して、データをchunkに分けることでメモリのフラグメンテーションを起こさないようにしている/slabのサイズの分布をチューニングできる/telnet→statsで内部状態を調べられる
  • 第1回 memcachedの基本 | gihyo.jp

    株式会社ミクシィ 開発部 システム運用グループの長野です。普段はミクシィのアプリケーション運用を担当しております。今回から数回にわたり、最近Webアプリケーションのスケーラビリティの分野で話題になっているmemcachedについて、弊社開発部 研究開発グループの前坂とともに、使い方や内部構造、運用について解説させて頂きます。 memcachedとは memcachedは、LiveJournalを運営していたDanga Interactive社で、Brad Fitzpatrick氏が中心となって開発されたソフトウェアです。現在ではmixiやはてな、Facebook、Vox、LiveJournalなど、さまざまなサービスでWebアプリケーションのスケーラビリティを向上させる重要な要素になっています。 多くのWebアプリケーションは、RDBMSにデータを格納し、アプリケーションサーバでそのデータ

    第1回 memcachedの基本 | gihyo.jp
    willnet
    willnet 2009/08/27
    シンプルな行ベースのプロトコル/libeventによるイベントハンドリング