うまいぼうぶろぐ

linuxとhttpdとperlのメモ

YAPC::Asia 2008 2日目memo

敬称略でいきます。

hiroshi sakai - Open Source TypePad Mobile

  • TypeCast
  • HTMLタグ書き換え
  • HTML::Split
    • HTMLを指定文字数で分割
      • 現状は単語の途中でもぶったぎる
      • でもタグの状態は維持してくれるのでDOM構造は崩れない
  • HTML::MobileFilter(仮)
    • 実装は出来てるけど、テストコードがまだないのでupできない
  • Typepadの負荷
    • Atomサーバに負荷がかかる
    • HTML生成の負荷
      • キャリア共通のHTMLをキャッシュ(in memcached)して、処理時間を半減

masahiro nagano - memcached in mixi

  • memcachedとは
    • 分散メモリキャッシュ
    • メモリなので高速
    • key,valueのペア(hash)をメモリ管理する
    • DBのレスポンスをキャッシュして、DBへのアクセスを減らすのが典型的な使い方
    • memcached使ってるとこ
  • プログラム言語からの利用
    • perl,php,rubyなどライブラリ/モジュールが用意されてるので楽
  • 分散について
    • クライアント側で分散
    • keyごとに異なるサーバに接続
  • Cache::Memcached (perl module)
    • newするときに接続先のサーバを複数指定可能
    • get_multiは複数サーバに非同期リクエストするので高速
    • method: get,add,replace,set
      • 引数はすべて(key,value,sec(キャッシュ保持期間))
    • rehash
      • サーバに接続できなかったら、他のサーバに接続しにいく??
  • memcached in mixi
    • サーバ100台以上
  • cacheについて
    • サーバ一台につき、memcachedを3GBで起動
    • 76台は3GBで起動 => 218GB
    • メモリ使用量: 88%ぐらい
    • cache hit率: 94%ぐらい
  • 監視について
  • 性能 (とあるサーバの結果?)
    • 15000 requests / sec
    • トラフィック 400Mbps
    • コネクション 10000
    • CPU利用率
      • idleは常時90%ぐらい
      • load averageは1以下
  • 特定サーバへの集中
    • topに表示されるnews,ユーザのconfigなどは同じkeyなので、特定のキャッシュサーバに集中
    • app側でkeyを書き換えると分散できる
  • memcachedのバグ
    • MLにも報告あがってるけど、修正に時間かかってるらしい
    • mixiはバグの箇所にあたりをつけて修正してる
  • Cache::Memcachedの問題点
    • サーバの追加/削除をするとhit率が大きく下がる
  • Cache::Memcached::Fast
    • C,高速
    • サーバ追加後もhit率はそれほど低下しない
    • Cache::Memcachedと違ってrehashしない

yoshinori takesako - How to defend Apache/CGI against multibyte XSS atacks

本題と直接は関係ないですが、HDR画像のことも喋ってました。
今回のYAPCのパンフレットもHDRで作ったそうな。

  • webアプリ脆弱性の届出件数は年々増加
  • mod_imagefight
    • gif,jpg,pngなどにはjavascriptのコードを埋めることが可能
      • 無毒化して出力
    • パフォーマンスのことはあんま考えて作ってない
  • HTML Escape
    • 徹底してても100%安全ではない
    • ブラウザの文字コードのバグとか
  • mod_wafful

naoya ito - DBIx::MoCo

  • DBIx::MoCo
    • hatenaで自作
    • MoCo => Model Component
    • MySQLSQLiteに対応
    • force installが必要かも
  • 透過キャッシュ
    • Cache::Memcached使うのは簡単
    • 更新系のクエリを検知してDBもキャッシュも同時にupdate
  • SQL
  • Ruby-like method
  • ドキュメントはまだ少ない

kazuho oku - Architecture of Pathtraq

  • long-tail
    • y = c * x^(-0.44)
    • ヒット数が1/10のページは2.75倍
  • pathtraqとは
    • alexaライクなwebアクセス解析サービス
    • 比較的 短い周期でランキング付け
      • ITニュース、スポーツ、Yahooニュースのランキングなど
      • 人気、勢いのあるページのランキング
      • それに対してgoogleは比較的静的
  • Cache::Swifty
  • Filter::SQL

toshiyuki sugimoto - There's more than one way to monitor system.

デモ実演して、見事電話かかってきてました。

  • システムの異常の検知/通知をどうするか
  • 監視対象
  • 通知方法
    • mail
    • instant messenger
    • irc
    • VDFも (お
  • CTIはどうよ (Computer Telephony Integration)
    • サポート/カスタマーセンターなどで使われているもの
    • 状況に応じてボタンを押してほげほげしたり
  • ハードウェア
    • OpenPCI Card
    • RJ-11 (一般の電話回線で使われてるもの)

CPAN

  • Telephony::CTPort
    • 登録されたサービスダウンを検知して電話する
    • 受け取った人は、ボタン操作で対応を決定
    • 不快な機械音声で起されるのが嫌ならボーカロイドでも使えば良いよ

電話代にご注意を :-)