タグ

ブックマーク / www.drk7.jp (38)

  • TokyoCabinet のデータサイズは 64GB 付近で性能劣化

    当ブログでサービスを提供している AmazonSearch ですが、子ども部屋の確保が最大の理由で、自宅サーバから sakura VPS 2G へ一ヶ月ほど前に移行を行いました。移行手順は以前もご紹介した、ブログをさくら VPS へ移行手順に準じて行いました。 AmazonSearch は内部計算が複雑なため、さくら VPS では QPS(queries per second)が 5-6 程度しかでません。したがって、高速化を図るためレスポンス結果を TokyoTyrant(TokyoCabinet)にキャッシュする仕様で実装を行っています。先日まで安定運用できていたのですが、RDB(casket-a.tch) のデータサイズが 64GB 付近に近づいた時点で性能が急激に劣化して高負荷でレスポンスが返せない事象が発生しました。ちょうど 2012/6/2 15:30 付近からです。 [tts

    otsune
    otsune 2013/12/06
  • Google Developer Day 2011 に参加してきました

    2011年11月1日。久々の終日出張です。Google Developer Day (GDD) 2011 DevQuiz をある程度解いたので参加証をいただいていた Google Developer Day 2011 に参加してきました。開催場所はパシフィコ横浜・会議センター、朝早くから激込みの新宿湘南ライナーの人混みに揉まれてやっとの思いで横浜駅に着いたわけだが、大きな過ちを犯しました。普通に歩いて行けると思っていたら 2km ほど距離があったので汗だくになっての会場到着です。 ちょっと到着が遅れてしまったので基調講演では後ろの方の席になってしまいました。基的に英語のスピーチが多いので英語がわけわかめな僕は同時通訳を一生懸命に聞くしかないので結構疲れます。 さて、そんな前振りはどうでもよいでしょう。GDD11JP で感じたことを書きますね。いやぁヤバイです。 Google気で D

    otsune
    otsune 2011/11/02
  • perl と CrenaHtml2jpg を使って大量のサイトを自動キャプチャする方法

    大量のサイトのキャプチャ画像を取得したい!そんな要件のお仕事もたまにあるでしょう。 実際、そんな要件に答えるために随分昔に作ったツールがありましたが、最近また利用する機会があったのでブログのエントリとして記載しておこうと思いました。 過去イロイロと検証した結果ですが、Windows + IE + CrenaHtml2jpg によるキャプチャ画像が一番いけてる画像が取得できる結論に達しました。CrenaHtml2jpg とは http://dip.picolix.jp/disp5.html で公開されているサイトキャプチャツールで非常に良くできたツールです。一般的な使われ方としての GUI 提供板貝に、サーバ向け?としてコマンドラインから内部的に IE を起動して描画してキャプチャ画像を出力する機能を有しています。動作中はもちろんパソコンが重くなるし、コピペが若干動作が怪しくなったりしますが

    otsune
    otsune 2011/08/06
  • ブラウザキャッシュによる HTTP 高速化チューニング

    かれこれ一年ほど前に実施した実サービスでの apache のチューニングネタを思い出したように書いています。 以前いた部署では少ないサーバ台数で大量のリクエストを如何に処理しきるかってことに燃えていたので、静的コンテンツなどをブラウザに支障のない範囲で最大限にキャッシュさせ、サーバとネットワークの負荷を最小化させていました。 当時参考にした情報源は以下の3つでした。 どのようなレスポンスヘッダを返しておけばブラウザキャッシュを最大化できるかのテクニックがまとめられています。 ブラウザキャッシュとレスポンスヘッダ - murankの日記 Kazuho@Cybozu Labs: キャッシュの上手な使い方 [Studying HTTP] HTTP Status Code チューニングにおいて重要なのは自分自身での検証。というわけで自前で検証した結果と検証するために用意したプログラムを公開します。

    otsune
    otsune 2010/05/25
  • jqs.exe が起動していると XP がプチフリする件

    先日、会社で使っている自端末がリース切れと言うことで新しい端末になりました。新しい端末になると毎度のコトながら不要アプリが一掃できてシンプルな環境に戻るし、CPU とかも新しくなって軽快快適な動作に1日ほどは酔いしれる。 ・・・はずなのですが、どうにも不定期(定期的?)にPCがプチフリーズしてしまって、すんごく使い勝手が悪いんです。これがあの有名な SSD プチフリーズかっ!って思いたくなりますが、普通に HDD を使っているので SSD プチフリってわけではありません。ちょいと悩みつつ、だましだまし使ってきたのですが、3日でキレました。( ̄^ ̄)凸 こういうときには、Process Explorer ってのを使って動作を監視していれば、悪さをしているプロセスの判別ができるんです。で見てみました。 なんですかっ?この定期的な I/O ピークはっ!プロセスは jqs.exe ってやつみたいで

    otsune
    otsune 2010/05/10
  • pound と apache をバランスよくチューニングする必要性について

    もう二ヶ月ほど前の話なのですが、お仕事でサイトが異常に重い(遅い)んだけど・・・という苦情が月に1〜2件ほどきていたので、重い腰を上げて格的に調査・解析して pound と apache のチューニングを実施しました。チューニング後はサイトが重いという苦情は皆無になりました。(≧∇≦)b 今回のチューニングのキモは pound と apache をバランスよくチューニングするということでした。完全に見落としていた点でもありました。とりあえず苦情がきてた時点までの構成を図にするとこんな感じでした。 何しろ Web サーバの Load Average も CPU 負荷も高くないのでサーバ側は悪くないという思い込みが原因特定を遅らせた一番の原因。この2つの数値はとっても重要なのですが、この数値に真実の見極めを惑わされてはいけません。 以下、調査手順など備忘録的なメモ。途中かなり寄り道したり脱線

    otsune
    otsune 2009/12/24
  • Apache2 - worker MPM のプロセス&スレッド数のチューニング

    前エントリ pound と apache をバランスよくチューニングする必要性について の続きです。Apache2 のチューニングによる高負荷(大量アクセス)対策を考えてみます。 ここまできてやっと、そもそも高負荷時に apache2 のプロセス数が足りていなく、静的コンテンツの応答時間が遅延しているのかも?という仮説を立てることができました。図解するとこんな感じです。 Apache2 はもちろん worker MPM で動作させています。worker MPM ってなんぞ?という方は、このブログを読んで頂けている方にはいらっしゃらないかと思いますが http://httpd.apache.org/docs/2.0/mod/worker.html あたりを読むと良いでしょう。 このマルチプロセッシングモジュール (MPM) は、マルチスレッドとマルチプロセスのハイブリッド型サーバを 実装して

    otsune
    otsune 2009/12/23
  • UML::Class::Simple で Catalyst のクラス継承図を描いてみた

    UML::Class::Simple ってモジュールがあります。このモジュールを使うと既存のプログラムを解析してクラス図を作成することができます。業務で仕様書を書く必要がでた場合、もしくは Catalyst のようなフレームワークをより深く知りたくなったときなどに大いに役立つモジュールです。 http://search.cpan.org/~agent/UML-Class-Simple/lib/UML/Class/Simple.pm UML::Class::Simple is a Perl CPAN module that generates UML class diagrams (PNG format, GIF format, XMI format, or dot source) automatically from Perl 5 source or Perl 5 runtime. Per

    otsune
    otsune 2009/11/29
  • Log::Dispatch::Email は即座にメールが配信されない件

    今面倒を見ているアプリケーションのログ管理として Log::Dispatch 系を採用しました。 SQL などのトレースログは Log::Dispatch::FileRotate を使ってファイルに書き出しています。エラーログは同じく Log::Dispatch::FileRotate を使ってファイルに書き出すとともに、Log::Dispatch::Email を使ってメール通知をする仕組みで実装しました。 すでにこのアプリケーションは稼働させてから半年ほど経つわけですが、どうにもエラーメールの配信が遅れたり遅れなかったりと不思議な挙動をしていました。幸いにも致命的なエラーは1つもなく今に至っているので、大事には至っていないのですが、長い間メールの遅延の原因がわからず悩んできました。 最初はメールサーバが遅延しているかと考えていたので、メールサーバ側を解析していたのですが、どうにも原因わ

    otsune
    otsune 2009/11/07
  • ドリコムジョブボードサービスが終了する模様です

    以下メールを転記です。平成21年7月10日(金) ドリコムジョブボード終了の告知とあるので、もうすぐサイトでも告知されるのかな・・・。たぶん。 ○○様 いつもドリコムジョブボードをご利用頂き有難うございます。 弊社ドリコムジェネレーティッドメディアはこの夏、大幅な組織改革を予定しており それに伴い、平成21年8月31日(月)を以てドリコムジョブボードのサービスを終了することに なりました。 今回のクローズのお知らせに関しては、7月10日の午後より実施をする予定でございますが、 ○○様には現在まで長い間、ご愛願をいただいておりましたので 少しでも事前にと、ご連絡をさせていただいた次第でございます。 なお今までお支払をさせて頂きました投稿報酬ですが、下記スケジュールにて最終還元させて頂きます。 ※誠に勝手ながら投稿報酬申告の最終締め切りは、ドリコムジョブボード 終了1ヶ月後の平成21年9月30

    otsune
    otsune 2009/07/10
  • Slowloris HTTP DoS 攻撃について

    ちょっと前に Apacheに新たな脆弱性発見 - スラッシュドット・ジャパン で紹介されていた脆弱性なんですけど・・・会社のお達しで各サービス毎に状況報告ってイベントがあったので、ちょいと脆弱性試験してました。そのまとめです。 Apacheに、DoS攻撃に繋がる脆弱性が新たに見つかったそうだ(家/.記事より) この脆弱性は、これを利用したHTTP DoSツール「Slowloris」がリリースされたことから明らかになったとのこと。この攻撃ツールはApacheに不完全なリクエストヘッダーを送り続けるもので、Apacheが最後のヘッダが送られてくるのを待つ間、偽のヘッダを送ることで接続をオープンにし続け、Apacheのプロセスを一杯にさせるものだという。 脆弱性はApache 1.x、 2.x、 dhttpd、 GoAhead WebServer、そしてSquidにて確認されているが、IIS6

    otsune
    otsune 2009/06/30
  • JavaScript で Windows 機種依存文字を置換するスクリプト

    仕事Windows の機種依存文字を代替文字へ置換するスクリプトを書くことになりました。 そんなの書くの面倒くさいのでとりあえずググって見たんだけど、イマイチこれが見つかりません。文字コードの変換じゃぁなくて代替文字への置換なんて要求はそもそも皆無に等しいのか・・・と感じてしまったけど、まぁいいや。 しかも当は Perl 側でやりたかったんだけど、正規表現でパパッとやってしまおうとしたら、余計なところまでマッチングされてしまって、どうにもうまくいかない・・・。真面目に1byteずつ比較するしかないの?これ? あぁ・・・よく考えたら perl のスクリプトを euc で書いてたからだ。今 utf8 で保存し直したら上手くいったわ。 まぁ考えるのも面倒くさかったので JavaScript で実装してブラウザ側で処理させちゃうことにしました。JavaScript は内部処理が unicod

    otsune
    otsune 2009/06/16
    see Unicode::Normalize
  • CPAN search

    CPAN search

    otsune
    otsune 2009/03/01
  • CPAN 最速検索を自サーバにコピーってみた

    とあるので、自分用にサーバに、まるごとコピってみました。Ajax で使うための辞書データ生成は perl でさっくりとでっち上げました。公開されていない perl 部分以外は、まるっとコピーしただけですが、これで満足しているので、これ以上のメンテは予定してません・・・。 http://www.drk7.jp/pub/js/cpanmala/ えーっと・・・まぁ CPAN 最速検索がどういうものかってのは、最速インターフェース研究会 :: CPAN最速検索 を観て頂ければOKとして、データ生成の perl プログラムは晒しておきますので、ご自分のサーバでやりたい方は、どうぞご自由にお持ち下さい。 CPAN 最速検索の設置手順書 http://cpan.ma.la/index.html を保存する。 ここから保存もできます。 http://cpan.ma.la/ie_xmlhttp.js を保

    otsune
    otsune 2009/03/01
  • Flash コンテンツが z-index を無視して覆い被さってしまう件

    えー恥ずかしながら・・・Flash について全くの素人で全然詳しくありません。 最近 Amazon から来ていたメールでお買い得ウィジェットってのを知って、面白そうなので使っていたんですけど、どうも z-index を無視して一番上に表示されてしまいます。Lightbox での画像拡大と非常に相性が悪いです。 こうなっちゃいます。 拡大表示したい画像の上に Flash が永遠とぐるぐる表示されています。こりゃ堪らんわい。Flash と z-index の関係については過去にさんざん既出なので同じような解決方法は山ほど見つかると思いますけど、自分的メモとしてエントリしました。 Flash コンテンツで z-index を有効にする方法 Flash に wmode ってパラメータがあります。このパラメータで Flash の背景を透明化または不透明化の設定が可能です。この透明化の機能を利用するこ

    otsune
    otsune 2008/11/26
  • Perl スクリプトで遅い場所を特定する方法 - Devel::Profiler / Devel::NYTProf

    仕事で書いてる Sledge アプリがあるのですが、先日負荷テストを行った結果びっくりすることに現行アプリの10倍遅いことが判明してしまいました・・・orz Sledge フレームワーク自身が重くないことは今までの経験でわかってるのですが、どうにもソースを見直しているだけでは原因が特定できない・・・そんな活躍するのがプロファイラです。プロファイラの御陰で遅いヶ所を特定することができ、無事に想定するパフォーマンスを得ることができました。この内容に関してはまた別エントリにて。 さて、プロファイラを使うとプログラム実行時の各種情報を収集し、性能解析を行うことが可能です。プロファイラについてもう少し詳しくしるには 性能解析 - Wikipedia あたりを読むと良いでしょう。 プロファイラ(英: Profiler)は性能解析ツールであり、プログラム実行時の各種情報を収集する。特に、関数呼び出しの

    otsune
    otsune 2008/11/11
  • 書評 -最近読んだ Perl 関連本3冊をご紹介

    料理ばかり読んでるわけじゃありません。ちゃんと Perl も読んでます。図書館ですけど。 最近はタイトルの通り3冊読みました。その3冊は以下にご紹介してますが、手持ちの Perl も何冊か読み返しています。PERL HACKS と Perl Best Practices とプログラミングPerl VOLUME1です。最後の VOLUME1 は最終章の内部データ型って部分を読み返しています。Perl のソースを追いかけてしまったので、SV 型がいろいろと気になりだしてしまったのでお勉強続けています。 会社で Perl を教えることも多くなってきたので、いろいろとを読んでどう伝えると良いかを日々模索中です。いままで教えてきた経験からするとハッシュという概念で一回つまずくみたいですね。次にリファレンスでつまずきますね。そして次にモジュールでつまずきますね。今ココ。そんな方へお薦めする

    otsune
    otsune 2008/07/14
  • Perl の内部処理系をお勉強

    ちょっと前に perlfilter - Source Filters - についてお勉強したときから調べようと思っていたことなのですが、Perl の内部処理の流れ(Perl 5 Internals)についてお勉強中です。思いっきり見逃してしまいましたが、Perl 5 Internals に興味を満ち始めたこのタイミングにあわせたかのように Shibuya Perl Mongers : Shibuya Perl Mongersテクニカルトーク#9 で XS ネタをやっていたみたいです。残念です。 さて、今回のお勉強の方法は、ズバリ perl 5.8.8 のソースの読解です。もちろん今回は流れを把握するためのものなので、あまり樹海の奥深くまで足を踏み入れたくはないのですが・・・。この記事を書いている時点では perl_parse までの流れを読み終えたところなのですが、構文解析と字句解析が樹海

  • Perl 言語自身すら拡張する Filter 機能をお勉強

    で、そんなことをして何が嬉しいかというと、perl に独自の言語仕様(構文)を加えることができます。ぱっと思いつくものでいえば、Filter::SQLSwitch あたりで使われていたりします。 そもそもなんで今毎 source filter 機能なんて調べているかというと、つい最近、このブログのカテゴリ部分に jQuery の jquery.pager.js を使ってページ分割をしてみました。最近エントリ数が多くなってきて見づらいなぁ〜と思っていたところなんです。 脱線しないように詳しい話はまた別エントリにするとして、MovableType 3.3 の ContextHandlers.pm を一部書き換えないとコレが実現できなかったんですけど、どうせなんでプラグインで配布しようかなぁ〜と考えてしまったわけです。・・・がですね、MT4 系等をサポートしようとすると・・・結構ソースが違

    otsune
    otsune 2008/06/15
  • 二度押し防止の onsubmit で disable にするやつ :: Drk7jp

    もう2年ほど前に話題になったアレなんですけど、今更ながらあるサービスでこの仕組みの導入を検討しています。 onsubmit で submit ボタンを disable にしてユーザビリティを良くする - naoyaのはてなダイアリー submit ボタン disable 技の罠 - naoyaのはてなダイアリー onsubmit で submit ボタンを < disable にしてユーザビリティを悪くするのはやめてください - のヮの うんこ♥ onsubmit で disable にするやつ - 鷹の島 onsubmit の disable 化ですが既に議論が終わっているように、onsubmit disable の実装方法として、 onsubmit イベント発生時に submit 要素を disable にして値をサーバへ渡すための hidden 要素を生成する方法 setTimeou

    otsune
    otsune 2008/04/13