一度に1kタスクを処理すると予想されるバッチジョブがあります。そして、各タスクには平均で約12〜16分かかります。並列タスクのバッチ処理の設計手法
現在の実装では、すべてのタスクがブロッキングキューにプッシュされます。このキューからタスクをポップして処理するスレッドがあります。タスクの場合、実行のためにjavaのexecutorサービスを使用しており、すべてのサブタスクが処理されると、このタスクは完全であるとマークされ、キューから別のタスクを読み込みます。ネイティブライブラリを呼び出すため、内部で何をしているのか分からないため、タスク処理時間を最適化できません。
現在の実装では、24時間以上で約300タスクを処理できます。
私は、処理時間を短縮するのに役立つ適切なプラットフォームまたはフレームワークを探しています。
私はコンテナとしてのJava 1.7、OSGIとApache Karafを使用してい
PS:ここでのタスクは、500メガバイトの範囲の特定の画像を壊している - 4ギガバイト小さな塊にし、JPEG形式
にそれを保存します
ある時点で100%のCPU負荷またはhdd負荷がありますか? – Jeroen
はいCPUとネットワークの両方(ネットワークから処理しているため)は完全な24時間にわたって100%の使用率 – Sandeep
を表示していますか?もしそうなら、私はネイティブライブラリが単にそれを取ると仮定します。 –