問題タブ [ulimit]
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.
windows - ulimit -n に相当する Windows
unix コマンド "ulimit -n" に相当する Windows は何ですか?
基本的に、コマンドプロンプトから最大fd制限を設定したい。
linux - 「ulimit-l」とはどういう意味ですか?
マンページによると、ulimitの「-l」は「メモリにロックされる可能性のある最大サイズ」を意味します。この文は正確にはどういう意味ですか?実行中のプログラムにどのように影響しますか?
linux - ubuntu での ulimit -t
Ubuntu Linux (2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux) を実行していますが、コマンド「ulimit -t」が正しく機能しないようです。私は走った:
ulimit -t 1; マイプログラム
ここで、'myprogram' は無限ループです。プログラムは 1 秒後に中断されると思っていましたが、停止しませんでした。Linux Fedora インストールで同じことを試してみたところ、期待どおりに機能しました。
正しく動作するために設定する必要がある構成はありますか?
--tsf
python - Python:ulimitとsubprocess.call / subprocess.Popenに最適ですか?
subprocess.callを使用してPythonプロセスからスポーンする外部コマンドラインアプリが取る時間とCPUを制限する必要があります。これは主に、スポーンされたプロセスがスタックしてCPUを99%に固定することがあるためです。
niceとulimitはこれを行うための合理的な方法のように見えますが、それらがサブプロセスとどのように相互作用するかはわかりません。
- 制限は次のようになります。
- 60秒以上かかる場合は、プロセスを強制終了します
- CPUの20%に制限する
- サブプロセスを生成するPythonプロセスではなく、サブプロセスにリソース制限を適用したいと思います。
subprocess.callによって生成されたプロセスにniceとulimitを適用する方法はありますか?より良いPythonネイティブの代替手段はありますか?
これはLinux(ubuntu)システム上にあります。
linux - ssh リモート コマンドの実行と ulimit
次のスクリプトがあります。
ローカルでスムーズに実行され、常に問題ありません。しかし、ssh を介してリモートで実行しようとすると、次のようになります。
エラーが発生しました:
次のコマンドも試しました。
同じエラー。
ssh リモート コマンドの実行により、nofile 制限に 1024 のハード リミットが適用されているようですが、このデフォルト値を変更する方法がわかりません。/etc/security/limits.conf を変更して sshd を再起動しようとしましたが、それでも同じエラーが発生します。
memcached - -c で memcached を起動するには ulimit が必要ですか?
次のように root として起動する場合:
次のようなスタートアップ スクリプトが必要ですか。
または、memcached は最大オープン ファイルを自動的に設定しますか?
linux - 子に適用される Perl スクリプト内から ulimit を設定するにはどうすればよいですか?
当社の開発ボックスをセットアップするためのさまざまなインストール手順を実行する Perl スクリプトがあります。ulimit
さまざまなシェルスクリプトを実行しますが、必要なs (具体的には、私の場合はスタックサイズ)よりも小さいためにクラッシュするものもあります-s
。
したがって、メインの Perl スクリプト内から開始ulimit
されたすべてのスクリプト ( children
) に適用される a を設定したいのですが、それを達成する方法がわかりません。スクリプト内から ulimit を呼び出そうとすると、その特定のスクリプトにのみ設定されます。すぐに終了する子シェル。
ulimit
Perl スクリプトを実行または使用する前に呼び出すことができることは承知しています/etc/security/limits.conf
が、ユーザーにこのことを知られたくありません。ユーザーはスクリプトの実行方法のみを知っている必要があり、そのすべてを処理する必要があります。
ulimit
このように、コマンドを実行するたびに実行することもできますが、毎回ulimit -s BLA; ./cmd
これを複製したくはありません。より良い、よりクリーンなソリューションがあるように感じます。
別のクレイジーな「回避策」は、ulimit を設定して BLA.pl を呼び出す BLA.sh というラッパー スクリプトを作成することです。 "ulimit -s BLA; ./BLA.pl --foo" で自分自身を呼び出し、 --foo を見るかどうかに基づいて異なる動作をしますが、これは以前よりもさらにハックです)。
最後に、どうやら BSD::Resource をインストールできたようですが、外部依存関係の使用は避けたいと思います。
では、Perl スクリプト内から ulimit を設定し、それをすべての子に適用する方法は何ですか?
ありがとうございました。
java - JBossデプロイメントはLinuxで「java.util.zip.ZipException:zipファイルを開く際のエラー」をスローしますか?
Linux上のJava6で実行されているJBossに大きなEAR(〜1024 jar / wars以上を含む)をデプロイしましたが、デプロイメントプロセスは次の例外をスローして泣きました:
c++ - Linuxのプロセスのスタックサイズに制限はありますか?
Linuxのプロセスのスタックサイズに制限はありますか?それは単にマシンのRAMに依存しているのでしょうか?
関数への再帰呼び出しの深さを制限するために、これを知りたいです。
linux - Linux のプロセスごとのリソース制限 - Red Hat の深い謎
私は独自のマルチスレッド C プログラムを持っており、CPU コアの数に合わせてスムーズに速度を調整できます..1、2、3 などのスレッドで実行でき、線形スピードアップを得ることができます..6 コアで最大約 5.5 倍の速度Ubuntu Linux ボックスの CPU。
Red Hat Enterprise Linux を実行する 4 つのクアッドコア Xeon プロセッサを搭載した非常にハイエンドな Sunfire x4450 でプログラムを実行する機会がありました。16 スレッドで私のプログラムを 16 コアでどれだけ速く実行できるか楽しみにしていましたが、2 つのスレッドと同じ速度で実行されます。
後で非常に頭を悩ませてデバッグすると、私のプログラムが実際にすべてのスレッドを作成していて、実際には同時に実行されていることがわかりますが、スレッド自体は本来よりも遅いです。2 スレッドは 1 よりも約 1.7 倍速く実行されますが、3、4、8、10、16 スレッドはすべて正味 1.9 倍で実行されます! すべてのスレッドが実行されている (ストールまたはスリープ状態ではない) ことがわかりますが、単に遅いだけです。
ハードウェアに問題がないことを確認するために、プログラムの 16 個のコピーを個別に同時に実行しました。彼らは皆、全速力で走った。実際には 16 個のコアがあり、それらは実際にフル スピードで実行され、十分な RAM があります (実際、このマシンには 64 GB があり、プロセスごとに 1 GB しか使用しません)。
したがって、私の質問は、オペレーティングシステムの説明があるかどうかです。おそらく、スレッドスケジューリングを自動的に縮小して、1つのプロセスがマシンを占有しないようにするプロセスごとのリソース制限です。
手がかりは次のとおりです。
- プログラムがディスクまたはネットワークにアクセスしません。それはCPUの制限です。その速度は、1 ~ 6 スレッド用のヘキサコア i7 を備えた Ubuntu Linux の単一の CPU ボックスで直線的にスケーリングします。6 スレッドは実質的に 6 倍のスピードアップです。
- 私のプログラムは、この 16 コアの Sunfire Xeon ボックスで、2 から 16 の任意の数のスレッドで 2 倍のスピードアップよりも速く実行されることはありません。
- 私のプログラムの 16 個のコピーをシングル スレッドで実行すると、完全に実行され、16 個すべてが一度に全速力で実行されます。
- top は、割り当てられた CPU の 1600% を示しています。/proc/cpuinfo は、16 個のコアすべてが 2.9GHz の最大速度で実行されていることを示しています (1.6GHz の低周波数アイドル速度ではありません)。
- 48 GB の RAM が空き、スワッピングではありません。
何が起こっていますか?プロセスの CPU 制限ポリシーはありますか? もしそうなら、どうすればそれを測定できますか?この動作を他に説明できるものは何ですか?
これを解決するためのアイデアをありがとう、2010 年の大 Xeon スローダウン ミステリー!