特定のJVM +アプリケーションサーバの組み合わせが処理できるスレッドの数を判断する方法はありますか?質問は、Webアプリケーション要求スレッドを提供するだけでなく、バックグラウンドスレッドについても重要です。JVM /アプリケーションサーバのスレッド制限
答えて
これは状況に応じて実際には「依存する」ものです。
- スレッドは何をしていますか?
- どのくらいのメモリが必要ですか?
- ガベージコレクションはどのくらい進んでいますか?
- どのくらいのメモリがありますか?
- いくつのCPUがありますか?
- どのくらい速いのですか?
Java EEアプリケーションサーバーアプリケーションは、スレッド自体を作成しない傾向があります。むしろ、スレッドプールを構成します。私はまだ10個のスレッドを作成する能力が問題を解決し、いくつかのアプリケーションサーバーの制限によって私がそうすることができなくなった状況にはいませんでした。
さまざまなアプリケーションサーバー間でパフォーマンスを比較することは非常に重要ではなく、回答は脆くなる傾向があります。仕事の種類の小さな変化は、異なる答えを生むことができます。
なぜあなたは質問していますか?
これは本当にあなたが純粋にJava VMから見つけることができるものではありません。これは、VM固有のものよりもハードウェア/ OSの制限のほうが多いです。この回答を見つける最も良い方法は、多数のスレッドでテストし、パフォーマンスの低下をどこから見始めるかを確認することです。 this devx discussionも参照してください。
ありがとうございました。リンクは役に立ちました。 –
これは実際に実行している特定のハードウェア(CPU数、メモリ量など)に依存し、OS(SolarisとWindows)にも依存します。これは、基礎となるスレッドがOS-スレッド管理を提供する。各スレッドが消費するリソースの量はアプリケーションに依存するため、アプリケーションとアプリケーションサーバー自体にも依存します。
- 1. JVMで使用されるスレッドの数を制限する
- 2. ScalaマクロとJVMのメソッドサイズ制限
- 3. 並行スレッドの制限
- 4. ubuntuでjvmプロセスメモリを制限する
- 5. Asynchronus Webservicesスレッド制限C#
- 6. Groovyのスレッド数を制限する
- 7. スタック制限とスレッドの関係
- 8. スレッドの数を制限する方法
- 9. PHP:Curlの同時スレッドを制限する
- 10. スレッドの作成を制限する
- 11. Windows XPでのJava JVMメモリ制限の確認
- 12. スレッド数を制限するCompojure spawn
- 13. アプリケーションサーバのログ
- 14. アプリケーションサーバのないトップリンク
- 15. 非Web Spring/Hibernateアプリケーション用アプリケーションサーバ
- 16. 実行時間を制限するJavaのスレッドのサンプル
- 17. ExecutorServiceを使用した個々のスレッドの時間制限
- 18. ExecutorServiceのスレッドをどのように制限しますか?
- 19. JVMメモリとCPU使用率の実際的な制限はありますか?
- 20. 私はスレッド制限を打つのですか?
- 21. 制限数を持つ複数のスレッドで関数を実行
- 22. C#スレッドのCPU使用量を制限する
- 23. Pythonのスレッドを制限する正規/標準的な方法
- 24. JVMロック・スレッドのないモニターを含むスレッド・ダンプ
- 25. クリック数の制限、制限、無効化
- 26. が無制限のメモリ制限
- 27. 組み込みアプリケーションサーバ
- 28. スレッドの問題、同時スレッド制限、同時に実行される最大スレッドの問題
- 29. Pythonで同時スレッド数を制限する方法は?
- 30. ASP.NETのスレッド権限
私が尋ねる理由はbeacuaseです。私は、Webサービス内で非同期処理をいくつか行いたいと思っています。当然のことながら、元の要求は、アプリケーションサーバーによって定義されたスレッドプールからのスレッドによって処理されますが、そのスレッドは、5つのスレッドを追加して作業を行います。したがって、サーバーが必要とするスレッドの総数=要求を処理するスレッドの数*要求ごとのワーカースレッドの数+一定数のバックグラウンドスレッド。その数はかなり大きくなる可能性があります。私は何かを実装する前にJVMがこのようなシナリオでどのように動作するのか疑問に思います。逐次処理と –
1)スレッドは、Webサービス要求を処理し、内部データベースと他のWebサービス 2 + 3にアクセスしている)今日、彼らが利用できる5〜6メガバイト/リクエスト 4)メモリーを過ごす:2GB 5)1つのCPU 6)が異なりバックエンド・システムの応答 –
多くのアプリケーション・サーバーでは、制御された方法で非同期ジョブ・キューなどの追加ワーカー・スレッドを何らかの方法で生成する方法を設計しました。これらを使用すると、通常のサービス・スレッドと追加のワーカー・スレッド。 Webサービスが非常に重い作業をしていて、 "submitJob、getJobResult"オペレーションのペアがうまくいくかもしれません。 – djna