タグ

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

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

    use Devel::Size::Report qw/report_size/; # 1bit, 1byte, 2byte, 3byte, 4byte(=32bit), 5byte my $b = [ 0, 0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF, 0xFFFFFFFFFF ]; print report_size($b, { indent => " " }); # null, length=1, 2, 3, 4, 5 my $c = [ '', '1', '10', '100', '1000', '10000' ]; print report_size($c, { indent => " " }); Size report v0.10 for 'ARRAY(0x8c8bc28)': Array ref 192 bytes (overhead: 92 byte

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

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

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

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

  • 全文検索 groonga を euc でインストール

    のように共有ライブラリを disable にしていると、groonga の configure 時に下記のようなエラーが発生します。その場合には、mecab のインストールからやり直す必要があります。 checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p ・・・中略・・・ checking for LIBEDIT... no checking whether enable MeCab... yes checking for mecab-config... /usr/local/bin/mecab-config check

  • ブクログのパブー(Puboo)で Groonga 本を執筆しました

    昨年 10 月頃に AMN 経由で執筆依頼を受けて執筆活動をしました。初執筆と言うことでボツ原稿が溜まるばかりで、なかなか原稿があがらず、第一回目を締め切りを落とし、第二回目の原稿に間に合わせ、その後いろいろと調整ということで、執筆完了してから約3ヶ月後にめでたく販売開始となりました。 電子書籍という形ですが、いつかは、一度は、を書いてみたいという夢が叶いました。 今回執筆した内容ですが、個人的に注目した groonga という全文検索エンジンを用いて作る検索システムってのが題材です。検索システムの基的な概念を解説しつつ、僕が昔から使い続けているブログシステム MovableType の検索 CGI を、全文検索エンジン groonga を使って作り直すぞっていう実用的?技術です。何を隠そう、このブログの検索 CGI で個人的に必要に思って作った経験を汎用化して書籍化しただけです。

  • bonnie++ で I/O 性能を測定 (Linux/Unix での IO ベンチマークソフト)

    今まで Linux 上でハードディスクのパフォーマンスを計測する方法として hdparm を使ってきましたが、もう少しいろいろなケース別にパフォーマンスを計測したいなぁーとか NFS のパフォーマンスを計測したいなぁーとか思って、ベンチマークツールがないものかと調べてみたら bonnie++ ってのを知りました。 Bonnie++ now at 1.03e (last version before 2.0)! Bonnie++ is a benchmark suite that is aimed at performing a number of simple tests of hard drive and file system performance. Then you can decide which test is important and decide how to compa

  • NFS を使っていて .nfsXXXX みたいなファイルが生成されたときの対処方法

    業で Oracle 10g RAC を使っているのですが共有ディスクには NetApp Filer を使ってます。でもって Filer の接続方法としては DAS/SAN ではなくより簡易な NFS を使ってます。とっても便利な NetApp Filer の snapshot 機能。これを一度使ったらもう他のストレージには戻れません。と言うわけで NetApp Filer お奨めです。NetApp ファイラーを使用した超高速バックアップ&リカバリ なんかも参考にどうぞ。 ってことを書きたかったわけではなく障害なんてのは予期せず発生するものです。ちょっと前の話ですが、バッチ処理で Oracleアーカイブログファイルが予想外に大量に生成されてディスクが満杯になってしまいました。でもって障害通知メールでそのことに気がつきあわてて不要なログファイルを削除。 とまぁ通常のディスクならこれで問題

  • VMware が頻繁にディスクアクセスして OS 全体が固まる件

    こんな現象が発生するようになったのも XP + VMware 5 → Vista + VMware 6ベータ にしてからなのですが、物理メモリもたっぷりのっていて空きメモリもある状態にもかかわらず、VM を起ち上げていると頻繁にディスクアクセスが発生してマシンが数分間フリーズしたかのごとく固まる現象が続いています。 以前物理メモリが 2GB だった時は、まぁ〜しょうがないか〜と思っていたのですが今は 3GB のっていて(ホントは4GBだけど OS が 32bit なのでうまく認識しない・・・)コレは流石にキツイ。ってことで原因を調べてみました。 まずはリソースモニタを起ち上げて VM を使ってディスクアクセスが発生するのを待つ。すぐに発生した。 どうやら VMware の .vmem ってのが頻繁にディスクアクセス(read)を行っている模様。もう少し様子を見てみる。 こんどは頻繁にディス

  • mod_gzip で Vary: * を send すると IE で SSL の挙動が変になる

    まず結論から。タイトル通り mod_gzip で Vary: * が http-header として送信されると SSL 通信中の場合に限って IE(Internet Explorer) は Cache-Control とかの内容に関わらずコンテンツをキャッシュしないようです(※特に IE7 全般と IE6 特定の version が変)。来 Vary ヘッダは proxy の挙動を決定するためのヘッダのはずなのに IE(Internet Explorer) は Vary ヘッダの内容によって挙動が変わってしまうようです。 別の言い方をすると、SSL なページでブラウザの戻るボタン押したときに「ページを表示できません」(※ie6)とか「Webページの有効期限が切れています」(※ie7)とか表示されてしまう場合は proxy を使っていて Vary: * が send されているのが原因と

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

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

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

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

  • JavaScript なスライダーライブラリのまとめ

    自分用の備忘録としてですが JavaScript なスライダーライブラリのまとめです。 音量の設定とか RGB での色設定とか感覚的な数値を入力させるためのUIとしてぴったりなアレです。今流行のページスライダーではありません。一昔前は Flash で作られたライブラリが多かった記憶がありますが、最近では JavaScript でもできちゃいますって感じで様々なライブラリが公開されています。 Javascriptでできているスライダーありませんかね? の人力検索はてなの情報を大いに参考にさせて頂きました。 基的な考え方として、見た目は各種パーツの画像を作り込むことでどうにでも変更できます。機能的には有名どころの JavaScript ライブラリを用いていればそれほど不満が出ることも無いかと思うので、現状お使いのライブラリの系列のものを使うとムダにメモリ使用量とかライブラリ同士での汚染とか考

  • Amazon Search 導入支援ツール :: Drk7jp

    導入に際して、まずはじめに。 この支援ツールは IE 6.x および FireFox 1.x で動作確認しております。 現在、当方で動作確認済みのブログは下記の通りとなります。 MobavleType TypePad ココログ livedoor Blog JUGEM Yaplog FC2Blog Seesaa BLOG その他、動作未確認のブログサービスの場合、JavaScriptHTML タグを制限しているサービスでは動作しません。(goo BLOGや Doblog 等・・・)また、ウェブリログのように個別記事に設置できなかったり、RDF が HTML 内に生成されないトップページに設置しても無意味な商品が表示されてしまいますがご了承下さい。 CGI が使える環境の方は、表示を高速化するためのプログラムとして「中継君JS」の導入もご検討下さい。 導入手順について まず、Amazon

  • Slowloris HTTP DoS 攻撃について

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

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

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

  • メール送信者認証技術 SPF/Sender ID についてお勉強

    お勉強の背景に関しては 「迷惑メール対策 OP25B(Outbound Port25 Blocking)についてお勉強」 に書いたとおりですが、迷惑メール対策としての SPF/Sender ID についてもいろいろ勉強したのでそのまとめです。(DomainKeys については思いのほかエントリが長くなったのでまた別の機会で・・・)まずは参考になったサイトの紹介から。 Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1 Sender ID: Authenticating E-Mail DNS関連技術の最新動向 - SPF/DomainKeysとは Sendmail 社 - 送信者認証技術の導入におけるレコメンデーション メール送信者認証の仕組みを探る(2/2):スペシャル - ZD

  • Oracle 10g R2 隠しパラメータ一覧

    最近 oracle 10g のパラメータ周りでいろいろ調べることがあったのでその備忘録。oracle にはあらかじめ便利な view が幾つか用意されているので、view の名前と定義について調べる SQL について。 select view_name, view_definition from v$fixed_view_definition oracle 10.2.0 で 770 もの view の定義が表示されます。自分の知らない以外と便利そうな view が隠されているかもしれないので一度見ておくと参考になるかも。次に、oracle の茁パラメータを表示する SQL について。 select KSPPINM name, KSPPDESC description from X$KSPPI where substr(KSPPINM,1,1) = '_' order by KSPPINM;

  • ワードサラダ技術について

    後半部分が重要で、未来の挙動が現在の値だけで決定され、過去の挙動と無関係である ということです。 さて、実例です。たとえば次の文章を考えてみます。 「通信販売大手セシールは9日、生命保険の販売に格参入する方針を明らかにした。」 まず形態素解析するとこんな感じになります。 通信 名詞,サ変接続,*,*,*,*,通信,ツウシン,ツーシン 販売 名詞,サ変接続,*,*,*,*,販売,ハンバイ,ハンバイ 大手 名詞,一般,*,*,*,*,大手,オオテ,オーテ セシール 名詞,固有名詞,組織,*,*,*,セシール,セシール,セシール は 助詞,係助詞,*,*,*,*,は,ハ,ワ 9 名詞,数,*,*,*,*,9,キュウ,キュー 日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ 、 記号,読点,*,*,*,*,、,、,、 生命 名詞,一般,*,*,*,*,生命,セイメイ,セイメイ 保険 名詞,一般

  • 1