タグ

memcachedに関するjitsu102のブックマーク (26)

  • 大規模memcached障害と私 - Qiita

    この記事は ex-mixi Advent Calendar 2017 19 日目のエントリーです。 こんにちは。@bonnu と申します。 株式会社ミクシィには2006年1月から2012年3月末までの間、6年と3ヶ月ほど在籍していました。その後株式会社FreakOut(現在はホールディングスとなっています)に転職。そこからさらに転職を重ね、現在は株式会社GameWithでサーバーサイドを主としたエンジニアをやっています。 ミクシィに入社した当時はまだ社名が株式会社イー・マーキュリーで、入った翌月に社名変更したタイミングでした。なので希少な「イー・マーキュリー」の名刺を持っていました。私より後に入社した他のエンジニアのみんなからよく珍しがられたのを覚えています。 今回はOB・OGによるアドベントカレンダーということで、在籍していた頃に体験した障害について少しお話したいと思います。 (※ 当時

    大規模memcached障害と私 - Qiita
    jitsu102
    jitsu102 2020/05/04
    「(障害対応は)これまで対処した事もないような問題に遭遇できるチャンスと捉える」
  • memcachedにおけるキャッシュシステムの Thundering Herd 問題への対策案 - blog.nomadscafe.jp

    キャッシュシステムの Thundering Herd 問題とは、 通常、キャッシュに格納されるデータは、それぞれ単一の生存時間をもっています。問題は、頻繁にアクセスされるキャッシュデータがエクスパイアした際に発生します。データがエクスパイヤした瞬間から、並行に走る複数のアプリケーションロジックがミスヒットを検知し、いずれかのプロセスがキャッシュデータを格納するまでの間、同一のリクエストが多数、バックエンドに飛んでしまうのです。 という問題。クエリが重かったりするとそれだけでシステムに致命的な負荷を与えてしまい、キャッシュがあるにも関わらずキャッシュが切れたタイミング全体が停止することも考えられます。memcachedでこの問題に対応するため、次のような手段を考えてみました。 まず、保存時に通常のキャッシュと、それよりも指定した秒数Expiresが短いキャッシュを2つmemcachedに対し

  • memcached の conn_yields について - tokuhirom's blog

    memcached の conn_yields が上がっていた場合、conn_yield がでなくなるまで起動時オプションの -R を上げろって主張している人がいます。 https://blog.engineyard.com/2015/fine-tuning-memcached http://cachelot.io/blog/2015/04/20/Speed-up-your-application-by-fine-tuning-Memcached.html 実際問題、結局のところどういう主張なのかわかりづらくて、調べた。 コードを検索すると、1つのコネクションでコマンドを発行しまくっている場合にここに到達するようだ。 https://github.com/memcached/memcached/blob/d9dfbe0e2613b9c20cb3c4fdd3c55d1bf3a8c8bd/me

  • Docker

  • 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
  • 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 と戦う - だるろぐ
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • AWS News Blog

    AWS Week in Review – AWS Documentation Updates, Amazon EventBridge is Faster, and More – May 22, 2023 Here are your AWS updates from the previous 7 days. Last week I was in Turin, Italy for CloudConf, a conference I’ve had the pleasure to participate in for the last 10 years. AWS Hero Anahit Pogosova was also there sharing a few serverless tips in front of a full house. Here’s a picture I […] Amaz

  • NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現

    モバゲーで知られるDeNAは、バックエンドデータベースにNoSQLを使っていません。なぜか? それはMySQL/InnoDB 5.1の環境で秒間75万クエリという、多くのNoSQLでも実現できないような高性能を実現しているから。DeNAの松信嘉範(まつのぶよしのり)氏は、自身のブログにこんな内容のエントリ「Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server」(英語)をボストしています。 Yoshinori Matsunobu's blog: Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server 松信氏が指摘するように、大規模なネットサービスを提供している企業の多くは分散環境で

    NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現
  • 実践 memcached

    24. my $memd = Cache::Memcached::Fast->new({ servers => [qw!192.168.67.31:11211 192.168.67.32:11211!] }); if ( my $nickname = $memd->get('nickname:1') ) { return $nickname; } my $dbh = DBI->connect('DBI:mysql:boofy:host=localhost'); my $nickname = $dbh->selectrow_array( 'SELECT nickname FROM user WHERE id=?', undef, 1); if ( $nickname ) { $memd->add('nickname:1', $nickname, 24*60*60); return $nick

    実践 memcached
  • Shibuya.pm#14 で memcachedの運用について発表しました - blog.nomadscafe.jp

    2010夏のmemcachedシリーズもいよいよ最後となりました。 1歳8ヶ月のうちの息子も見ていた Shibuya Perl Mongersテクニカルトーク#14「IPAとJPAは違う団体です」でmemcachedの運用について発表をさせていただきました。今回は監視scriptの書き方やcronlog、Nagiosの設定tipsなどの内容にしました。memcachedの監視というよりかは一般的なノウハウ寄りだったかなと 監視の狭間問題の対策としてmemcachedのuptimeを見るscriptを紹介していますが、この問題はmemcachedには限りません。自動的に再起動してくるようなサービスで勝手に再起動した=何か問題が起きたと想定できる、例えばMySQLや /proc/sys/kernel/panic が設定されているLinuxにも同じような監視が必要になるでしょう。 MySQLであ

  • 第4回 memcachedのCASとmixiでの運用動向 | gihyo.jp

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

    第4回 memcachedのCASとmixiでの運用動向 | gihyo.jp
  • 第3回 システム運用監視に役立つ統計/集計システム | gihyo.jp

    株式会社ミクシィの前坂です。前回はmemcached 1.4の通信面における話題を紹介いたしました。今回はmemcached 1.4で強化されたシステム運用面や監視に役立つ統計/集計システムを紹介します。 statsの機能強化 memcachedには以前からstatsというコマンドがあり、statsコマンドを特定のキャッシュサーバに発行することで、そのサーバの状態を調べることが可能でした。今回の1.4リリースでは、取得できる情報が新たに増え、システム運用者はより細かくmemcachedを監視することができるようになりました。具体的には以下の情報を得られるようになりました。 デーモンの起動オプション スラブ単位でのアクセス記録 削除処理 インクリメント、デクリメント処理 CAS処理 重いリクエストを含んだ通信の記録 デーモンの起動オプションを取得する キャッシュクラスタの運用者は何台もの物理

    第3回 システム運用監視に役立つ統計/集計システム | gihyo.jp
  • 第2回 バイナリプロトコルの扱い方 | gihyo.jp

    株式会社ミクシィの前坂です。第1回でmemcached 1.4の簡単な紹介をしました。今回は新しく正式導入されたバイナリプロトコルの扱い方をご紹介いたします。 バイナリプロトコルの扱い バイナリプロトコルを扱うには、アプリケーションのプログラミング言語に合ったバイナリプロトコル対応のクライアントライブラリが必要です。バイナリプロトコルは最近導入されたこともあり、ネイティブ対応していると報告されているクライアントライブラリはC言語のlibmemcachedとJavaのspymemcachedだけです(2009年8月時点⁠)⁠。ただし、世の中にはlibmemcachedをwrapした、さまざまの言語で記述されたクライアントライブラリがいくつかあり、それらを使ってバイナリプロトコルを扱うことが可能です。 今回の記事ではそれらのクライアントも含めて, C、JavaPythonPHPでのデモコー

    第2回 バイナリプロトコルの扱い方 | gihyo.jp
  • 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

  • あのデータのステータスは?Mac OSX向けmemcachedクライアント·mcinsight MOONGIFT

    最近のWebシステム開発ではキャッシュサーバを用いることが多くなってきている。通常、ボトルネックになりやすいファイルへの読み書きやデータベース接続のコストが、メモリを使うことで大幅に軽減される。ハードウェアを過分に増強せずとも、メモリを増設してmemcachedを使うだけでずいぶんパフォーマンスが向上する。 memcachedのデータが一覧できる しかし開発の時点でmemcachedを使っていると、きちんとデータが入っているか、またはどちらを参照しているのか分からなくなることがある。そのような時に使えるのがmcinsightだ。 今回紹介するフリーウェアはmcinsight、memcachedサーバ&フロントエンドだ。Githubにてソースコードは公開されているが、ライセンスは明記されていないのでご注意いただきたい。 mcinsightはローカルのmemcachedサーバとして利用する。立

    あのデータのステータスは?Mac OSX向けmemcachedクライアント·mcinsight MOONGIFT
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • memcached座談会 記事一覧 | gihyo.jp

    第7回memcachedを運用する際のベストプラクティス、memcachedのこれから 長野雅広,前坂徹,池邉智洋,福冨諭,正野勇嗣 2008-10-27

    memcached座談会 記事一覧 | gihyo.jp
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • Toru Maesaka

    Toru Maesaka Hi, welcome! I'm a computer programmer and a dad from San Francisco, CA. I run Chrono Technologies, a small tech company based right here in the city.