タグ

memcachedに関するshimookaのブックマーク (48)

  • 【CentOS7/SELinux】複数のmemcachedをsystemdで管理 - YOMON8.NET

    一つのホストで複数のポート違いのmemcachedを起動してSystemdで管理するための設定方法です。 memcachedインストール とりあえずmemcachedをインストールします。 # yum -y install memcached 2つのmemcachedインスタンス向け設定ファイルの複製・変更 例としてポート番号11212と11213のmemcachedを作ります。 # cd /etc/sysconfig # cp -ai memcached memcached.11212 # cp -ai memcached memcached.11213 それぞれPORTの値を変更しておきます。 # cat memcached.11212 PORT="11212" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="" # ca

    【CentOS7/SELinux】複数のmemcachedをsystemdで管理 - YOMON8.NET
  • 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 を使ったアプリケーションの設計について - blog.nomadscafe.jp

    クライアントからmemcachedを利用する際の、ベストプラクティスは以前書いているので、その前段階でmemcachedを含めたWebアプリケーションのアーキテクチャ(と一部クライアントの話)について今の個人的な考えをまとめてみます。Kyoto Tycoonを使ったキャッシュサーバでも基は同じだと思います 1) 使わない memcachedをアプリケーションに組み込むことで、プログラムがどうしても複雑になりがちです。データの削除や更新の際にキャッシュの更新を忘れると多くの問題が発生します。例えばユーザがニックネームやプロフィール写真を更新したのに画面上変わらないなどの現象が起こると、ユーザに対して不快な思いをさせてしまうでしょう。またデータベースが非同期のレプリケーションを行っている場合、masterに対してデータの変更をかけ、更新が反映される前にslaveから読み込んでしまい、キャッシ

  • memcachedに張られているコネクション数を監視するNagios pluginを作ってみた - (ひ)メモ

    夏休みが終わったので宿題しました。(小ネタはありません) http://github.com/hirose31/nagios-check_memcached_connections 要 libmemcached こんな感じで。 $ ./check_memcached_connections -H mc101 -w 3 -c 5 MEMCACHED WARNING: conn 5, 0.001 seconds あわせてよみたい mixi Engineers’ Blog » mixi大規模障害について その2

    memcachedに張られているコネクション数を監視するNagios pluginを作ってみた - (ひ)メモ
  • mixi大規模障害について - mixi engineer blog

    こんにちは。システム技術部たんぽぽGの森です 先日のmixi大規模障害についてのブログです。 はじめにお断りしておきますが、弊社CTOがtwitterで公開した以上の情報はまだ得られておりません。 twitterでは書ききれなかった細部を補足してみたいと思います 現状判明しているのは以下の点です memcachedに大量の接続・切断を行うとmemcachedプロセスが突然終了することがある memcachedには異常時に終了するフローもあるが、同時に出力されるはずのエラーログは出ていなかった coreも出力されていなかった テスト環境にて追試を行ったところ、なんどか再現させることができましたが、確実に発生する条件は未だ不明です。 障害時の memcachedのバージョンは1.4.4, libeventのバージョンは1.3bです memcached の起動オプションは以下のとおり ./

    mixi大規模障害について - mixi engineer blog
    shimooka
    shimooka 2010/08/13
    #!/usr/local/bin/activeperl
  • 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 達人が教えるつぶあん🇺🇦 @kazeburo ファイルディスクリプタが不足してmemcachedが落ちたとして、そのときには、3万強の接続となってるはず。3万強の接続となるにはアプリケーションサーバ側のmax clientが平均60として500台以上必

    mixiがはまったmemcached(or libevent?)の問題を調べる人たち
  • libevent-1.3b, libmemcached-1.4.4 で固まる? - moratorium

    libevent-1.3b, libmemcached-1.4.4 で固まる? 2010-08-13 (Fri) 0:56 Uncategorized mixiの件について、nealさんから情報を貰ったので数時間調査してみた。というのも、うちの製品でもlibevent(evhttp)をリクエスト処理に使っているので、これにバグが有ると非常に困る。 Nealさんのつぶやき ひとまず、libevent-1.3b, libmemcached-1.4.4をビルドする。memcachedは、-cで同時接続数を制限できる。で、この同時接続数というのは、実はファイルディスクリプタの数を制限する事で達成されている。memcached.cの以下の部分。 /* * If needed, increase rlimits to allow as many connections * as needed. */

  • [速報]mixiが障害の経緯を発表。原因はお盆のアクセス急増ではなく、memcachedの異常終了

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

    [速報]mixiが障害の経緯を発表。原因はお盆のアクセス急増ではなく、memcachedの異常終了
  • ソーシャルアプリセミナー「LAMPで作るソーシャルアプリの負荷対策」に参加してきました - gusagiの日記

    株式会社コンテンツワンさん主催のソーシャルアプリセミナー「LAMPで作るソーシャルアプリの負荷対策 〜アプリとインフラの調和のテクニック〜」に参加してきました。講師は、KLab株式会社の森さん。 全体的な内容としては、どのようにしてHTTP通信の待ち行列をなくすかという主旨で、ボトルネックとなりやすいDB側の改善と、Web(アプリ)側の改善のどちらについてもお話がありました。 DB側については、目新しく画期的な手法ではなく基に忠実に対応を行っているようで、やはり土台となる知識と経験は重要と言うことを再認識。Web側はGDを自分たちでカスタマイズされているなど、ライブラリにまで踏み込んで負荷対策が必要な場合もあるということに驚きました。 自分自身への記録をかねて、セミナー中のメモ(メモ抜けや聞き間違いなども含まれている)を貼っておきます。 ---- 論に入る前に 発表はモバイルでのソ

  • memcached互換のNoSQLデータベース「Membase」がオープンソースで登場

    memcachedの開発者らが中心となって今年の3月に立ち上げた企業NorthScaleが、memcached互換のNoSQLデータベース「Membase」のオープンソースプロジェクト「membase.org」を6月23日に発表しました。 MembaseはWebアプリケーションのバックエンドに使われることを想定したキーバリュー型データストア。高速かつ高いスケーラビリティを目指したもの。 主な機能として、将来にわたってmemcachedとプロトコルの互換性を保証しつつ、ディスクへの永続性機能(データのディスクへの書き込み)、階層型データストア管理、データレプリケーション、稼働状態での設定変更とノード間のリバランシング機能なども備えると説明されています。 Membaseの特徴はmemcached互換とスケーラビリティ MembaseのWebサイトの情報を基に、特徴を紹介しましょう。 動的なノー

    memcached互換のNoSQLデータベース「Membase」がオープンソースで登場
  • Twitterのクジラ解剖学、あるいは彼らがいかにサーバの処理能力を向上させたか

    Twitterを利用していると、ときどきクジラの絵の画面が表示されることがあります。これはTwitterの処理能力がパンクして一時的に利用不可になったときに表示されるお馴染みの画面。 2月9日にTwitter Engineeringブログにポストされたエントリ「The Anatomy of a Whale」(クジラの解剖学)では、Twitterエンジニアたちがこのクジラの内部に分け入ってどのようにTwitterサーバの処理能力を向上させたのか、という話が詳しく語られています。 彼らが行ったのは、まず詳細なデータを取得して原因がどの辺にあるのかを推測すること。そこから多数の無駄な処理を発見し、ソースコードの修正による性能の向上に成功します。 元記事は非常に長いエントリになっていますが、問題の調査から解決に至るアプローチについて多くのエンジニアの方の参考になりそうな内容が含まれていますし、T

    Twitterのクジラ解剖学、あるいは彼らがいかにサーバの処理能力を向上させたか
  • ハタさんのブログ(復刻版) : PHPで200行で作る memcached 互換サーバ

    まさに誰得。 class MemcachedServer { protected $command; public function __construct(MemcachedCommand $command){ $this->command = $command; } public function start(){ $this->run(); } public function run(){ $socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if(false === $socket){ $code = socket_last_error(); $msg = socket_strerror($code); throw new Exception(sprintf('socket_create was error(%s):%s'

    shimooka
    shimooka 2010/01/21
    『PHPを愛している人じゃないと向いていないかも』
  • memcached - a distributed memory object caching system

    What is Memcached? Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. Memcached is simple yet powerful.

    memcached - a distributed memory object caching system
    shimooka
    shimooka 2009/12/11
    このキャラは何だ?
  • ウノウラボ Unoh Labs: Tokyo Tyrantを使ってみて

    yamaokaです。 通常のデータベースとしてではなく、Key-Valueストアの選択肢として Tokyo Tyrantを少しずつ使ってみています。 実際に運用するにあたって、いくつか行ったことを書いておきます。 ちなみに、現在の構成は1台のみでの運用です。 マルチマスター構成やレプリケーションなどは行っていません。 PHPのクライアント Tokyo Tyrantを利用するのはPHPのアプリケーションからです。 最初はmemcachedプロトコルを利用して PECL::memcacheを使っていましたが、 データの大量更新を連続で行うとデータの取得が正常に行えなくなる現象が発生したため、 Net_TokyoTyrantを一部改変したものをライブラリとして利用しています。 パフォーマンスではPECL::memcacheに負けますが、クリティカルな処理をしていないこともあり、 今のところ問題に

    shimooka
    shimooka 2009/10/30
    うちもWebサーバが複数台になったら、セッション管理での利用を考えてみる
  • 第1回  Kaiとは? ─Kaiのコンセプトとメカニズム | gihyo.jp

    今回から数回にわたり、Kaiという分散Key/Valueストアについて解説させていただきます。 まず、第1回では井上がKaiのコンセプトをご紹介します。次回以降は、Kai開発者の一人である幾田さんがKaiの利用方法について解説します。最終回では、gooホームでKaiを運用している橋さんから、Kaiの運用方法について紹介していただく予定です。なお、連載が対象とするKaiのバージョンは0.4です。 Kaiとは Kaiとは、分散型のKey/Valueストアです。Amazon.comが2007年に発表したDynamoというシステムに触発されて、そのオープンソース版として開発されています。Kaiをバックエンドに据えてWebサイトを構築することで、高いスケーラビリティやアベイラビリティを実現できます。2009年5月には、gooホームのバックエンドに導入され、運用実績も高まってきました。 Kaiは多

    第1回  Kaiとは? ─Kaiのコンセプトとメカニズム | gihyo.jp
  • memcached-1.4 RCをつかってみよう - mixi engineer blog

    数日前にmemcached-1.4のリリース候補が出ましたので、今日はその最新版と、それを使ったメモリ節約の運用法を紹介します。厳密にいうと、ご紹介させていただくmemcachedのメモリ節約機能は1.3のbetaから存在し、過去にこちらで取り上げました。 memcached-1.4.0-rc1 1.4 RCは基的に1.3.* betaで発見・報告されたバグの修正やコードベースの改修が主な内容です。詳しいリリースノートはこちらになります。 http://code.google.com/p/memcached/wiki/ReleaseNotes140rc1 ダウンロードはこちらです。 http://code.google.com/p/memcached/downloads/list 新しいバージョンのmemcachedはバイナリプロトコルの導入以外に地味に生まれ変わっています。例えばコード

    memcached-1.4 RCをつかってみよう - mixi engineer blog
    shimooka
    shimooka 2009/06/05
    『CASを使わない設定 (-C オプション) でmemcachedを起動する』
  • memcache-top - Google Code

    Code Archive Skip to content Google About Google Privacy Terms

  • New memcached extension » Andrei Zmievski

    New memcached extension andrei » 29 January 2009 » In PHP, Work » The first project that I’ve been working on since joining Digg has seen the light of day. It’s a new PHP extension for interfacing with memcache servers and it is based on the libmemcached library, which is becoming the standard client library for this task. It’s used by Python, Ruby, Perl, and now – PHP. The extension is available

    shimooka
    shimooka 2009/01/30
    libmemcachedを使った新しいextension
  • memcachedを時刻巻き戻りに強くしてみる - グニャラくんのグニャグニャ備忘録@はてな

    昨日のダサい失敗エントリが注目を集めているようで恥ずかしいお… 今後ダサい失敗で困らないために、memcachedのパッチを書いてみようと思った。 時間が巻き戻った瞬間に障害が出るのはしょうがないけど、 巻き戻ったあとにその影響が残り続けるのは嬉しくない。 昨日起きた現象を考えるに、 「memcached内部での時間は、絶対時間で保持しているのではなく起動時間からの相対時間で保持されている」のだろう、と予想していた。実際そうみたい。 current_timeという変数に、現在の起動時間からの相対秒が記録されている(set_curent_time())。 realtime()では、各種コマンドで与えられるexptimeを起動時間からの相対秒に変換している。 #define REALTIME_MAXDELTA 60*60*24*30 typedef unsigned int rel_time_

    memcachedを時刻巻き戻りに強くしてみる - グニャラくんのグニャグニャ備忘録@はてな
  • memcachedを愚弄する1つの方法 - グニャラくんのグニャグニャ備忘録@はてな

    某サービスでセッション情報を保持するために利用している memcached(repcached)に障害が起こった。 ちゃんと追えていないけど、おそらく以下のような原因。他の人がハマらないように。 障害発生まで memcached(repcached)の中には揮発したらそれなりにマズい情報が入っている。 repcachedサーバ2台のOS入れ替えをしていて、1台は再起動が成功した。 1台目のサーバへ2台目のサーバからのレプリケーションが完了したのをstatsのcurr_itemsにて確認した。 よって2台目を再起動するものの、起動しなくなった。 この時点では、1台は生きているから後でデータセンターいこうっと、という気軽な気持ちだった… 現象 生きている1台目のサーバで、以下のような現象が起こった… 値をsetする際に、ある閾値以上のexptimeを指定すると即expireされる。 その閾値は

    memcachedを愚弄する1つの方法 - グニャラくんのグニャグニャ備忘録@はてな
    shimooka
    shimooka 2008/10/17
    これはあり得そうだ