サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
kazumaryu.hatenablog.com
とある日、スレーブの1台からディスク容量がいっぱいになっているというアラートがきたので、そのときのトラブルシューティングやあれこれ。 環境と現象 MySQL: 5.5.8 MySQLのレプリケーション機能を使って、マスター1台 x 複数のスレーブ という構成で運用している。 とある日、スレーブの1台からディスク容量がいっぱいになっているというアラートがくる。(nagiosで監視) show slave status で調べると、そのスレーブだけデータの同期(Slave_SQL_Running)が止まっていた。 実際どのファイルがディスクを圧迫しているか調べると、リレーログ(ファイル名はhost-relay-bin.00XXXX)がやたら増えているのが判明した。 解決方法 エラーログ(host.err)やshow slave statusで同期が止まった原因を特定&対応(またはskip sl
いつもより30分早く子供達を保育園に預けて船堀へ。 やはり遠い。けどギリギリ9:30からのMatz氏のkeynoteに間に合った! Coming soon... RubyKaigi 2014 | Coming soon... タイムスケジュールではセッションのタイトルがcoming soonだったけど、まさかのそのままのタイトル。 未来の話、ruby3の話をしようという内容。 Static Typingに関する話は実際興味深いんだけど、他の言語では実装されているのが悔しいとか、実際なくても困らないんだよねとか。やっぱりDuck Typingに反するしなぁとか、業務でrubyを使ってる人にとってはけっこう重要な話だと思うんだけど、なんだかとても微笑ましい。 Matz氏はこういう技術的なはなしを分かりやすく、楽しそうに話す。そして聞く方も楽しくなる。 ruby3でどういった実装がなされるかとい
ちょっとはまったけど解決してスッキリしたので共有。 今回発覚したトラブルは、 セットしたはずの値を取得できない というもの。 環境はこちら。 pecl Memcachedを使用 memcachedサーバ複数台でクラスタ構成 アプリケーションサーバ(PHPの動作環境)も複数台 memcachedのクラスタ構成っていうのは addServer('hostA', 11211); addServer('hostB', 11211); addServer('hostC', 11211); こういう風に複数回addServerしているようなケース。 あまり珍しい環境ではないよね。中規模以上のWebサイトではよくある構成じゃないかな。これに加えてうちの特殊なところは、複数のフレームワークが混在していてMemcachedオブジェクトの作成やaddServerしている箇所が複数あるところ。これもトラブルの元
ハマってなんとか解決したことや、現状困ったりしていることを書いてみる。 前置き 対象のデータ(現在1テーブル)は、約1億レコード、50G。引き続き膨張していくことが予想される。 今はmyisamで運用。更新処理が非常に高負荷。しかもロックが発生するため、オンライン中の更新ができない。1日1回新旧のテーブルを置き換えることで更新。 目指すところは、参照のパフォーマンスを落とさずにリアルタイム更新。次の方向で検証中。 まずテーブルを参照時の条件に沿う形で分割。さらに更新する単位でパーティショニング。これにより参照&更新のパフォーマンスアップを狙う。 myisamからinnodbにすることでロックなしでオンライン中の更新を実現にする。 検証環境 OS: CentOS 5.5 MySQL: 5.5.8 サーバの搭載メモリ: 32G ibdata1、大きくなり過ぎ! myisamと違ってinnodb
おそらくMySQL使いの人にとっては常識だと思うけど、ちょいはまったのでメモ。 MySQLの設定値(変数)を見るときに使うSHOW VARIABLESにはSESSIONとGLOBALの2種類がある。 そんでもって、SESSIONもGLOBALも指定しない場合はSESSIONから値をとってくるとのこと。 http://ftp.ku.ac.th/pub/mirror/mysql/doc/refman/5.1/ja/using-system-variables.html さて何にはまったかというと、MySQLのコマンドラインからSET GLOBALで設定値を変更後、 SHOW VARIABLESで設定値を確認すると値が変わってないわけです。 なんじゃろということで、数分あたふたして同僚に泣きつくと「変わってるよ」と。 気を取り直して、MySQLのコマンドラインに入り直してSHOW VARIABL
PHP: rename - Manual こちらファイルの移動(linuxのコマンドで言うところのmvのような操作)を行うためのPHPの関数。 このrename()を使用したところ Operation not permittedというWARNINGが発生したので、調べたことをメモ。 そもそもの話、このwarningが出てもファイルの移動自体は正常に行われていた。 じゃあなんでwarningなんて吐くの?ということでちょっと調べてみた。 ググると次のような英語のページがヒット。 http://bugs.php.net/bug.php?id=50676 rename() can only work "normally" when operating on the same volume. 同じディスクのボリュームでのみ「正常に」動くよ、ってことらしい。 確認したところ(dfコマンドで!)確かに
DeNA Technology Seminar #2 を開催します - Technology of DeNA 今回のテーマはMySQLで、以下、三つのセッション。 Spider(斯波健徳氏) MySQL handlersocket plugin(DeNA樋口氏) MySQL5.5&トラブルシューティング(nippondanji奥野氏) この日急遽参加を決めたので、PCないしロクなメモとれず。。 詳しい内容に関してはよくまとまっている以下のエントリーや記事をどうぞ。 DeNA Technology Seminar #2 に参加してきました。 - モノノフ日記 MySQLハックの最前線が垣間見えた 「DeNA Technology Seminar #2」:CodeZine(コードジン) 以下、自分用の備忘録&事後つけたしメモ。 Spider 斯波さんのブログ。Wild Growth 日本語 S
第50回PHP勉強会@関東 - events.php.gr.jp こちらの勉強会に参加してきた。 以下、粗いにもほどがあるメモ。 mixiアプリについて スピーカー:weboo氏(@weboo)、mixiのなかの方 mixiはソーシャルグラフ(他はバーチャルグラフ) mixiアプリを使いにきたユーザーが他の機能も使う。月間滞在時間が2:40から3:42に! mixi Developer Center (ミクシィ デベロッパーセンター) » mixi Connect 現在一部の企業だけが使用でき、撮った写真をそのままアップロードしたりすることもできるらしい。 shindig=ユーザーが作成したファイルを解釈してユーザーにサービスを提供するコンテナ(違うかも?あとで調べる) open social 仕様準拠API + mixiアプリ専用API アプリが広がるのはクチコミ。マイミクを誘う機能はあ
選択した(ハイライト表示させた)文字列をjsで取得しようとして、ちょっとだけはまったのでメモ。 まずは最終的なコード。 function getText() { IE='\v'=='v'; var SelectedText; if(IE){ SelectedText = document.selection.createRange().text; } else{ SelectedText = window.getSelection().toString(); } alert(SelectedText); }ポイントは、firefox(IE以外のブラウザ)のときの SelectedText = window.getSelection().toString();これ。 実は alert(window.getSelection());これで表示できてしまう。 window.getSelectio
ライフログといっても人によって定義も使い方も違うと思うけど、個人的に気になっているサービスをメモ。 http://logpi.jp/ ペパボ。 Twitterライクにコメントをログ。 シンプル。 http://life-x.jp/ SONY。 写真、映像、ブクマなどを共有。多機能。 ブラビアでも見れるって・・・ ホーム|ねむログ 睡眠時間の記録に特化。 統計データが面白い。 キセキ goo。 携帯のGPSを使って、自動で行動を記録。 位置にひもづけて日記や写真の投稿。多機能。 2009/4/30サービス終了(http://lifelog.blogzine.jp/info/) MemoLi 携帯GPSで位置情報にひもづけてメモ保存、共有。 シンプル。 Last.fm - オンライン最大の音楽カタログから無料で音楽・動画を視聴 音楽再生履歴をログ、共有。 mixiミュージックより先んじてた。
Web2.0 中の人ナイト TOKYO CULTURE CULTURE:@nifty こちらのイベントに参加するためにお台場まで行ってきました。 会場はこの観覧車のほぼ真下です。 スピーカーのみなさんが入社3年目くらいまでの若いエンジニアの方なので、 会場にいらしているみなさんもやっぱり若い方が多かったようです。 しかもみなさんおしゃれで、一見エンジニアのイベントには見えなかったのではないかな。 これからのエンジニアはおしゃれにも気をつかわないといけませんね。がんばります。 会場もおしゃれ。 さて、内容ですが、まずは以下の大手企業に勤める若手のエンジニアさんが一人ずつ自己紹介や会社紹介のプレゼン。 ライブドア クックパッド 楽天 ミクシィ ヤフー nifty GREE 若手エンジニアと言っても、技術力は決して若手のそれではなくて、みなさん相当専門知識持ってます。 自分の20代前半と比べると
memcachedを使っているんだけど、その機能に満足できない部分がでてきたのでメモ。 一つのキーで保存できるサイズの上限が1M。 1M以内に収まることのほうが多いと思うけど、画像をアップロードするときの一時ファイルをbase64エンコードして、memcachedに保存しようと思ったら、1Mを超えてしまってできなかった。 同時接続数の上限がどうも2000ほど。 トラフィックが集中したときにこの上限を超えたらしく、memcachedサーバが断続的に落ちた。メモリをflushして復旧。たまってたキャッシュは全部消えた。 memcachedサーバを再起動するとキャッシュが全て消える。 これはオンメモリなのでしょうがないけど。。。 ちなみにうちでは冗長性をもたすためにrepcachedを使っている。 さて、そこで解決できそうなものをピックアップ。 memstored 一つのキーで保存できるサイズの
プロキシ経由でfile_get_contentsするサンプル。 <?php $proxy = array( "http" => array( "proxy" => "tcp://プロキシHOST:ポート", 'request_fulluri' => true, ), ); $proxy_context = stream_context_create($proxy); echo file_get_contents("http://4travel.jp/",false,$proxy_context); ?>検索すれば同じようなサンプルが出てくるんだけど、 'request_fulluri' => true,これがないと動かないので注意。
このページを最初にブックマークしてみませんか?
『Road To Nowhere』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く