タグ

ブックマーク / blog.nomadscafe.jp (9)

  • Nagios と derived でMySQLのスロークエリの量を監視する - blog.nomadscafe.jp

    新しい機能をリリースした際に、MySQLに対して効率的ではないクエリが発行されてしまって、それが積もってサービス全体に影響が出てしまう前に発見してアラートをあげたい。 発見する手立てとしてはCPU使用率やInnoDBのROW OPERATIONSが考えられるところですが、今回はスロークエリが発生した回数を監視することにした。ちなみにいつものことながら対象とするMySQLは4.0系。long_query_timeがオンラインで変更できません。。。はい MySQLのスロークエリが発生した回数は、show status のSlow_queriesという項目でみることができて mysql> show status like 'Slow_queries'; +---------------+-------+ | Variable_name | Value | +---------------+---

  • MySQLの設定ファイル my.cnf をgithubにて公開しました & チューニングポイントの紹介 - blog.nomadscafe.jp

    YAPC::Asiaのスライドで予告していた通り、実際に弊社のいくつかのサービスで使っている my.cnf を公開しました。 github: https://github.com/kazeburo/mysetup/tree/master/mysql 今回、公開した理由はMySQl Beginners Talksの発表の中でも触れている通りです。MySQLのソースコード中に含まれるサンプルのmy.cnfが最近のサーバハードウェアや運用に合わなくなって来ているという状況で、自分の設定にイマイチ自信が持てていない人は少なくないはず。そこで各社秘伝のタレ的な my.cnf をOpen & Shareすることで、モダンなmy.cnfを作り上げる事ができるんじゃないかという考えの下、今回 github にて公開しました。 ファイルは4つあり、それぞれ MySQL 4.0、5.1、5.5、そしてテスト中

  • memcached-1.4.7-rc1でmixiの大規模障害の原因となったmemcachedの不具合が全て解消されました - blog.nomadscafe.jp

    こちらとこちらのエントリーの続き memcached 1.4.6でmixiの障害の原因となったaccept_new_connsがスレッドセーフじゃない件は修正されているはずだったのですが、検証したところ別のスレッド競合による不具合が発生し、Bugは全て解消されてはいませんでした。 この件についてmixiたんぽぽGの森さんと調査していたところ、memcachedのcommiterにtwitter上で補足され、つたない英語で報告をあげていたら1.4.7-rc1で修正されたのでその報告。 memcached 1.4.6での不具合再現方法 まず、1.4.6で不具合を再現させる方法について。mixiのエンジニアブログと同じように、memcachedは次のオプションで起動し、 $ ./memcached -U 0 -u nobody -p 11222 -t 4 -m 16000 -C -c 1000

  • はてなスターのJSにExpiresヘッダ云々の件 : blog.nomadscafe.jp

    はてなスターのJSにExpiresヘッダ云々の件 Twitterでぼやいたらmala氏からレスがついたついでに。 以下の画像はlimilicのyslowの画面 s.hatena.ne.jpの画像やJavaScriptにはExpiresヘッダがありません サーバから送り出されるコンテンツにExpiresヘッダがあると、ブラウザは指定された時間までキャッシュし、ブラウザのリロードボタンを押したとき以外はIf-Modified-Sinceのリクエストも送りません。サーバにもクライアントにも優しくなれます ってことで、yslow対策(笑)だけではなく、はてなスターにもExpiresつけたらいいんじゃねと思っているのですが、難しいのはmala氏も指摘するHatenaStar.jsが外部からリンクされているため「ファイル名を変更しての強制Expires」ができない問題。Expireを設定するとブラウザ

  • OpenIDでテキストを共有できるWebサービス LIMILIC つくりました : blog.nomadscafe.jp

    OpenIDでテキストを共有できるWebサービス LIMILIC つくりました URLがIDっていうのはキャッチーじゃないのでOpenIDは使えないと言い続けていましたが、ここ最近の盛り上がりについカッとなってサービスをつくりました LIMILIC - OpenIDでテキストを共有できるWebサービス OpenIDをつかってLIMILICにログインすると、はてな記法を用いてWikiライクなページを作成できます。そのページに対して閲覧と編集それぞれにアクセス制御をかけるできます。 閲覧はすべてのユーザに、編集は一部の方にというようにアクセス制御することでお知らせページを作ったりと、writeboard風に使えます。メールアドレスや共有のパスワードなどよりもずっと安全じゃないかと思います。 あと、おまけ的にanonymous機能も付いていますので、匿名日記も書けます OpenIDって何?って方

  • WebService::TimeLine公開しました : blog.nomadscafe.jp

    WebService::TimeLine公開しました かなり以前のことですが、某縁があって7/30,31とniftyさんの開発合宿に参加させて頂きました。 完全に外野からの参加でしたが、いくつかの会社の方が参加していて、普段とは違う刺激になりました。RubyMacが多かった。 んで、結局できたものは、サービスの形ではなく、@nifty TimeLinePerlのモジュールとサンプル モジュールはCPANに先々週にアップしています WebService::TimeLine TimeLineは、時間軸と自由に設定可能な縦軸を持った年表作成サービスで、ソーシャル機能とかも持っています。個人的には、Flashのインターフェイスがとてもいい感じです。 しかも、APIが付いた事でいろいろなデータを自動で追加していける可能性がでてきたので、面白いんじゃないかなーと思ってます。 とりあえず、サンプル的

  • GearmanとかNginxとか : blog.nomadscafe.jp

    GearmanとかNginxとか ひさびさにFemoを弄った。 サーバ周りを中心にいくつか改善 まず、以前FastCGIの環境で動かないと書いたText::VimColorをGearmanを使うようにしてみました。 Text::VimColorはText::Hatena(バージョン0.16)の中で使われています #Worker(worker.pl) my $worker = Gearman::Worker->new; $worker->job_servers(qw/127.0.0.1/); $worker->register_function( vimcolor_html => sub { my $g = shift; my $arg = Storable::thaw( $g->arg ); my %arg = map { $_ => $arg->{$_} } grep { $_ !~ /

  • 同じコマンドを複数のサーバで実行 : blog.nomadscafe.jp

    同じコマンドを複数のサーバで実行 Assurerにシェルモードが追加されたので、もういいかなという感じですが、自分の使っているスクリプトをさらしてみる。 sshで1つのコマンドを複数のサーバに順番に実行させていけます。 「password:」のプロンプトに対して、expectを使って自動で入力する機能もあるので、sudoなどにも対応 mssh -f list.txt -u user -p -- id -f ファイル名: ホスト名が書いてあるファイル名。1行1ホスト -u ユーザ名: ログインするユーザ名 -p: パスワードを使うフラグ --: これ以降にコマンド 以下ソース #!/usr/bin/perl package MSH; use strict; use warnings; use Expect; sub new { my $class = shift; bless {@_}, $

  • lighttpd-1.5.0-r1454 ベンチマーク : blog.nomadscafe.jp

    lighttpd-1.5.0-r1454 ベンチマーク http://blog.lighttpd.net/articles/2006/11/15/pre-release-lighttpd-1-5-0-r1454-tar-gz にでているlighttpd 1.5.0のpre releaseを前回と同じように3KB*100万個でテスト。 結論から言うと、このlighttpdのaioの実装では小さいファイルがたくさんという条件ではそれほど効果がなさそうです ■普通にlinux-sendfile ・設定 server.document-root="/var/www/html" server.port=8080 server.network-backend = "linux-sendfile" server.event-handler="linux-sysepoll" ・結果 $ ./http_lo

  • 1