タグ

ブックマーク / dsas.blog.klab.org (34)

  • DSAS for Social での MySQL のボトルネックと今後の方針 : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の5日目です。 @methane による MySQL を骨までしゃぶるチューニングシリーズ (シリーズ名は今考えました)のまとめとして、現在の DSAS for Social の MySQL のリアルな性能値や直面しているボトルネックを赤裸々に公開 してしまいます。 innodb_io_capacity を増やそう 題に入る前に、まだ紹介してないけど1記事にするほどではなかった パラメータを紹介しておきます。 innodb_io_capacity は、 InnoDB に教えるヒントで、 Disk の IO/sec を指定します。 デフォルトでは、通常のHDDでも使えるように中途半端な値(バージョンによって100か200) になっているのですが、BBU付きバッファがあるRAIDカードを使うな

    DSAS for Social での MySQL のボトルネックと今後の方針 : DSAS開発者の部屋
    hogem
    hogem 2012/09/20
  • ログからは見えてこない高負荷サイトのボトルネック : DSAS開発者の部屋

    ちょうど1年前に「高負荷サイトのボトルネックを見つけるには」という記事を掲載していますが、この手のトラブルシューティングって結構大変で悩ましいですよね。はじめまして、新入りの@pandax381です。 ログからは見えてこないもの 「サイトの応答が遅い」という問題が発生した場合、その原因はどこにあるでしょうか。 Webアプリケーションの処理に時間が掛かっている DBサーバに投げたクエリーの応答が遅い サーバの処理能力を超えている などなど、いくつもの可能性があります。通常、上に挙げているような問題は、アプリケーションやサーバのログを調査することで、原因を突き止めることができます。 一方で、こういったログの調査だけでは、その原因にたどり着くことができなかったり、相当な苦労が伴うケースもあります。 あるサイトのある日の出来事 つい先日のことですが、KLabの運営している某ソーシャルゲームにて、サ

    ログからは見えてこない高負荷サイトのボトルネック : DSAS開発者の部屋
    hogem
    hogem 2012/07/09
    "tcpeekは、TCPのセッション確立時に発生するエラーを監視・集計するネットワークモニタです" これは便利なので利用させてもらうとして、l2 switchの故障はsnmpでわかるような気がする。
  • 高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋

    はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立

    高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋
    hogem
    hogem 2011/07/09
    miruoについて "ざっくり言うと「異常と思われるパケットだけを表示してくれる tcpdumpみたいなツール」といったところでしょうか。"
  • 負荷試験ツール「インターネット破壊」を公開しました : DSAS開発者の部屋

    負荷試験ツール インターネット破壊を公開しました。 こちらはずっと社内で負荷試験に使用していたツールです。社内で使用していたものなので、ソーシャルアプリ向けの機能などが多少追加されていますが、もちろんんそれ以外のWebアプリケーションでも使用できます。 基的にはApache JMeterのようなWebアプリケーションむけのシナリオ負荷試験ツールです。コマンドラインオペレーションだけで実行でき、サーバー上で簡単に負荷試験を実施できるのが特徴です。POSTリクエストなどはもちろん、レスポンスのチェックやUserAgentの偽装、ランダムな値をパラメーターにセットする機能も実装しています。 注意: 当然ながら自分の管理下にないサイトに向けて負荷試験ツールを実行するのは絶対にやめてください。非常に危険です。 物騒な名前がついていますが、これは完全にわたしの小児的感性の趣味によるところです。地震で

    負荷試験ツール「インターネット破壊」を公開しました : DSAS開発者の部屋
    hogem
    hogem 2011/03/19
    おー 簡単に使えそうで素敵
  • apache module 開発事始め : DSAS開発者の部屋

    先日は,必要に迫られて Apache 1.3 の mod_access を改造したという話を書きました.その時は単にあるものを改造しただけでしたが,ふと思い立って,一から Apache 2.0 用のモジュールを書いてみました.書く上で色々 Web サイトを探してみたのですが,あまり日語の入門向けの文章が見あたらなかったので,開発する上で分かったこと(と言うほど大したものじゃないですが)をまとめておこうと思います. フェーズには,例えばそのリクエストを受け付けるか拒否するかを決めるフェーズや,リクエストされた URI と実際のディスク上のファイルとの間の対応付けを解決するフェーズ,そしてもちろん実際のレスポンスを生成するフェーズ等があります.hook 関数を挿入するポイントはこれらのフェーズになりますが,もちろんその全てのフェーズのための関数を用意する必要はありません.また個別の設定を施す

    apache module 開発事始め : DSAS開発者の部屋
  • 「エキスパートPythonプログラミング」を翻訳しました : DSAS開発者の部屋

    昨年の12月から翻訳していた、「エキスパートPythonプログラミング」(原題「Expert Python Programming」) というが、5/31に発売になります。 エキスパートPythonプログラミング 著者:Tarek Ziade 販売元:アスキー・メディアワークス 発売日:2010-05-28 クチコミを見る まだAmazonには目次が載っていませんが、 http://dl.dropbox.com/u/284189/epp/index.html で翻訳中時点の目次を公開しています(出版されるものと若干違いがあります)。 キャッチコピーにもありますが、このPythonの入門書ではなく、 すでにある程度Pythonのプログラムを書ける人がこれから活躍していく上で必要な 知識を網羅的に習得するためのです。 コンテキストマネージャーやメタクラスなどの高度なイディオム、 パッケ

    「エキスパートPythonプログラミング」を翻訳しました : DSAS開発者の部屋
  • Apache 2.3/2.4系に実装中の新機能をちょっと先取りして見てみよう : DSAS開発者の部屋

    (追記: 続編をupしました。設定例と動作検証を行っています。→こちらへどうぞ) Apacheといえば、Webサービスを構築する上でだいたいどこかで必ずお世話になるであろう、HTTPサーバのデファクトスタンダードとして幅広く定着したソフトウェアだと思います。KLabでも各所で運用してお世話になっています。 現在、バージョンは2.2系が安定版(stable branch)となっておりますが、開発版である2.3系が既に並行して公開されているのをご存知でしょうか。新しい機能や技術を取り入れて行く為に2.2系との間の互換性を時に犠牲にしつつ、様々なチャレンジが行われているわけです。将来的にはこのバージョンが2.4系となって新しい安定版として提供されることになるでしょう。 このDSASブログでも、Apache 2.3系で取り組まれている新しい機能について着目し、面白そうなものを一つずつ取り上げながら

    Apache 2.3/2.4系に実装中の新機能をちょっと先取りして見てみよう : DSAS開発者の部屋
    hogem
    hogem 2010/02/25
    "他に細かい設定がいくつか可能ですが、それを含んでもCGIスクリプト等を全く作成していない点に注意してください。静的なHTMLファイルだけで認証機能付きのサイトを構築することができるのです。"
  • なぜ apache module を更新すると Segmentation fault するのか : DSAS開発者の部屋

    今回は、apache module について気になることがあったので紹介します。 先日 バージョンアップするために apache module を更新した直後 apache が Segmentation fault してしまうという問題に気が付きました。 Segmentation fault した後に apache を再起動すれば、新しいモジュールが反映されて正常に動作するものの何故この様なことが起こるのか不思議に思い原因を調査してみました。 % curl http://localhost/ curl: (52) Empty reply from server レスポンスが空です。apache のログには [Thr Mar 29 17:52:01 2007] [notice] child pid 20001 exit signal Segmentation fault (11) この様なエ

    なぜ apache module を更新すると Segmentation fault するのか : DSAS開発者の部屋
    hogem
    hogem 2010/01/09
    installコマンドはunlinkしてからコピー、cpコマンドはファイルを上書き する
  • DSAS開発者の部屋:MAKUOSANバージョンアップのお知らせ(Ver1.1.2)

    MAKUOSAN をバージョンアップしましたのでお知らせします。 主な変更点は以下のとおりです。 【Ver1.1.1→Ver1.1.2】 シャットダウンメッセージを送出しない不具合を修正 Ver1.1.1には、makuosanの終了通知が送出されないという不具合がありました。そのため、makuosanを終了しても、しばらくの間メンバーリストに残ってしまうという問題がありましたが、これを修正しました。 【Ver1.0.1→Ver1.1.1】 msyncコマンドに--deleteオプションを追加 送信元に存在しないファイルを転送先で消すことができるようになりました。 転送速度が向上 ファイル転送速度が約1.5倍(当社比)になりました。 1対1での速度はまだscpにかないませんが、今後も随時改善していきます。 エラーレポートを詳細に表示 転送先で発生したエラーなどを詳細に表示するようにしました。

    DSAS開発者の部屋:MAKUOSANバージョンアップのお知らせ(Ver1.1.2)
    hogem
    hogem 2008/12/29
    delete機能が追加された / 転送速度と負荷がまだ不明だけど使えそう / 変てこなNASでファイル共有するより良さげ
  • DSASのファイル転送システムをオープンソースで公開します : DSAS開発者の部屋

    DSASのファイル転送システムを、オープンソースで公開します。 その名は、makuosan(まくおさん:通称「まくお」)っていいます。 名前は冗談っぽいですが、内容はわりと真面目です(^^; MAKUOSANプロジェクトサイト Webサイトの運用に欠かせない作業のひとつに、「デプロイ」という作業があります。 これは、新しいプログラムやデータなどをWebサーバに設置して利用できるようにす ることを指していますが、サイトの規模が大きくなってWebサーバの台数が増えると、 それに比例してファイル転送にかかる時間も長くなっていきます。 一般的な話として、サイトの規模が大きくなるほど運用コストは増大しますが、 その要因のひとつとして「デプロイ時のファイル転送に時間がかかる」という 点がありました。そこで、できるだけ運用コストを抑える(作業者の負担を減 らす)ために、独自のファイル転送システムをこしら

    DSASのファイル転送システムをオープンソースで公開します : DSAS開発者の部屋
    hogem
    hogem 2008/12/11
    ]以前、オープンソースで公開すっかも、と言っていたアレ
  • DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋

    Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな

    DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋
    hogem
    hogem 2008/11/10
    OSに落とされるぐらいなら、DB自身がメモリ不足のエラーで落ちたほうがマシっていう / /proc/sys/vm/overcommit_* / man malloc見たら、この動作はバグらしい
  • shredのあれこれ : DSAS開発者の部屋

    先日の shredを6倍速くしてみた のエントリは、 社内向けのメールをほとんどそのまま公開してしまったために、危険性にふれず安易に手抜きを推奨するような記事にしてしまいました。 社内でshredを使う目的は、過去に そのディスク、捨てる前に 〜shredで内容消去〜 でも紹介したように精神衛生上の問題なので乱数の質が落ちることは問題にならなかったのですが、これを機にもうすこしshredやHDDの消去について調べてみました。 shredの元になった論文 shredのinfoからリンクされている論文があります。 (Secure Deletion of Data from Magnetic and Solid-State Memory) この論文を読んでみると、shredがいくつものビットパターンで何passも書き込みを行う理由が説明されていました。 磁気的に消去するために、1と0を交互に何度

    shredのあれこれ : DSAS開発者の部屋
    hogem
    hogem 2008/10/21
    diskのデータを(rmより)復元不可にして消去するshredについて
  • DSAS開発者の部屋:LinuxでのタグVLANの利用 〜 vconfigの使い方

    スイッチ間で VLAN-ID をやりとりするために利用されることが多いタグVLANですが、Linuxルータ上から直接利用することで、LANケーブルのタコ足を解消することができます。まあ、「L3スイッチ使うからいいもん」という方は軽く流してやって下さい(笑 ただ、LinuxnetfilterでVLAN間のフィルタ制御ができるのは魅力に感じます。 apt-get install vlan これで、さくっとインストールできます。 使い方も非常にシンプルで、 vconfig add デバイス名 VLAN-ID とするだけです。 例えば、 vconfig add eth0 1 とすると、eth0.1 というインターフェイスが作られ、VLAN-ID=1 のタグ付きパケットはここから出入り出来るようになります。些細なことですが、VLANタグ付きのパケットが eth0.* から出入りしている様子を最初に

    DSAS開発者の部屋:LinuxでのタグVLANの利用 〜 vconfigの使い方
    hogem
    hogem 2008/08/26
    linuxでもタグVLANできたのか。。。なぜか出来ないもんだと思い込んでた
  • DSAS開発者の部屋:ケータイやクローラの判別などに使えるmod_cidr_lookupを公開しました

    mod_cidr_lookupというApacheモジュールを公開しました。 http://lab.klab.org/wiki/Mod_cidr_lookup mod_cidr_lookupは、アクセスしてきたクライアントのIPアドレスが、指定したCIDRブロック群のいずれかにマッチするかどうかを判別するApacheモジュールです。 Apache 2.0と2.2系に対応しています。 マッチした結果は、環境変数 (X_CLIENT_TYPE) とHTTPリクエストヘッダ (X-Client-Type) にセットするので、Apache自身とバックエンドのWebアプリの両方で同じ情報を参照することができます。 このモジュールを使うメリット 簡単にクライアントの種類を知ることができる 判別処理はモジュールが行ってくれるので、のちほどお見せるように、Webアプリやhttpd.confでは環境変数やリク

    DSAS開発者の部屋:ケータイやクローラの判別などに使えるmod_cidr_lookupを公開しました
  • Windows用フリーウェア「WinAmulet」を公開します : DSAS開発者の部屋

    ・「イージスガード」公開のお知らせ (2009/10/06) WinAmulet 上位互換の「イージスガード」を個人用フリーソフトとして公開しました。イージスガードに使用制限はありません。今後はぜひこのイージスガードをご利用下さい。 ・WinAmulet 終了のお知らせ(?) (2009/08/13) ■ はじめに 私の PC には個人的なファイルをたくさん保存しているフォルダがあります。その中身は、住所録や思い出のスナップ、メールデータやちょっとした秘密のメモなどさまざまです。 ある時ふと思いました。これらのファイルを読み書きするときに使うプログラムはごく限られています。 普段自分がそれ以外のプログラムを使ってこれらにアクセスすることはありませんし、まして、たとえ Windows のシステムプログラムであっても、自分の意図とは無関係に動いているプログラムからこれらに勝手にアクセスされるの

    Windows用フリーウェア「WinAmulet」を公開します : DSAS開発者の部屋
    hogem
    hogem 2008/08/16
    「あるフォルダへのアクセスが可能なプログラムを制限することのできるツール」 どこかで使えそう
  • NFS経由で正しい内容が読めない場合がある問題の原因と解決策 : DSAS開発者の部屋

    今日はLinuxのNFSの問題について書きたいと思います。 (Linux以外の実装は調べていませんm(_ _)m) その問題とは、NFS経由で読んだファイルの内容が正しくない場合がある、というもので、NFSクライアントがnoacオプションつきでmountしていても発生してしまいます。(noacオプションが指定されていない場合は、これから述べる原因とは関係なく、メタ情報がキャッシュされるのでそもそも正しい情報が得られない可能性があります) 同じファイルに対して 一秒間の間に 異なるNFSクライアントホストから 同じサイズのデータを書き込んだ このとき、自分より後に誰かが書き込んでいても、それより前に自分で書き込んだデータが読み出されてしまいます。 ちょっとわかりづらいので図示します。 時間 NFSクライアント1 NFSクライアント2 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    NFS経由で正しい内容が読めない場合がある問題の原因と解決策 : DSAS開発者の部屋
  • repcached 1.0リリースの補足とちょっとしたHowTo : DSAS開発者の部屋

    前のエントリでrepcached 1.0のリリースをお知らせしました。 開発の動機はプロジェクトページにちょっと書いたのですが、たいせつなことをひとつ書き忘れていました。 repcachedを開発しようと思い立ったのは、ひとことでいうと「キャッシュサーバといっても止まらないようにしたい」、別ないい方をすると「サーバ管理者だって夜はぐっすり眠りたい」というものでした。 そしてふたりのエンジニアが自ら社内向けに企画・提案してrepcachedの設計・開発にとりかかり、プロダクション環境で使えるようなレベルのものができあがりました。 これがrepcachedを開発した動機です。 さて、昨日はrepcachedをみなさんに向けて公開しました。 いうまでもなく、repcachedを社内に閉じて外部には公開せずに使い続けるという選択肢もありました。 でもわたしたちはそうしませんでした。 わたしたちはい

    repcached 1.0リリースの補足とちょっとしたHowTo : DSAS開発者の部屋
  • OpenSSH クライアントの proxy -- 踏み台サーバを経由しての ssh : DSAS開発者の部屋

    DSAS のメンテナンスは,基的に ssh を使ったリモートメンテナンスで済んでしまいます.夜中や休日に非常事態が起こったとしても,ネットワーク接続さえ確保できればその場で対応できます.ただ,さすがにインターネットから DSAS に直接 ssh できる様にしておくのは一抹の不安があります.ですので,DSAS への ssh 接続は社内のサーバからのみ許すようにしておいて,外からログインする必要があるときは一旦社内のサーバを経由することにしています. このような形にしている場合,DSAS にログインしようとする際は,一旦社内のサーバに ssh 接続する必要があって,小さなことですが一手間かかってしまいます.できればワンステップで接続できる方法が無いかと思って色々検索してみた(※)ところ,このページで ProxyCommand という設定項目を見つけました(見つけたのがボスの個人サイトなのは

    OpenSSH クライアントの proxy -- 踏み台サーバを経由しての ssh : DSAS開発者の部屋
  • DSAS開発者の部屋:携帯ゲートウェイのIPアドレス帯更新を効率的に確認する方法

    携帯電話各キャリアは、そのゲートウェイのIPアドレス帯域を公開しています。 DoCoMo au SoftBank WILLCOM 携帯ブラウザからのアクセスの場合、このIPアドレスがソースアドレスとなるので、アクセス制御や判別のために使っている方は多いのではないかと思います。 今回は、このIPアドレス帯の更新を効率的に確認する方法についてのお話です。 更新されたかどうかの確認だけならアンテナ系のWebサービスを使えばよいのですが、それだけだと、 どのIPアドレス帯が追加・削除されたのかわかりづらい。 IPアドレス帯のコピペが面倒くさい。 といった不満点があります。 そこでNet::CIDR::MobileJPというPerlのモジュールの出番です。(作者はモバイルファクトリという会社の方のようです) このモジュールには与えたIPアドレスが携帯かどうかを判別する機能があるのですが、次のようにす

    DSAS開発者の部屋:携帯ゲートウェイのIPアドレス帯更新を効率的に確認する方法
    hogem
    hogem 2007/10/13
    IPアドレス帯取得するperlをcronで動かす => 差分があればメール
  • DSAS開発者の部屋:特集記事『Linuxロードバランサ構築・運用ノウハウ』を公開します

    Linuxロードバランサ構築・運用ノウハウ』を公開します! これはWEB+DB PRESS Vol.37の特集記事としてDSASチームが執筆したもので、技術評論社様の許可を得て今回公開するはこびとなりました。 一口でいうと、「Linux+IPVS+keepalivedを使って、冗長構成(Active/Backup)のロードバランサを作るまで」の解説記事で、 サーバ負荷分散一般についてのはなし Linuxでロードバランサを作ってみる ロードバランサを冗長化 といった構成になっています。 みなさんがLinuxロードバランサを導入・構築・運用する際の一助になれば、DSASチームとしてもうれしい限りですので、是非、ご覧になってください! 第1章 サーバ負荷分散概論 特集のはじめに なぜサーバ負荷分散をするのか? サーバ負荷分散の実現方法 ロードバランサのいる構成 ロードバランサはなにを元に分散す

    DSAS開発者の部屋:特集記事『Linuxロードバランサ構築・運用ノウハウ』を公開します