タグ

ブックマーク / blog.stanaka.org (9)

  • とあるはてな社員の日記 - まっさらなサーバを30分で本番投入できるようにする

    すこし前にはてなスターのリリースがされたのですが、サービス開始直後にありがちなことに、時々負荷で遅くなったり、アクセスしにくくなったりしてしまいました*1。これではいけない、ということで、すぐ次の日に、バックエンドのサーバを一気に10台近くまで増やして、おおむね快適に使える状態になっていると思います。この時に、新しいサーバをまっさらな状態から、だいたい30分程度で番投入することができていました。これを、どのように実現したのかを軽く紹介したいと思います。 ちなみに、サービスの重さは、サーバ増強だけで済むものではなく、それ以降も、Javascriptが重い!とか、アプリケーションロジックで重いSQL を走らせてしまって遅いという問題は何回かありました。が、そこはインフラではなく、アプリケーションの問題で、アプリケーションの改善は、継続的に進んでいると思います。ので、今回は、インフラの話に限定

    とあるはてな社員の日記 - まっさらなサーバを30分で本番投入できるようにする
  • 1日で作る全文検索エンジン - Building a full-text search engine in "ONE" day - - とあるはてな社員の日記

    最近、「Introduction to Information Retrieval」というStanfordの大学院向け教科書のドラフトを読んでいます。id:naoyaあたりが勉強会で読んでいる教科書です。この教科書には、効率のいい全文検索システムを作るにはどうすればいいか、という(まさに)教科書的手法が網羅的に書いてあり、そのあたりに興味がある人には、非常に興味深く読めるお勧めのです。 ただ、面白い面白いと言っているだけでは、エンジニアとしては価値半減ですので、GW中にrubyで一日かけて実装してみました。 さすがに実装は、一日で作ったものですから、非常に素朴です。マルチバイト文字はbi-gramで、シングルバイトはスペースなどの区切り記号で認識しています。インデックスは、rubyの処理系のHashやArrayで保持しており、外部にMarshallで書き出す、というものです。検索エンジン

  • サーバにDoS耐性を付ける - stanaka's blog

    ウェブサービスでは、アクセスが集中して、サイトが落ちる、というのは、よくある話です。純粋に人気が出てアクセス集中するなら、サーバ管理側の責任と言われても、しかたないと思います。しかし、botやF5アタックによる突発的な集中アクセスで、落ちてしまう、というのは、運営側としても、あまり納得がいくものではありません。 そのような突発的なアクセスに対応するために、大量のアクセスをしてくるクライアントを検出し、優先度を落すか、アクセス禁止にする方法などがあります。 というわけで、Apacheモジュールでそれを検出するためのmod_dosdetectorを開発しました。(ちなみにコア部分の開発期間は、Apacheモジュールって、どう書くんだっけ、という状態から、3日でした。) mod_dosdetectorは、Apacheモジュールとして動作し、クライアントのIPアドレスごとにアクセス頻度を測定し、設

    サーバにDoS耐性を付ける - stanaka's blog
  • MySQL Conference 2008に行って来た - stanaka's blog

    今年もMySQL Conference 2008に行ってきました。社内向けの報告資料と雑多なメモですが、よろしければ参考にしてください。 *1 概要 MySQLがSunに買収されて始めてのConference 8セッション並列で、OSCONの規模にだいぶ近い MySQLが扱うトラフィック量・データ量がどんどん大きくなってきており、それにどう追従するか、という観点の話が多い 買収の話とか "MySQL、新機能追加は有償版の「MySQL Enterprise」だけを対象に"というのは、かなりミスリーディングな記事 実体は一部のセキュリティ形の機能やnative storage engine-specific driverをMySQL Enterpriseとして出す、という話 Backup機能や、Falcon, Mariaといったストレージエンジンの開発では、Community ServerとE

    MySQL Conference 2008に行って来た - stanaka's blog
  • Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記

    先日のShibuya.pm #9のLightening Talkで「gdbでXS on mod_perlをデバッグ」という話をしてきました。XSを使い出すと、従来のPerl的デバッグだけでは不十分なのでgdbをうまく使って、効率的にデバッグしましょう、という話です。実は、はてな社内では1年近く前に勉強で話したネタだったのですが、ようやく公開することができました。 Shibuya.pmでは5分という枠があったのでショートver.でしたが、ここでは制限はないので、来のロングバージョンの資料をアップします。ちょっと公開できない情報が混っていたので、xxxで隠していますが、ご了承ください。 ちなみに、Rubyとかでも似た感じでデバッグできると思うので、そちらの人も参考にしてください。長いよ!という人は、最後の「これは設定しておけ的gdb初期化マクロ」だけでもどうぞ。かなり便利です。 (資料公開が

    Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記
  • MySQL Conference & Expo 2007 - とあるはてな社員の日記

    一昨日から今日まで3日間の日程で開催されていた、MySQL Conference & Expo 2007に行ってきました。日帰り圏内どころか、自転車圏内で、こういうカンファレンスがあるのは、素晴しいです。 詳細は、随時アップされるであろうプレゼン資料と、Planet MySQLに大量の報告があります(全部英語ですけど)。 個人的に注目していたのは、Digg.com、Flickr.comとYoutube.comのDB周りアーキテクチャのセッションでした。あとは、http://www.mysqlperformaceblog.com/の人のセッションは、細かいTipsが多く、具体的にだいぶ役に立ちそうです。 というわけで、簡単に注目したセッションの内容を紹介してみます。ちなみに、内容の正確さは無保証です:P 気が向けば、もっといろいろ考察してみるかもしれません。 Technology at Di

    MySQL Conference & Expo 2007 - とあるはてな社員の日記
  • はてなは京都移転するけど、インフラは東京、という話 - stanaka's blog

    はてなの京都移転話も、もうはや周回遅れ気味ですが、あまり気にせずにいきます。ちなみに、今回のエントリの結論はタイトルそのままで、データセンターは京都に移転しません、ということです。 これまで、はてなはデータセンターの移転を二度経験しています。一回目は、京都から東京で1日半ほどサービスが停止しました。その後、鉢山からさくらインターネットのiDCへ1年ほどかけて徐々に移転しました。この時は、各サービスが最大半日程度停止しました。 今回の京都移転を計画していた時もid:jkondoはいつもの調子で、自前サーバからさらに自前DCなんてどうどう?、などと言うのですが、300台程度の規模では自前DC建設の初期コストは賄えないし、また移転のために長い時間サービスを止めれられる状況でもないでしょう、ということで(幸いなことに)没になりました。やれやれ。 id:naoyaもはてなのインフラの仕事から卒業して

    はてなは京都移転するけど、インフラは東京、という話 - stanaka's blog
  • EmacsでGmail IMAPを触る - とあるはてな社員の日記

    ついに、Gmailで待望のIMAPサポートが追加されました!もう何年もGmailにIMAPサポートがあればなぁ、と待ち望んでいたので、極めてうれしいです。 これで、 普段は、Gmailの安定したバックエンド + フロントエンドの軽快なメーラ 出先や他のPCを使う時は、GmailのウェブUI という理想的な使い分けができるようになります。いかにGmailのUIが素晴しくても、ローカルクライアントの軽快さにはかなわないですからね。 ここで、IMAPクライアントとしてどのメーラがいいか?という話になるのですが、オールドタイプのEmacs厨としては、Wanderlustが一押しです。Thunderbirdなんて軟弱者向けです。mewも悪くはないですが、IMAPでのソートをサポートしていないのが致命的です。 というわけで、Gmail向けのWanderlustの設定をまとめてみました。Emacs信者の

    EmacsでGmail IMAPを触る - とあるはてな社員の日記
  • とあるはてな社員の日記:ConsolasをIE( or putty or gVim et al.)で使う

    先日のDECONでの宮川さんの発表で等幅フォントのConsolasがいい、とのことなので、フォント好きなこともあり、試してみました。 Consolasのダウンロードは、ここから。 なお、インストールには、Visual Studioがインストールされている必要がありますので、入れていない人は、このあたりからダウンロードしてインストールしてください(ちなみに無料です)。Consolasのインストール後に、Visual Studioはアンインストールしても、フォントの使用には問題ありません*1 また、Consolasは、アルファベットのみのフォントなので、そのままでは、多くのアプリケーション(IE, メモ帳など)で日語が文字化けします。そのため、Windows2000, XPのFont linkingという機能を利用して、日語については、別フォントで表示されるようにします。なお、Font l

    とあるはてな社員の日記:ConsolasをIE( or putty or gVim et al.)で使う
  • 1