Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

遭遇した状況 今回は中でも ElastiCache プライマリクラスターのみで障害が発生した場合 の話しです。 ドキュメントにもあるように、マルチAZ 環境での自動フェイルオーバーでの今回の状況においては 書き込みは、昇格プロセスが完了するとすぐに (通常は数分) 再開できます。ElastiCache が昇格したレプリカの DNS を反映させるため、書き込みのためのエンドポイントを変更する必要はありません。 となっています。 ポイントは、「DNS を反映させるため、書き込みのためのエンドポイントを変更する必要がありません」というところです。 発生した課題 自動フェイルオーバーが発生した際に、運用している Rails アプリから上記のエラーが止まらないと言う状況になりました。 最終的には、Web アプリ、ワーカーアプリともに、再起動することで状況は改善しました。 このエラーメッセージから分か
Wantedlyは今までRDSを初期設定のまま使っていました。ごめんなさい。 今回ちゃんとチューニングしてみたのでやってみた過程と結果を書きます。 ちなみにWantedlyはDBを幾つか持っていて、その中のDBの一つの最適化結果です。 NewRelic での測定の結果、平均31ms ぐらいかかっていたのが、 平均23ms ぐらいになっているので25%ぐらいの改善になりました。 インスタンスタイプ 使っているDBのインスタンスタイプです モデル: r3.4xlarge vCPU: 16 メモリ: 122GB SSDストレージ: 1 x 320G デフォルト値 RDSはパラメータグループを調節します。 それぞれのデフォルト値は書かれてないですが、以下のSQL出だすことができます。 => SELECT name,setting,unit FROM pg_settings; name | sett
概要 このへんの本を読んで復習がてらに書いてく 計算式 (物理RAMの合計) ― {max_connections x (スレッドバッファによる消費) + グローバルバッファによる消費} > 0 グローバルバッファ + スレッドバッファで消費されるであろうメモリサイズが物理メモリサイズを超えないようにする 物理RAM:r3.2xlargeで61GB グローバルバッファ(サーバ全体に設定されるオプション) すべての接続とクエリに影響する mysqldが獲得できるRAMの量を計算し、バッファサイズの合計がこれを超えないようにする オプション query_cache_size innodb_additional_mem_pool_size innodb_buffer_pool_size innodb_log_buffer_size key_buffer_size 消費メモリ計算式(GB表示) S
業務中にそこそこ大きなスキーマ変更をすることになり、実際パフォーマンスに変化があるかベンチマークを取る必要が出てきました。 jmeterとかでごりょごりょとかしないとなのかーとか思ったのですが、 今回はスキーマ変更のみなので、単純にDBのみの測定でよいので、なんかいいツールはないかと探したところ、 mysqlslapなるものがあるようなので試してみました 4.5.7 mysqlslap — Load Emulation Client mysqlslapはMySQLサーバのクライアント負荷をエミュレートし、各ステージのタイミングを報告する診断プログラムです。サーバにたいして複数のクライアントがアクセスしているかのように作動します。mysqlslapはMySQL 5.1.4.から提供されています。 さっそく試してみーる 使い方 mysqlがインストールされていれば標準でmysqlslapもイン
本記事は、StrongLoopの「LoopBack」を使って、databaseをAPI化させる手順を紹介しています。 ※ 本記事では、「ClearDB MySQL Database」を使いますので、Bluemixの米国リージョンで作業を行ってください。 今回やること 初めにローカルにLoopBackをインストールし、どんな動きをするのか、何ができるのかを試してみます。 そのあと、Bluemix上に「ClearDB MySQL Database」を作成して「StrongLoop MySQL Connector」を使ってローカルで生成した、data sourceやmodelをMySQLと連動して、そのデーターをAPIで操作してみたいと思います。 ・StrongLoop API Document:https://apidocs.strongloop.com/ Bluemix新規登録 ・新規登録か
TL;DR 負荷の変動が激しい環境でコネクションプールの設定のチューニングをさぼるためによくやるハックを紹介します。 問題 Go から https や mysql など外部のリソースにアクセスする場合、一般的にコネクションプールを使うことになります。 コネクションプールは、利用が終わった (idle) コネクションをプールしておき、次に使いたい時に再利用するものです。 (idle コネクションのプールを以後 free pool と呼びます。) ほとんどのコネクションプールの実装には、 idle なコネクションの最大数を制限するオプションがあります。 また、利用中の (active) コネクションと idle なコネクションを合計した全体を制限するオプションを持つものもあります。 例えば net/http パッケージの Transport は MaxIdleConnsPerHost というフ
------------ find Seq Scan query ------------ SELECT "todo".* FROM "todo" WHERE "todo"."user_id" = $1 LIMIT 1 QUERY PLAN --------------------------------------------------------------------------------------------- Limit (cost=10000000000.00..10000000001.67 rows=1 width=81) -> Seq Scan on todo (cost=10000000000.00..10000000001.67 rows=1 width=81) Filter: (user_id = 13) (3 rows) 内部の仕組み 簡単に機能実現のための実
return [ 'version' => [ 'app' => ['default' => 0], 'module' => [], 'package' => [] ], 'folder' => 'migrations/', 'table' => 'migration' ]; $ php oil refine migrate $ php oil refine migrate:current(あんまり使わない) $ php oil refine migrate:up $ php oil refine migrate:down $ php oil refine migrate --version=10 $ php oil refine migrate -all $ php oil refine migrate $ php oil refine migrate --version=4 $ php
「 罠 」でおなじみMySQL 5.7が2015年10月に晴れてGAとなりました 25日間「罠」について一人寂しくつづるAdvent Calendarです。 大半が @yoku0825 の ブログ へのリンクになるのは想定された事態です。 1日1つずつ、Advent Calendarのコメント欄(最大127文字らしい)に罠をつづっていきます。(c) @yoku0825 たぶん127文字は超えません。
MySQLマニュアルを読もう! いつもそう思いながらも、圧倒的な情報量の前に為す術もなく立ち尽くす。 でも、全部読まなくたっていいじゃないか、人間だもの。 少し気になっているところを、ちょいちょいとつまみ読み。 それでいいじゃないか、人間だもの。 ひとつでもふたつでも、知らなかった情報に触れることができて、あるいは、Advent Calendar がなければ読まなかったであろう部分を読むキッカケになればと思い、この Advent Calendar を始めました。 日付は適当にあけておきますので、「マニュアルのこの部分、おもしろいぜ!読もうぜ!」を語りたい方がいたら、参加歓迎です。誰もいなければ、細々とひとりで書きます。 あと私ごとですが、2016年1月16日(土)に福岡に居るんですが、福岡のMySQLユーザの方、なにか勉強会とか飲み会(交流会)とかしませんか。>twitter ■その他のM
Memcached 1.4.23 が 2015/4/19 にリリースされました。 2015/4/25 にリリースされた 1.4.24 では、クリティカルなバグが修正されています。 Release notes for Release 1.4.23 - Memcached - Google Project Hosting Release notes for Release 1.4.24 - Memcached - Google Project Hosting 1.4.23 については、手元にざっと日本語訳したものがありますが、ライセンスがよくわからなかったので公開しません。(有識者の方はお知らせ下さい。) 概要と、コメントのみ記しておきます。 まだ動かして試してはいません。 概要 コア部分の LRU アルゴリズムを大幅に書き換えたようです。 LRU を HOT, WARM, COLD の3つの
N+1というからほわっつ?ってなって、1+Nって言われると理解しやすいと思った。 このページ非常にわかりやすい。 http://www.techscore.com/blog/2012/12/25/railsライブラリ紹介-n1問題を検出する「bullet」/ 上のページでいう、PrefectureとShopが一対多の関係になっているときに、Shopの方から、eachの中でshop.prefecture.name みたいにすると、shopの数だけprefecture探すSQL文が発行されることになる。 このページ(参考)では、N+1問題をシンプルに、「全レコードの取得に一つ+各レコード分だけ SQL を発行してしまう問題」と定義していて、要はただこれだけの問題だと感じた。 例えば100万レコードあったら100万回SQL発行されるのかって考えると、さすがにだれでもやばみ感じると思う。 実際にサ
前回の続き。 今回はEcto.Queryableとクエリ合成、Migrationの詳細。 適切な道具があれば、人間の生産性と思考力は大きく飛躍する。Ectoはデータベースを操作することに特化したプログラミング言語のように操作することができる。 他のプログラミング言語では真似できないほどの柔軟性を持ったElixirだからこそできることだ。 データベースを操作するモジュールのEctoでは、データベースを操作するために作られたプログラミング言語のようなエレガントなAPIを通してアプリケーションを構築することができる。 マイグレーション classでもstructでもなく、スキーマ定義はschemaマクロで構築できたように、マイグレーション定義においても、SQLシンタックスのように、createやdropを通して操作できる。 create
Javaでのデータベースのテストデータ作成にはDBUnitがよく使われますが、自分はDbSetupをオススメします。 DbSetup なぜDBUnitがイマイチなのか 自分も最初はDBUnitを使ってたのですが、以下の理由からしっくり来ませんでした。 DBを使ったテストでは少量のデータを使うことが多い ホワイトボックステストで大量のデータを使うことはほとんどなく、単一または複数のテーブルに対して、少量のデータを用意するケースがほとんどです。なので、テストごとにファイル(XML or Excel)を用意するのは面倒です。 テストコードとデータが分離している テストデータを外部ファイルに保存するため、テストコードとテストデータが分離してしまっています。そのため、何をテストしているのかが分かり辛いです。 そこでDbSetup そこで見つけたのがDbSetupです。DbSetupはテストデータをJ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く