タグ

mod_perlに関するziguzaguのブックマーク (19)

  • Plack Performance Tips - mount() and query_parameters() : D-7 <altijd in beweging>

    すごいヘビーな負荷を受けているPSGIアプリケーションで「なんでこれで負荷があがるの?」的な現象があったので二つほどTipを。ちなみにこれは 2013/03/06時点での話なので、もしこれをあなたが大分将来に読んでいるのなら、状況に変更がないかちゃんと確認すること! まずこのお話の前提:mod_perlなアプリをPSGIに移行したかった。アプリはmod_perlハンドラで書かれているので、Apache::RequestをPlack::Requestに書き換えたり、ハンドラ部分をオブジェクトにしてキレイにするくらいで、基的な構造は何も変えてない(←ここポイント)。あとはApache側とか設定をもりもりいじって、PSGIファイルを書いて、Starletでデプロイして、パフォーマンスが30%くらい悪くなった。さて、犯人は誰でしょう? まずアプリケーションを組む側が「やっちまったなぁ?」な件:P

    Plack Performance Tips - mount() and query_parameters() : D-7 <altijd in beweging>
    ziguzagu
    ziguzagu 2013/03/08
    勇気が湧いた
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • YAPC::Asia 2009で「『Ficia』インフラとPerlにまつわるエトセトラ」というタイトルでしゃべってきました - (ひ)メモ

    YAPC::Asia 2009 第一日目で「『Ficia』インフラとPerlにまつわるエトセトラ」というタイトルでしゃべってきましたのでその資料を公開します。 『Ficia』インフラとPerlにまつわるエトセトラView more documents from Masaaki HIROSE. 他の方のスライドも http://www.slideshare.net/event/yapcasia-2009 から参照できるようでっす。 以下、今回のトークの内容で参考にさせてもらったURLのリストです。 Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる - naoyaのはてなダイアリー http://d.hatena.ne.jp/naoya/20080212/1202830671 mod_perl における C10K Problem, 竹迫 良範 http

    YAPC::Asia 2009で「『Ficia』インフラとPerlにまつわるエトセトラ」というタイトルでしゃべってきました - (ひ)メモ
  • Apache2::Statusを使ってみた - とほほのN88-BASIC日記

    mod_perlでどのくらいメモリー使われてるかとか調べたかったのでApache2::Statusを使ってみた。 Shibuya.pmのLTにも含めようと思ったけど5分に押し込めるのは無理なのでここで公開。 テスト対象としてCGI::Applicationで package HelloWorld; use strict; use warnings; use base 'CGI::Application'; sub setup { my $self = shift; $self->start_mode('index'); $self->run_modes( ['index']); } sub index { "HelloWorld"; } 1; runスクリプトとして #!/usr/bin/perl use strict; use warnings; use lib './lib'; use

    Apache2::Statusを使ってみた - とほほのN88-BASIC日記
  • mod_perlで親プロセスとのCopy on Writeな共有メモリを増やす方法。 - hideden.hatenablog.com

    大量にアクセスがあってMaxClientを大きく設定したい場合、Apacheの1プロセスあたりのメモリを少なくするのが重要。当然アプリ側で大きなライブラリを読み込まずに画像の変換はGearmandにタスクとして投げたりとかの工夫するのも有効だが、fork元になるApacheの親プロセスと子プロセス間でできる限りCopy on Writeな共有メモリを増やすのも有効。 その辺の詳しい仕組み等の話はnaoyaさんがd:id:naoya:20080212:1202830671でしてるのでそこを参考に。linuxカーネルまわりの仕組みって楽しいよね。会社の案件ではFreeBSDサーバーも結構あるんだけどFreeBSDではどうなるのかは知らない。 で、社内にXenなテストサーバーがあるのでまっさらな環境で色々実験してみた。・・・過程を全部書こうとしたら長くなったので省略。地味にpsしたり/proc/

    mod_perlで親プロセスとのCopy on Writeな共有メモリを増やす方法。 - hideden.hatenablog.com
  • Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる

    Linux は fork で子プロセスを作成した場合、親の仮想メモリ空間の内容を子へコピーする必要があります。しかしまともに全空間をコピーしていたのでは fork のコストが高くなってしまいますし、子が親と同じようなプロセスとして動作し続ける場合は、内容の重複したページが多数できてしまい、効率がよくありません。 そこで、Linux の仮想メモリは、メモリ空間を舐めてコピーするのではなく、はじめは親子でメモリ領域を共有しておいて、書き込みがあった時点で、その書き込みのあったページだけを親子で個別に持つという仕組みでこの問題を回避します。Copy-On-Write (CoW) と呼ばれる戦略です。共有メモリページは、親子それぞれの仮想メモリ空間を同一の物理メモリにマッピングすることで実現されます。より詳しくは コピーオンライト - Wikipedia などを参照してください。 この CoW に

    Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる
  • 大規模なeコマースサイトを Apache と mod_perl で構築する

    この文書は Perl.com: Buildling a Large-scale E-commerce Site with Apache and mod_perl を翻訳したものです。2001年に書かれた文書であり、Apache/mod_perl/CPAN モジュールなど現在の状況にはそぐわない部分もある可能性があります。 大規模なeコマースサイトを Apache と mod_perl で構築する よくある神話 Perl はセーブする アプリケーションサーバの撰択 ケーススタディ: eToys.com Apache::PerlRun による救済 新たなアーキテクチャの計画 2000年のクリスマスを切り抜ける アーキテクチャ プロキシサーバ アプリケーションサーバ 検索サーバ ロードバランスとフェイルオーバー コード構造 キャッシング セッショントラッキング セキュリティ 例外(Excepti

  • Chapter 1. Introducing CGI and mod_perl を読んで - libnitsuji.so

    Practical Mod-Perlというがあるのだけれど、その内容はオープンソースになっている。 mod_perlはいつかちゃんと勉強しなきゃと思っていたので読みはじめました。 んで、やっぱり書かないと覚えないし身に付かないし。 - CGIの歴史 まあ、これはね。問題ないでしょう。 HTTPを使ってデータをやりとりします。ヘッダとデータは空行で区切られます。リクエストを受け取ってレスポンスを返します。レスポンスではヘッダーでMIMEタイプとか文字コードとかを指定します。Apacheはmod_cgiを使ってスクリプトを実行します。環境変数を使っていくつかのパラメータを受け取れます。HTTP_USER_AGENTは簡単に偽装できます。HTTP自体にはURIの長さ制限がないけどサーバーとクライアントにはあるので注意しましょう。ユーザーから受け取った値を使ってレスポンスを作成する場合はクロスサ

    Chapter 1. Introducing CGI and mod_perl を読んで - libnitsuji.so
  • mod_perl で、perl -d やりたい! - Practice of Programming

    と言うときには、Apache::DBを使います(apache 1.3でしか試してません)。 ※修正しました 5/2 PerlFixupHandler Apache::DBをmod_perlを使っているところに書きます。こんな感じ。 # 追記 <Perl> use Apache::DB ( ); Apache::DB->init; </Perl> #/追記 <location /test> SetHander perl-script PerlHandler Test PerlFixupHandler Apache::DB </location>そして、apache を、-X オプションで動かします。 Debian なら、 % /usr/sbin/apache-perl -Xって感じですね。たぶんRedHatなら、 % /usr/sbin/httpd -Xかな? この状態で、目的のアプリケーシ

    mod_perl で、perl -d やりたい! - Practice of Programming
  • naoyaのはてなダイアリー - Inside Hatena Bookmark's Backend の資料

    以下に置いておきました。遅くなってすいません。 http://bloghackers.net/~naoya/pdf/050404inside_hatena_bookmark.pdf 会場で前置きしたように、はてなブックマークは、はてなで一番大きなシステムであるはてなダイアリーあるいは同じ YAPC で発表のあった mixi に比べると、まだそこまで大きな規模ではありません。月間の PV はだいたい 4,000 万 PV 〜 というところです。 ただ、日でのトラフィックが上から 5 番目みたいな怪物サイトよりも、月間の PV が 1,000 万クラスのサービスの情報の方が、より現実的で役に立つのではないかと思い、はてなブックマークの裏側に絞って話しをしてみました。 ...という前提で見ていただけると嬉しいです。 はてなブックマークのデータのサイズもかなり大きくなってきたので、ぼちぼちパーテ

    naoyaのはてなダイアリー - Inside Hatena Bookmark's Backend の資料
  • http://www.typemiss.net/blog/kounoike/20060212-64

    ziguzagu
    ziguzagu 2006/02/13
    startup.pl重要
  • mod_perl 2.0.2 へのマイグレーション - naoyaのはてなダイアリー

    mod_perl 2 が Stable リリースになって気がつけば半年以上経った様子。はてなではこれまで mod_perl 2 は mod_perl 2.0RC-4 (1.99) とかを使ってましたが、ぼちぼち 2.0 にちゃんと移行した方がいいかなと、重い腰を上げつつ作業してます。 現在、mod_perl には互換性のない三つのバージョンが存在してます。 mod_perl 1.0 (1.29) mod_perl 1.99 mod_perl 2.0 (2.0.2) 1.0 は Apache 1.3 の API に対応している mod_perl、1.99 と 2.0 は Apache 2.0 API に対応している mod_perl です。Apache 2.0 がそれまでのバージョンとの API の互換性を捨ててアーキテクチャの見直しが行われたのをきっかけに、mod_perl も後方互換性を

    mod_perl 2.0.2 へのマイグレーション - naoyaのはてなダイアリー
  • てくにかるむ

    てくにかるむ 「エラーをなくすことは非常に有益で時には新しい真実や事実を作り上げるよりも勝る」 ー チャールズ・ダーウィン WebBrowserコンポーネントを .NET Framework であれこれ料理したときのいろいろ。 » ActivePerl 体は実行インストーラで何時でもインストールできるが、ppm や cpan で組み込む追加モジュールはオンライン構築が前提になっている。だが世間から断絶された秘匿ネットワークや、そもそもインターネットに接続するという概念のない PCやサーバに納品したり、機材リプレースで開発環境を再構築しなければならない場面では、USBメモリや DVD-Rからのオフラインインストールが出来なければ話にならない。そもそもバージョンが数世代古くなるとダウンロード元の ppmレポジトリが有料プラン専用に切り替えられて、いつもで気軽に再ダウンロードすることができなく

    ziguzagu
    ziguzagu 2005/12/19
    Apache::Server, Apache::Connection, Apache::Fileとか
  • てくにかるむ

    てくにかるむ 「エラーをなくすことは非常に有益で時には新しい真実や事実を作り上げるよりも勝る」 ー チャールズ・ダーウィン WebBrowserコンポーネントを .NET Framework であれこれ料理したときのいろいろ。 » ActivePerl 体は実行インストーラで何時でもインストールできるが、ppm や cpan で組み込む追加モジュールはオンライン構築が前提になっている。だが世間から断絶された秘匿ネットワークや、そもそもインターネットに接続するという概念のない PCやサーバに納品したり、機材リプレースで開発環境を再構築しなければならない場面では、USBメモリや DVD-Rからのオフラインインストールが出来なければ話にならない。そもそもバージョンが数世代古くなるとダウンロード元の ppmレポジトリが有料プラン専用に切り替えられて、いつもで気軽に再ダウンロードすることができなく

    ziguzagu
    ziguzagu 2005/12/19
    Apache::Request
  • hori-uchi.com: MT3.2をapacheのハンドラとして動かす

    MT3.2をapacheのハンドラとして動かす MT3.2のユーザーインターフェースが秀逸だと聞いて、どうしても見たくなり、hori-uchi.comのMTを3.2へバージョンアップしてみました。 すると、数回アクセスすると、502 Proxy Errorが出るように。。 hori-uchi.comはフロントにApache2.0を置きここでhtmlなどの静的なコンテンツを処理し、バックエンドのapache1.3+mod_perlでApache::Registryを使ったCGIのエミュレート環境でMovableTypeを動かしています。 バックエンドへのリクエストの受け渡しはmod_proxyを使って行っています。 この構成の構築方法は Techknow Movable Type: Apache 2.0 mod_proxy によるリバース・プロキシの構築 に詳しく解説されています。 502の

    ziguzagu
    ziguzagu 2005/10/03
    同じ症状を抱えています。
  • リバースプロキシを導入する際はmod_rpaf

    僕の自宅サーバには2つの Apache がインストールされていて、用途により使い分けています。 * Apache 1.3系 + mod_perlAmazon Search / Google Similar といった高速性を求めるサービス * Apache 2.0系 → その他の静的コンテンツや 通常用途の CGI 等の動的コンテンツ なぜ使い分けるかというと、mod_perl はメモリー喰いなので、静的画像のためにプロセスがもったいない訳です。当に必要なリクエストにのみ mod_perl をかませば良いですから。 (参考ページ:リバースプロキシ Pound を導入しました。 : NDO::Weblog) で、2つの Apache を透過的に見せてあげるために、リバースプロキシの Pound を使っています。負荷分散も実装できて優れものですが、欠点が一つ。 リクエストをリバースプロキ

    ziguzagu
    ziguzagu 2005/09/24
    mod_rpafでproxy経由ip書き換え。入れよ。
  • 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割

  • Class::DBIで複数データベースを扱う register_cleanup : blog.nomadscafe.jp

    Class::DBIで複数データベースを扱う+register_cleanup Class::DBIで同じ構造の複数データベース扱う時には、まかまかさんのClass::DBI::Plugin::MultiDatabases(後で知った)や、Class::DBIのWikiにあるけど、さらにmod_perl上でのTips ちょっと実際書いたコードと違うので全くこの通りでうごくかどうか心配なのですが、複数データベースに接続をするモジュールを下のように書いてみる。 package Object; use strict; use DBI; use base qw(Class::DBI); use Class::DBI::Plugin::NoCache; use MyConfig;#データベースの接続情報を返すモジュールとする __PACKAGE__->mk_classdata('dbhandles'

  • 1