問題タブ [mod-perl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - Apache/2.2.9、mod_perl/2.0.4: status_line が機能していないようです
応答は次のように準備されます。
リクエスト:
応答:
応答ステータスが 500 ではなく 200 なのはなぜですか?
perl - -f file テスト演算子は mod_perl で機能しますか?
Tenjin モジュールを使用しようとしていますが、テンプレート ファイルが見つからないため失敗しますが、存在します。モジュールにいくつかのデバッグ ステートメントを追加しましたが、パスしません。
$filepath が正しい場合でも。スタンドアロン スクリプトで試してみましたが、正常に動作しますが、mod_perl スクリプトにコピーすると失敗します。何か案は?
$filepath は絶対パスです: /something/another/dir/2/filename.plhtml
これはモジュールからの関数です。私の「デバッグ」に注意してください...777であるファイルへの正しいパスを出力しますが、YESを出力することはありません。
}
で失敗する
Tenjin::Engine: index.plhtml が見つかりません (path=['/var/2.0/templates/search'])。/usr/lib/perl5/site_perl/5.8.8/Tenjin/Engine.pm 56 行目。\n
perl - WindowsのActiveStatePerlでApache::Reloadを使用するにはどうすればよいですか?
私はWindowsとApacheでActivestatePerlを使用しています。mod_perlでスクリプトを実行したい。開発中にApacheがモジュールをキャッシュしないようにするために、Apache::Reloadモジュールを使用したいと思います。
httpd.confに次の行を追加しました
次に、Apacheを再起動します。そして、すべてのスクリプトで内部サーバーエラー(500)が発生します。
Apacheログにエラーはありません。
私が間違っているのか、Apache :: ReloadがWindowsで機能しないのか知っていますか?
configuration - APACI を使用した Apache mod_perl ビルドで CFLAGS が失われるのはなぜですか?
Solaris 8 SPARC サーバーにデプロイするために、mod_perl 1.31 を使用して Apache 1.3.41 をビルドしようとしています。非常に大規模な Web サイトに多数の重要なアプリケーションが展開されているため、現時点では 1.3 を使用する必要があります。
mod_perl インストール ドキュメントで説明されているように、新しい (er) APACI 手法を使用していますが、Apache 部分をビルドするために発行されているコンパイル コマンドを見ると、CFLAGS オプションを使用して設定したコンパイル フラグが削除されています。
ただし、LDFLAGS は正しく渡されているように見え、CFALGS と LDFLAGS の両方がエクスポートされています。
他の誰かが前にこれに出くわしましたか?
linux - mod_perl スクリプトがサーバーをフリーズさせるのはなぜですか?
Perl スクリプトをサーバー上で安定して実行できません。これが問題です。
スクリプトが 1 秒間に 5 回以上アクセスされると、サーバーがフリーズします。そしてしばらくすると、サーバーが永久にハングします。SSH が応答しないため、サーバーを再起動する必要があります。
でApacheを使用していmod_perl
ます。
スクリプトは、Ubuntu の下の仮想専用サーバーでホストされます。SSHで操作しています。これらはサーバー パラメータです CPU: 400 MHz RAM: 256 MB
スクリプトの最大実行時間は 200 ミリ秒です。
「top」ユーティリティを使用してサーバーの負荷を監視しました。問題は表示されません。これは、1 秒あたり 5 つのスクリプトのロード中の CPU 統計です。
スクリプトを問題なく動作させるために必要なオプションは何ですか?
これは、ps aux | fgrep perl
ロードの瞬間の結果です。
アップデート
ボトルネックを発見しました。コードの周りでDateTimeモジュールを何度も使用しています。次の DateTime モジュール メソッドは非常に遅いようです。
- 新着()
- 今()
- 設定(...)
- デルタ_ミリ秒(...)
それらを高速なアナログに置き換えます。
もう一つの懸念。mod_perl インスタンスは大量のメモリを消費します。そして、私には理由がわかりません。モジュールをインポートしない単純な perl スクリプトを実行しようとしました。Apacheの再起動直後に実行します。スクリプトは 37M のメモリを必要とします。なぜそれが起こるのですか?mod_perl が余分なメモリを使用しないようにする方法を知っていますか?
mod_perl をサポートしない通常の perl スクリプトは、3 ~ 5M のメモリを必要とします。
みんな、本当に助けてくれてありがとう、こんなに素晴らしい反応を期待していなかった!
更新 2
もう1つの事実を見つけました。5 秒間待機するだけの単純な perl スクリプトを作成しました。
次に、これらのスクリプトを同時に多数生成します。トップ ユーティリティのステルス時間 (st) は 0% から 80% に跳ね上がり、スクリプトが完了するまで高いままです。
この負荷はどこから来るのですか?
また、すでに述べたように、各 perl インスタンスは 36M のメモリを必要とします。
linux - mod_perl スクリプトのメモリ割り当てを最小限に抑えるには?
簡単な perl スクリプトを作成しました。それが行う唯一のことは、5 秒間待機することです。
mod_perl を使用してサーバー上でスクリプトを生成すると、大量のメモリが必要になります。インスタンスには 36 メガバイトが必要です。
大量のメモリが割り当てられているのはなぜですか? 実行中のスクリプトによってシステムから使用されるメモリを最小限に抑えるにはどうすればよいですか?
これは、2 つのスクリプトを実行したときの「top」ユーティリティの出力です。
スクリプト。
perl - 純粋な Perl で別の HTTP リソースからストリーミングする最も簡単な方法は何ですか?
Perlで別のHTTPリソースからストリーミングする最も簡単な方法は何ですか? ここでは、読み取り元の HTTP リソースが潜在的に無限のストリーム (または、本当に、非常に長い) であると想定しています。
memory-leaks - mod_perlが取ったメモリを測定できますか?
問題:mod_perlがリークし、制御できません。
Ubuntu(本番コード)でmod_perlスクリプトを実行します。通常、8〜10個のスクリプトインスタンスが同時に実行されます。
Unixの「トップ」ユーティリティによると、各インスタンスは55Mのメモリを使用します。55Mはたくさんありますが、このメモリのほとんどは共有されているとここで言われました。
メモリがリークしています。サーバーには512Mがあります。再起動後24時間で空きメモリが大幅に減少します。
テスト:10個のスクリプトが実行されている時点でシステムのメモリを解放します:-再起動後:270M-再起動後24時間以内:50M
24時間で、各スクリプトが使用するメモリはほぼ同じです-55M(「トップ」ユーティリティによる)。どこからメモリが漏れているのかわかりません。そして、どうすればリークを見つけることができるのかわかりません。
メモリを共有し、startup.plのスクリプトに必要なすべてのモジュールをプリロードします。
もう1つのテスト。非常に単純なmod_perlスクリプト( "Hello world!")は52Mかかります( "top"による)
「実用的なmod_perl」によると、GTopユーティリティを使用して、mod_perlが使用する実際のメモリを測定できます。GTopでメモリを測定する非常に単純なスクリプトを作成しました。これは、非常に単純なperlスクリプトによって5400万の実メモリが使用されていることを示しています。「Helloworld」で54メガバイト?!!!
mod_perlのメモリを測定する方法に何か問題があるはずです。助けてください!この問題は私を数日間怒らせています。
これらは、再起動後および再起動後24時間の「トップ」出力のスナップショットです。プロセスはメモリでソートされます。
perl - Perlの未来は?(Perl 6、雇用可能性)
Python vs. Perl (現在は削除されています) やIs Perl Worth?などの関連する質問をいくつか見つけました。(現在は削除されています)が、この質問に直接対処するものは何も見つからないようです.
Perl に正当な未来はありますか? 私は現在 Perl ショップで働いており、PHP から来たので、サーバー レベルで何かを行う場合、間違いなく「より低い」レベルの言語のいくつかの利点を理解していますが、Perl で多くのタスクを実行しているように思えます。 PHPではより迅速に実行でき、Pythonはこれらのタスクをより明示的な方法で実行するため、保守が容易であるという主張があります(私の意見ではありません)。
この仕事を履歴書に載せると、特に言語が成長しなくなった場合、最終的には雇用されにくくなりますか?
いくつかのメモ:
- 私は Perl が大好きなので、Perl をバッシングしているとは思わないでください。使用するのは楽しく、保守が比較的容易なかなり冗長な構文を使用します。
- Perlにはマーケティング部門がなく、いつでもPerl 6を「約束」していないため、「ベーパーウェア」は必ずしもこの状況に当てはまるとは限らないバズワードであることを認識しています.
- CPAN がコミュニティを維持していることは理解しています。したがって、Perl 6 が登場するかどうかにかかわらず、人々はこの言語の可能性を高めるモジュールを構築し続けています。 Python や (特に) PHP などの言語の改訂版を出し続けます。*
編集 {明確化} Cade Roux と Telemachus はどちらも、履歴書によって将来を定義できるかどうかについて良い点を挙げました。
正直なところ、これは私の元雇用主の 1 人が「Perl を最後の仕事にする人は雇わない。それは古い技術だ」と言ったときに持ち出されました。これは PHP ショップでした。
私の元雇用主を中傷することなく、彼女はまったく技術者ではないので、彼女は本当に素人の意見を表明していました.それを利用しない人によって?」、具体的には、同様の雇用主との過去の経験があるかもしれない人々の線に沿って. 次の「ホットな」言語が何であるかを推測するために魔法のグラスを使って未来を調べるようにお願いしているわけではありませんが、この特定の言語 (これも一般人によって発育不全であると非難されています) に否定的な意味合いが含まれている場合それ。
それがもう少し理にかなっていることを願っています。
perl - mod_perl で実行すると、スクリプトが大量のメモリを使用するのはなぜですか?
perl メモリのプロファイルを作成する方法を学ぼうとしています。
非常に単純な Perl の hello-world スクリプトがあり、そのメモリ内のサイズを知りたいです。
GTopユーティリティを使用してメモリを測定します(Stas Beckmanによるmod_perlブックで推奨)。GTop は、私を混乱させる結果を提供します。
コマンドラインからスクリプトを実行すると、GTop は次のように表示します: 7M.
で実行するとmod_perl
、GTop は次のように表示します: 54M.
なんでそんなに!?
なぜスクリプトのメモリが で大きくなるのmod_perl
ですか? それとも、間違った方法でメモリを測定していますか? perl スクリプトのメモリをどのようにプロファイリングしますか?
これがスクリプトとその出力です(数字を読みやすくするために手動でカンマを追加しました)
コマンドラインから実行
/li>mod_perl で実行
/li>
スクリプト simple.pl