タグ

ブックマーク / naoya-2.hatenadiary.org (24)

  • 実践ハイパフォーマンスMySQL 第2版 - naoyaのはてなダイアリー

    オライリー・ジャパン から実践ハイパフォーマンスMySQL 第2版が発売されました。第2版の出版にあたって、弊社の id:stanaka, id:hideoki と自分の3人で監訳を担当させていただきました。 実践ハイパフォーマンスMySQL 第2版 作者: Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D. Zawodny,Arjen Lentz,Derek J. Balling,伊藤直也(監訳),田中慎司(監訳),吉川英興(監訳),株式会社クイープ出版社/メーカー: オライリージャパン発売日: 2009/12/14メディア: 大型購入: 17人 クリック: 373回この商品を含むブログ (45件) を見る 好評だった初版は確か、自分がはてなに入社した直後ぐらいに読んだ記憶があるのでもう 5 年も前になります。はてなの MySQ

    実践ハイパフォーマンスMySQL 第2版 - naoyaのはてなダイアリー
  • Perl で 8ビット CPU を作る - naoyaのはてなダイアリー

    CPU を作る、と言ってもハードではなくソフト、仮想機械です。 2001 年から UNIX USER で連載されていた西田亙さんの「gccプログラミング工房」。いまさらながら、バックナンバーを取り寄せて初回から順番に読んでいます。とてもためになる連載です。 この連載中で第10回から数回に分けて開発されていた octopus という 8 ビット CPU の仮想機械があります。オリジナルは C 言語で書かれていたのですが、その設計を見て、これは他の言語でも作れるのではないか、と思い Perl に移植してみたところなんとか動作させることができました。以下の URL にコードを公開します。(西田さんに確認を取ったところ、オリジナルのソースは Public Domain とのことでした。オリジナルは http://www.skyfree.org/jpn/unixuser/ からダウンロード可能です。

    Perl で 8ビット CPU を作る - naoyaのはてなダイアリー
  • さくらインターネット移行記#5 久しぶりの移転作業

    だいぶ間が空いてしまいましたが、久しぶりのデータセンター移行記です。 アンテナ、カウンター、検索を移転 完全移行もぼちぼちゴールが見えて来た今日この頃ですが、先日もサーバーの移行作業を行いました。はてなアンテナの巡回システム周り一式、はてなカウンター、はてな検索などをまとめて移行しました。今回の移行も深夜作業。夜の 2:00 に集合して作業開始です。上の写真は僕のメンテナンス時の作業着です。 サーバールームからサーバーを運び出します。台車が大活躍です。 ぎっしりサーバーが詰まっていた旧サーバールームも、だいぶ閑散としてきました。まだ 70 台近くのサーバーが残っていますが、開発機などを除くと残り 40 台程度になりました。年内には全部移行できるのではないかと思います。 アンテナやカウンターともなるとはてなの中では古いサービスなので、使っているハードも古い。移転にあたって古いサーバーはハード

    さくらインターネット移行記#5 久しぶりの移転作業
  • x86 Linux のメモリモデル、プロセス空間切り替え、カーネルスタック - naoyaのはてなダイアリー

    ひとつ前のエントリ id:naoya:20070924:1190653790 では Linux のコンテキストスイッチにおける、主にハードウェアコンテキストの退避/復帰の処理を追ってみました。その中で カーネルスタック (switch_to() 内で pushl %ebp とかして値が積まれるスタック)とはそのときの実行コンテキストに紐づくカーネルプロセススタックという理解でよいか。 という疑問がもやもや湧いて出てきました。ここ数日 はじめて読む486―32ビットコンピュータをやさしく語る を読んでいたのですが、その中にこの疑問への答えへの入り口が載っていまして、そこを糸口に調べてみました。で、結果としては 答え: 良い でした。 x86 は特権レベルの移行と連動してスタックポインタを切り替える仕組みを持っています。Linux の場合モードはカーネルモード(特権レベル0) とユーザーモード

    x86 Linux のメモリモデル、プロセス空間切り替え、カーネルスタック - naoyaのはてなダイアリー
    cloned
    cloned 2007/10/08
    あとで読む
  • マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー

    ちょっと煽り気味のタイトルですが、CPU がマルチコアになり 2個、4個と増えていく中 Linux の負荷の指針になるロードアベレージをどう読むべきか、という話です。気になったところを少し調べたのでそのまとめを。 http://d.hatena.ne.jp/naoya/20070222/1172116665 でも書いたとおり、Linux のロードアベレージは「ロードアベレージは過去1分、5分、15分の間の実行待ちプロセス数の平均数 = 実行したくても他のプロセスが実行中で実行できないプロセスが平均で何個ぐらい存在してるか」を示す値です。ボトルネックが CPU、メモリ、ディスク等々どこにあるかは関係なく、仕事の実行までにどれぐらい待たされているかを示す値なので、システムのスループットを計測する指標の入り口になる値です。 このロードアベレージですが、実装を見るとランキュー(待ち行列)に溜まった

    マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー
  • さくらインターネット移行記#2 VPN越しのMySQLレプリケーション

    前回さくらiDCに移転し始めた、ということを書いたのですが、あれから一ヶ月ちょっとが経過しましてその後も順調に iDC への移転が進んでいます。すでにラックもいくつか借りて、サーバーも数十台がさくら iDC で稼動しています。回線がこれまでよりも高速なバックボーンに接続されつつ、帯域幅も大きくなったことから、移転したサービスによってはこれまでよりもパフォーマンスが出ているサービスもあります。うち比較的大きなデータを扱うフォトライフも移転を完了していますが、おかげさまで画像の読み出しがかなり速くなったのが体感できるぐらいスループットが向上しました。 既存サービスを移転するにあたって、どういった構成でそれを行っているかをちょっと紹介してみようと思います。 移転当初は、既存のはてなのサービスとはあまり関係していないサーバー群から手を付けました。例えば広告のシステムといった、はてなのデータベースを

    さくらインターネット移行記#2 VPN越しのMySQLレプリケーション
    cloned
    cloned 2007/03/07
    あとで読む
  • naoyaのはてなダイアリー - さくらインターネット移行記#1

    先日のライブドアのテクノロジーセミナー(http://d.hatena.ne.jp/naoya/20061214/1166063145)でも少し触れたのですが、はてなのサーバーは今後さくらインターネットのiDCでホストすることになりました。 複数の iDC を検討しましたが、最終的にさくらインターネットに決めた理由は回線品質の高さと回線が低価格である点でした。 はてなのようなコミュニティ中心のサービスは、お金の面では、どうしても回線コストと収益の間にアンバランスが生じがちです。ショッピングサイトや各種メディアのようなコンテンツに比べてマネタイズが難しい、というのがその主な理由です。 例えばはてなのトラフィックの多くははてなダイアリーの日記へのアクセスで占められていますが、基的に個人の日記にははてな側からは広告を掲載しないポリシーでいます。そのためトラフィックを多数必要とされる箇所で収益を

    naoyaのはてなダイアリー - さくらインターネット移行記#1
  • naoyaのはてなダイアリー - ライブドアのテクノロジーセミナーでしゃべってきました。

    昨晩はライブドアで開催されたテクノロジーセミナーで軽くはてなのシステムや開発体制についてしゃべってきました。資料を以下に置いておきます。 http://bloghackers.net/~naoya/ppt/061214livedoor_hatena.ppt (ppt, 286k) 昨晩の感想、資料を読んでの感想など、トラックバックでお待ちしております。

    naoyaのはてなダイアリー - ライブドアのテクノロジーセミナーでしゃべってきました。
  • naoyaのはてなダイアリー - カンファレンスの資料 - はてなと私と開発環境

    UP しときました。時間が15分だったので、ちょっとあっさりめの内容ではありますが。 http://bloghackers.net/~naoya/pdf/060909devcon.pdf 個人的にはここ最近のカンファレンスの中では一番面白かったかなと思いました。いろいろ役に立つ話とか、自分もやってみようみたいな話がいろいろ聞けたのが大きかったのかも。 2回目はどうだろう、だいたい話す内容が被りそうなので難しいかもね(笑) あ、そうだ。昨日の感想とかいろいろ読みたいので blog に書いた人は Shibuya.js のページなりこのエントリなりにトラックバックしていただけると大変嬉しいです。読んだやつは http://b.hatena.ne.jp/naoya/decon/ あたりに。

    naoyaのはてなダイアリー - カンファレンスの資料 - はてなと私と開発環境
  • naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使う

    あとで書く、と言った手前なので書くとします。 DSASの中の人がすごい勢いで LVS の話を書いてくれてます。この辺。LVS を使うと Linux と箱でロードバランサが作れちゃいます。普通に買ったら数百万とかしちゃうやつ。 DSAS の中のひとに感謝しつつ、いい機会なのでやってみよう! と思っていろいろ試して昨日あたりからはてなの中でも LVS + keepalived で動かしはじめてます。いまのところ問題なし。 そのロードバランサをどこに使ってるかですが、普通ロードバランサというとインターネットからの入り口のところに置いてウェブサーバーの負荷分散に使うイメージがあります。が、今回ははてなでは MySQL のスレーブの手前に置くという役割でとりあえず使いはじめました。 +-----------+ +-----------+ | mod_perl | | mod_perl | +----

    naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使う
  • naoyaのはてなダイアリー - Inside Flickr

    phpspot開発日誌 で Flickr のシステム構成に関するプレゼン資料のサマリが載っていて、その PDF を見たところプログラマ1人デザイナー1人で作ってるとか PHP で Smarty を多用してるとか、MySQL InnoDB でほげほげとかあって面白かったわけですが、この PDF、一年くらい前のもののようでした。 ただ、Yahoo! に買収されるもっと前のものとはいえ、参考になるポイントはとても多く有益な資料であることはまちがいないですね。個人的には、プログラマ一人、というところに納得。逆に一人あるいは数人じゃなかったらどうしてあれだけのものが作れたか、不思議に思ってたところだと思います。 なお、このタイトルは Inside LiveJournal's Backend (PDF) をもじったものです。こういうケーススタディ的な資料が無料で見れるというのはすばらしい時代だなと思い

    naoyaのはてなダイアリー - Inside Flickr
  • naoyaのはてなダイアリー - MyISAM vs InnoDB

    あくまで憶測で仮説でしかないんですが。 MySQL のストレージエンジンのうち代表的な二つ、MyISAM と InnoDB はよく MyISAM: Read は速いけどテーブルロックのため並行性が低い。運用が簡単。 InnoDB: MyISAM より Read は遅いけど並行性が高い 。行レベルロックなので。あとトランザクションや外部キー制約。運用が MyISAM よりちょっとめんどくさい。 という区別がされます。ここから転じて、 MyISAM は参照系クエリが大部分を占める場合に適用すると良い。例えば blog アプリケーションとか。 InnoDB は更新系クエリが多い場合に適用すると良い。 と言わたりします。実践ハイパフォーマンスMySQL でも第2章 ストレージエンジン(テーブル型) P.30 に アプリケーションでトランザクションを使用する必要がなく、主に SELECT または I

    naoyaのはてなダイアリー - MyISAM vs InnoDB
    cloned
    cloned 2006/07/29
  • Apache 2.2.0 + mod_proxy_balancer - naoyaのはてなダイアリー

    Apache 2.2.0 がついにリリースされまして、かねてから期待されていた mod_proxy_balancer が安定版で使えるようになりました。mod_proxy_balancer はその名のとおり Apache でロードバランスするための proxy モジュールです。詳しい解説は yappo さんがしてくれてるのでそちらを。 実は mod_proxy_balancer 使ってみるかーと思って Apache 2.2.0 をインストールしようとしたらいきなり躓きました。APR 1.2.0 が入ってないから駄目だよ! と configure に叱られまして、でも APR 1.2.0 って Apache 2.2.0 インストールしないと入らなくね? みたいな矛盾が発生しました。なので、まず最初に srclib にある APR をコンパイル & インストールして、その後 Apache2 の

    Apache 2.2.0 + mod_proxy_balancer - naoyaのはてなダイアリー
  • naoyaのはてなダイアリー - Perl の話をまとめた

    use strict がどうのこうのという話があって、そういえば昔自分もそんなこと書いたなあと思っていろいろ自分の書いた Perl の話を見返してて、せっかくだから拙作のまとめでも作っておくかと思いました。とりあえず文章量がそれなりにあって、まとまりのあるものだけを見繕ってみます。 今見ると、当時の理解が不十分で微妙なところもあったりしますが、そのあたりはご愛嬌。 いま読んでもまだ陳腐化はしてなさそうな話 お薦めの Perl をいくつか紹介 : NDO::Weblog Perlおすすめの書籍や情報。今ならここにPerl救命病棟とWEB+DB PRESS総集編を入れるかな。 Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー Perlプログラマのレベル10。なんか他言語にも飛び火した。 Perl の変数に関するちょっとした誤解と、動的な

    naoyaのはてなダイアリー - Perl の話をまとめた
    cloned
    cloned 2006/05/21
  • ETech 2006 レポート

    ETech も今日が最終日です。午前中のセッションを終えて、聞きたいものはだいたい全部終わったし、ここらで全体を通してのレポートを書いてみます。一つ一つのセッションについて全部レポートは難しいので、個人的に面白いと思ったトピックやセッションだけ振り返ってみたいと思います。 Attention Economy 今回の ETech のテーマは Attention Economy。ETech は 5 回目ですが、毎年このようにテーマがあるらしく、そういえば去年の ETech は "Remix" がテーマでした。この辺がきっかけて Web 2.0 がどうこうという話が盛り上がりはじめたんだっけ。 Attention Economy というのは 今回のテーマは"Attention Economy"ということで、Attentionをキーワードに色々な話が繰り広げられています。 パソコンはどんどん安くな

    ETech 2006 レポート
    cloned
    cloned 2006/03/10
  • naoyaのはてなダイアリー - Jemplate で JavaScript でもロジックとビューを分離する

    JSON を Template-Toolkit で展開する Jemplate という記事を書いたんですが、Jemplate を使うと何がいいかってのをもう少し詳しく書いてみます。 Jemplate は TT で JavaScript 上の JSON を展開できるんですが、それだけ聞いてもしかすると「これで普段サーバーサイドでやってるテンプレートの展開をクライアントサイドに持って行けて負荷がクライアントに移ってウマー」っていうのが使いどころのようにも思えちゃいますけど、そうじゃない。検索エンジンに引っかからなくなったりとか、アプリケーションの使い勝手が悪くなったりとか色々弊害があります。 そうじゃなくて、Jemplate は JavaScript のためのテンプレートとして使います。 試しに Catalyst で簡単なアプリケーションを作ってみました。ちょっと動かしておく環境がないのでソース

  • naoyaのはてなダイアリー - サーバーを増やせばいいんじゃない、サーバーを増やすだけで解決できるように努力するのだ

    ライブドアの技術の話について書いた、その記事のコメント欄。最初は感情的な批判などがあって話題とは別の方向で炎上し気味だったんでうーんと思ってたんですが、後半になってきて少し面白い議論が出てきました。 こんな反応があった。 アクセス数が増加している段階で、ApachやAppServerのスレッド数をいじろうが、ヒープサイズを増やそうが、DBのパラメータをいじろうが、はてまたアプリを書き直そうが、性能要求にミートするには相当のワークが発生しますし、どう最適化、チューニングしても追いつきません。そのようなチューニングにお金をかけるならサーバーを追加したほうが安く上がるのではないかと思うのですが、如何でしょう? それに対する僕の返信は、 確かに何千万もするファイルサーバーとか、ロードバランサーとかで問題が解決できる機会っていうのは存在すると思います。なので ”負荷が高ければ、結局サーバーを単純に増

    naoyaのはてなダイアリー - サーバーを増やせばいいんじゃない、サーバーを増やすだけで解決できるように努力するのだ
  • Hacking Apache HTTP Server at Yahoo! - naoyaのはてなダイアリー

    遅ればせながら Hacking Apache HTTP Server at Yahoo! を一通り読みました。これは Yahoo!エンジニアである Michael J. Radwin 氏が昨年末の ApacheCon で喋ったときのスライド。 http://public.yahoo.com/~radwin/talks/yapache-apachecon2005.htm Yahoo! が Apache に独自に手を入れた "yapache" なる Apache を使ってるというのはときどき聞いてたんですが、具体的にどういう変更が入ってるかとかは謎のままでした。このスライドにはその辺りの話が惜しげもなく書いてあって、とても面白い。 シグナルを使わないでログをローテーションするとか、ログフォーマットを工夫してるとか、出力の HTMLホスト名などを記載しておいてサポートに役立てるとか、いろ

    Hacking Apache HTTP Server at Yahoo! - naoyaのはてなダイアリー
  • えいご漬け - naoyaのはてなダイアリー

    僕もTOEIC 970 点ぐらい取りたいなあと妄想しちゃったりしてるんですが、なかなか勉強ってのは気が進まないもんでどうしたもんかなという最中、これだ! と思ったゲーム えいご漬けを買ってみました。 英語が苦手な大人のDSトレーニング えいご漬け 出版社/メーカー: 任天堂発売日: 2006/01/26メディア: Video Game購入: 19人 クリック: 237回この商品を含むブログ (697件) を見る DSのゲームなんですが、こいつはかなり良いですよ。まだディクテーションをちょっとやってみたぐらいなんですけど、英語の単語とか文章を DS が喋るので、それをタッチペンで書いて覚えていくと。最初はそんなんで楽しいのかなーと思ってたんですけど、やってみたらこれが意外にもかなり楽しい。なんでだろ。タッチぺンで単語を書いていくときの心地よさとか、聞き取ったのがばっちり正解だったときの爽快感

    えいご漬け - naoyaのはてなダイアリー
  • TinyMCE JavaScript Content Editor - naoyaのはてなダイアリー:

    とある友人に教えても経ったTinyMCEという WYSYWIGWYSIWYG な HTML エディタライブラリがやばそう。 JavaScript で記述された LGPL でオープンソースな クロスプラットフォームの 多言語対応もしてて 簡単に使える ライブラリ。似たようなものに htmlArea というのがあって結構昔に話題になってたんですが、導入がめんどくさかったりブラウザによってはまともに動かなかったりとか色々面倒な感がありました。TinyMCE の方はと言いますと、Installation instructions にもあるとおり、 <html> <head> <title>TinyMCE Test</title> <script type="text/javascript" src="/js/tiny_mce/tiny_mce.js"></script> <script type=