タグ

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

  • PerlMagick が OpenMP 有効だと高負荷になる件

    ImageMagick と PerlMagick を使った CGI が原因不明の高負荷になり、ドツボに嵌ったので、備忘録として残しておくことにします。結論からすると apache + ImageMagick + PerlMagick を安定稼働させるには ImageMagick を OpenMP 無効化してコンパイルする必要があるようです。 具体的には下記のようなオプションを付けてコンパイルを行うことで安定動作となります。 ※ --disable-openmp --disable-opencl は一緒に指定する必要があります。 cd /usr/local/src/ wget http://image_magick.veidrodis.com/image_magick/ImageMagick-6.7.4-2.tar.gz tar xvfz ImageMagick-6.7.4-2.tar.gz

  • SimpleAPI の仕組みについて考察してみる

    最近気になっているサービスと言えば、一躍有名になった「SimpleAPI その1.ウェブサイトサムネイル作成API β版」っていうサービス。その1って書いてあるくらいだから、作者の方はその2、その3を考案中と思われるわけですが、サイトのサムネイルを生成するってのはいろいろなところで役に立ちそうな気がします。 で、できれば自社で同じような仕組みを作って自社で解決したいと思われている方も多くいるのでは?と思います。僕的には会社の仕事からすれば何ら関連のないジャンルのサービスですが、個人的には非常に興味がそそられるサービスなので、その仕組みについて考察してみました。勝手な考察なので、全然違う可能性もあるので、あしからず・・・。 どうやってサイトのサムネイルを生成しているのか? 自前で位置からブラウザの描画を模倣するプログラムってのは作るには敷居が高すぎると直感。特に CSSJavaScri

    kazeburo
    kazeburo 2010/11/11
  • 水出しコーヒーにはまっています。マジで旨い!

    ゴールデンウィークの上郷SAのタリーズにて購入した 2,000 円の水出しコーヒーセット。 結論からすると、水出し珈琲を作るのは人生初体験なわけですが、これが想像以上にうまかった!(≧∇≦)b 通常のドリップと水出しの最大の違いは、熱による酸化の有無。水出しならば酸化が少ないため、珈琲豆来の味を引き出すことができると言われています。実際に飲んでみた感想では、非常にまろやかな口当たりと雑味を感じさせないクリアな後味が印象的です。しかも2〜3日ほどは味が落ちません。 その代わり、ドリップする時のあの安らぐ珈琲の香りはそれほど楽しめません。これは一長一短かな。 まぁそんなわけで、セットに同梱されていた 150g の豆はたったの3回でなくなっちゃいました。1週間持たなかったですね・・・。タリーズの豆で作ったコーヒーは、見た感じからして若干薄い感じでした。 そんなわけで、楽天でアイスコーヒーを検索

    kazeburo
    kazeburo 2010/05/13
  • NetApp ファイラーを使用した超高速バックアップ&リカバリ

    今日は何となく時間があいてるので久々の oracle ネタです。業ではデータベースとして mysqloracle を使っています。ぶっちゃけ oracle の方がいろいろと面倒です。面倒極まりないことの1つとしてバックアップ&リカバリがあげられますが、あるソリューションを適用することでめちゃくちゃ簡略化することができました。もっとも、ここ1年ほどは危機的な障害とは無縁ではありますが・・・。 さていきなり結論ですが、そのあるソリューションとはずばり NetApp ファイラーのことです。別に oracle に限った話ではありませんが、データベースのストレージとして NetApp ファイラーを候補の1つに考えてみてはどうでしょうか? ぶっちゃけ NetApp ファイラーですが、最低構成で数百万円(多分、会社によって価格はかなり違うが300万円程度だった・・・)します。単なるストレージと見

    kazeburo
    kazeburo 2007/09/17
  • Movable Type 4 beta(英語版)で試しにアップグレードしてみた

    「Movable Type 4 日語版」7月18日発売との事なので、社サイトの方なら英語版のベータでもあがってるだろうと予想して見に行ったらやっぱりありました。 MT4 Beta Download Movable Type Beta この記事にピンときた方であれば既にアップグレード内容はご存じのことかと思いますが、一応サマリーをば。 インターフェースの全面刷新 * より使いやすくなったインストーラー * HTMLの知識がなくてもリッチな文章を作成できるWYSIWYGエディター * 画像などファイルのアップロードや管理が簡単に行えるファイルマネージャー * 入力中の記事の自動保存

  • syslog のローテート設定

    Linux ならログ管理は syslog を利用すると大変便利で、Apache + mod_perl の負荷分散として導入する Pound とかのログやアプリケーションログも syslog に任せてしまっている。 syslog 経由でログを出力したい場合、/etc/syslog.conf に設定を記述してやればよく、例えば、 local0.*      /var/log/applog なんて記述を追加してあげて、Perl からは、 use Sys::Syslog; openlog(__FILE__, 'cons,pid', 'local0'); syslog('info', 'this is test message!!'); closelog(); で完了だ。自前でログ管理モジュールを作るよりも Linux の機能として一元管理できて大変便利です。忘れてならないのが(僕は忘れていたので、

  • 【続】やはり Perl はメモリ喰いな言語。データ型の内部構造

    以前、「やはり Perl はメモリ喰いな言語。データ型の内部構造」という記事を書いたことがあるのですが、自分で書いておきながらしばらく立つと完全忘却してました。時代は変わって、今仕事で運用しているサーバは、64bit 版のOSです。 最近になって、DB のテーブルのデータを加工・集計しながら CSV にダンプするってプログラムが、データ数が非常に多いときに、1.5 GByte ほどメモリをいつぶしているってことに気がつきました。理由は至って簡単なのですが、結構ハマリどころなので備忘録として記事にしておくことにしました。 みなさん、仕事とかでは特にそうだと思うのですが、DBI の処理って何らかのラッパーを書いて使っていると思います。僕は適当に書くとよくやってしまいがちなのですが、イメージ的には、こんな処理の流れのコードを書いていました。 (・・・えっ?そんなへぼコード書いてない??・・・す

  • Amazon Search のコンテンツ解析ロジックをリファクタリング中

    Amazon Search サービスを開始してから約2年になりました。開始始めは 2004 年 03 月 07 日らしいんですが、自分でも覚えていません・・・ 細かい修正を含めるて数えてみたら、52回目のバージョンアップになりますが、サーバの計算力も Pentium 4 から Athlon 64 X2 と大幅に向上したこともあり、コンテンツ解析部分の計算量を増やして、より適合度の高い関連商品が選択されるようにしてみました。 前より良くなってますよね? (なってなかったらごめんなさい・・・) ※新しいエントリーもしくは古いキャッシュが消えるまでお待ち頂いてからご確認ください。 さて、計算量を増やす代わりに、形態素解析を ChaSen (茶筌)から MeCab に変更しました。MeCab は ChaSen の3〜4倍程度は高速に動作するので、全体としては速度的に速くなっているかもしれません。

    kazeburo
    kazeburo 2006/03/01
  • http://www.drk7.jp/MT/archives/001008.html

    kazeburo
    kazeburo 2006/02/20
  • XML を JSON に変換するサービス - ベータ版を公開 :: Drk7jp

    JavaScript 2.0 支援ツール「XML 2 JSON service」って何? XML を JSON に変換するサービスです。この技術を用いることで、 クロスドメイン制限を超えて JSON 形式で XML 形式のデータを利用することが可能となります。 JSON は XML と比較して JavaScript 上で非常に扱いやすいため、コツを掴めば簡単に自分のサイトで利用できます。 既に幾つかのサイトで実装されていますが、不特定多数の方にサービス提供するために負荷対策を施し、XML 2 JSON service ベータサービスを公開することにしました。 最近良く聞く Ajax とは何が違うの? 最近、流行りまくっている Web 2.0 と呼ばれるものの基礎技術の1つとして Ajax があげられます。Ajax は大変便利な技術なのですが、セキュリティの観点から自ドメインへのアクセスしか

    kazeburo
    kazeburo 2006/02/20
  • ワンランク上の負荷対策を Web アプリに実装するには・・・(Sledge編)

    最近、お仕事で悩ましいのがデータベース負荷。結局のところ、Web サービスでボトルネックになるのは、バックグラウンドの DB 処理。特にどうしようもないのが、更新系リクエスト。つまりはマスターDB。 既に多くのところが採用している構成と思いますが、MySQL とかでよくやる手段といえば、 参照系は、レプリケーション機能を使って参照系DBを用意して負荷分散。マシンを増やせば負荷に対応可能。 更新系のクエリーだけは、できる限り高スペックなマシンを用意してマスターDBを構築して一手に引き受ける。増設困難で悩ましい。 もうちょい頭をひねれば、機能毎にマスターDBを分散させたり、ユーザ ID とかでパーティショニングしたりと、アプリ層で振り分ける。MySQL に限らず、Oracle とかでも同じようなことが言えます。 で、マシン負荷を監視という運用業務が必須な日々を送っていた(いや、実際にはPJのメ

    kazeburo
    kazeburo 2006/02/08
  • 大企業にありがちな問題。委託開発の甘い罠・・・

    このところ、「大規模サービスを展開する企業が陥るジレンマ」 や 「当に技術が必要とされる現場にgeekがいない」 で興味深い話が語られています。賛同する部分も多くあります。 さて、とある企業に勤める僕なのですが、最近手がけている仕事のやり方が非常に気にくわない部分がありまして、グチっぽいかもしれませんが思うところを記事にしてみました。他の企業の方々はどうなのかなぁ〜と思いまして。 それは、外注(開発の請負や業務委託等)って当に必要なの?ってことです。特に大企業にありがちだと思います。 金融系や通信系といった真にミッションクリティカルな基幹系システムにおいては、その業界に特化した基盤やルールってのがあって、その専門的知識を有するソフトウェアベンダーへ開発を業務委託するってのは当然かと考えています。もっともソフトウェア業界で働く知り合いからは悲鳴しか聞こえてきませんが・・・。 僕が問題とし

    kazeburo
    kazeburo 2005/11/23
    大企業だけではありません。と書くだけで愚痴
  • DB界に衝撃が走る! Oracle 10g の無料版ベータが配布開始!

    オープンソース系で人気の MySQLSQL Server 2005 の無料版に対抗するために無料版を出すことにした。 その代わり、CPU は1つ。記憶容量は 4GB まで。メモリは 1GB まで。って制約をつけますよ。 みたいです。小規模な用件で導入して貰いたいという意向があるようで、商用でも特に使用することに問題がなさそうに読み取れます。今時、ハードディスクが 4GB なんてことはあり得ないので、ここでいう記憶容量 4GB 以内というのは、Oracle のデータファイルサイズが 4GB までに制限されているってところではないでしょうか?(推測) メモリは Oracle のプロセスそのものが結構消費するので実際 1GB はギリギリ、快適に動作するかなぁ〜ってのが正直なところ。 なんにしても、自宅サーバにも Oracle がインストールできるようになる時代が間もなく現実のものとなるって

    kazeburo
    kazeburo 2005/11/01
  • ベンチマーク対決! MySQL 4.1.15 vs 5.0.15 どっちが速い?

    MySQL 新バージョン 5.0.15 (5.0.x系正式版)がリリース!」で予告しましたが、ver 4.1 系から大幅に進化した MySQL 5.0系ですが、そのパフォーマンスが非常に気になるところ。早速、mysqlbench を使ってベンチマークしてみました。 結果は MySQL 4.1 系の勝利。それでは、ベンチマーク結果をどうぞ。 ベンチマークツール mysqlbench の準備 まず始めに、MySQL 用のベンチマークツールである mysqlbench をインストールします。mysqlbench 自体は PostGuserQL 用に開発された pgbenchを MySQL 用に移植したツールで、TPC(Transaction Processing Performance Council) が規定している性能ベンチマークの指標のうち、TRC-B に準じたベンチマークとなっています

    kazeburo
    kazeburo 2005/10/27
    ベンチ。4系の方が速い
  • Perl の MVC フレームワーク Catalyst のお勉強〜その1〜 :: Drk7jp

    時間が空いているときに Catalyst のお勉強をしていたのですが、なかなか情報をまとめる時間がとれないのです・・・。思ったより苦戦したので少しずつでもお勉強の情報をまとめていこうと思ってます。今回はその1ってことで。Catalyst をこれからお勉強してみようって方の参考にでもなれば幸いです。 実際には、アプリケーションを1つ作ってみるってところまで既に2週間前に終わっていたりするのですが、その解説に至るまでどれくらい時間かかるんだろう・・・ (。・x・)ゝ Catalyst の基礎知識 Catalyst のフレームワークの構成は上図のような構成になっています。純粋な MVC ではなく、MV C + A(Apprication) のような構成になっていますが、Application の部分は Dispatcher 機能に相当する部分で、実装時には MVC の考え方で問題ありません。 M

  • lighttpd でスパムボットを排除する方法

    「mod_setenvif を使って Apache のログを軽量化」で Apache のログの軽量化の一つとして robot.txt とかを無視してすごい勢いでアクセスしてくるロボットつまりは spambot を排除する方法をお知らせしましたが、「lighttpd + FastCGI は mod_perl + Apache1.3 より1割ほど高速」で書いたように、lighttpd へ移行してからそこら辺の設定がメンドウでサボってました。 昨晩、とあるエラーが大量に出力されていたので気になって調べてみると、Ask.jp のロボットが秒間 5 リクエストくらいの勢いでクロールしに来てました。ちなみに、下記のような UserAgent で到来します。

  • Google AdSense の広告表示精度を高める方法 :: Drk7jp

    セクション ターゲットを使用すると、サイトのコンテンツと広告を照合する場合に、強調または無視すべきテキストや HTML コンテンツのセクションを Google に知らせて、広告表示の精度をより向上させることができます。 セクション ターゲットの実装は、HTML を熟知したお客様にのみお勧めしています。 <!-- google_ad_section_start(weight=) --> 記事のタイトル<$MTEntryTitle$>や記事文<$MTCommentBody$> <!-- google_ad_section_end --> <!-- google_ad_section_start(weight=ignore) --> バナー広告やリンク集を貼り付けているサイドバーやトップバー部分やコメントやトラックバック部分 <!-- google_ad_section_end --> です。

  • lighttpd + FastCGI は mod_perl + Apache1.3 より1割ほど高速 :: Drk7jp

    巷で超高速 Web サーバとして話題になっている lighttpd を試してみました。lighttpd に関する日語ドキュメントは非常に少なく、ちょっと込み入った設定ファイルの記述方法とかの解析に手間取りました。 lighttpd のコンセプトは、「セキュアで省メモリで高速に動作し、柔軟性もある」なのですが、「lighttpd 公式サイトのベンチマーク結果」や「UnknownPlace. - Catalyst ベンチ」で簡単な Catalyst - Hello.cgi のベンチマークが公開されているとおり、Apache 1系、Apache 2系よりも高速に動作するようです。特に static なページの処理は Apache の 2〜3 倍程度は高速に処理できるみたいです。 また注目すべき点として、Apache + mod_perl よりも lighttpd + FastCGI の方が1割

  • [Perl] 高速&省メモリ perl-xs版 split モジュール

    大量の csv ファイルを読み込んで処理をするとき、カンマやタブ区切りのレコードを split や正規表現を使って文字列を分割して配列に入れて処理・・・なんて事は良くやります。mysql 等のデータベースに入っているデータなら速度的に問題が発生することは少ないのですが、どうしても csv のまま処理をしなければならない場合、文字列の分割のコストがバカになりません。 perl の split はかなり優秀で正規表現で分割するよりも高速に文字列を分割することが可能です。しかしながら、split でさえ用件によっては遅い場合もあります。実際、1 レコードあたり 300 カラム程度のデータが 20 万件ほど存在する場合、split で分割して配列に格納するコストが Pentium-4 2.8G + メモリ 2G ですら、30 〜 40 秒ほどかかってしまいます。 そこで、僅かながらではありますが、

  • あなたの作ったメール配信システムはエラーメール処理をしていますか?

    今回はメルマガ等やメーリングリストのように大量のメールを配信するためのメール配信システムを自前で開発している方向けの情報(備忘録?)です。 大量のメールを配信する場合、配信できなかったエラーメールを適切に処理することが重要です。たとえば、 なんて感じです。適切なエラーメール処理なくば、知らず知らずのうちに SPAMer と同じようなメール配信をしていることになってしまうのです。かく言う僕の作ったメール配信システムも、それほどエラーメール処理を厳密に行っているわけではなく、何とかしないとなぁ〜と思っている今日この頃で、ちまちま資料を集め始めて仕様検討している次第です。

    kazeburo
    kazeburo 2005/08/11