私のレールアプリケーションでは、ワーカープロセスを使用して45時間のデータベースレコードを6時間に1回スキャンし、これにより、ワーカーが処理しているときにサーバーCPU /負荷が急増します。その結果、他のサーバー要求がパフォーマンスヒットになります。 find_in_batchを使って一度に1000レコードを取り出して処理を試みました。しかし、CPU使用率は依然としてピークレベルにあります。大きな違いはありませんでした。これを処理する方法はありますか?したがって、CPU使用率は最大限に達しません。レールで処理するサーバーのパフォーマンスに影響を与えずにワークリングを使用してデータベースレコードを45k処理する
1
A
答えて
0
はそれを行うための一つの方法ですが、他は今少しリラックスして、あなたのアプリに伝えることですし、次に使用しますsleep
かselect
コマンド:
while (doing_stuff)
do_stuff
# Take a break for 0.2 seconds
select(nil, nil, nil, 0.2)
end
select
呼び出しは、システム上の他のタスクを自由に実行できるように時間の短い期間のためにブロックします。この値を高く設定するほど、ジョブの実行速度は遅くなりますが、CPU負荷レベルへの影響は小さくなります。
3
あなたはcronとscript/runner
でジョブを呼び出すと仮定します。あなたはnice
と、プロセスの優先順位を下げてみてください:nice
を使用して、プロセスの優先度レベルをいじる
nice -n 19 /usr/bin/ruby <path to your app>/script/runner <your script>
関連する問題
- 1. 入力要素の処理に影響を与えるID
- 2. ngrxはエラー処理に影響を与えます
- 3. OWLAPI:公理の更新/削除を処理する際のパフォーマンスへの影響
- 4. パフォーマンスに影響を与えずにコード行を減らす
- 5. 色を変更して処理中の背景を変更して粒子に影響を与える
- 6. SetBigStringTryClobを使用してOracle JDBCでCLOBを処理する際のパフォーマンスの影響
- 7. SqlConnection.ClearPool()がWebサーバー(IIS)のパフォーマンスに与える影響
- 8. MKMapViewのパフォーマンスに影響を与えずにMKAnnotationを配置する方法
- 9. 例外のラッピングと再スロー処理はパフォーマンスに影響しますか?
- 10. AngularJS - テーブル内のディレクティブを使用する - パフォーマンスに影響を与えるng-repeat
- 11. HierarchicalDataTemplate.Triggersを使用してItemTemplateのコントロールに影響を与える
- 12. 処理に5msかかるページに複数のコアの影響
- 13. onfocusイベントを使用して要素に影響を与える
- 14. MediaWiki - Print.cssに影響を与えずにCommon.cssを変更する
- 15. ジャマーを使用した処理におけるベクトルの投影
- 16. レールとヒロクでサーバー上のデータを処理する方法
- 17. goroutineのパフォーマンスに影響を与える要因
- 18. json応答をレールで処理する
- 19. will_many:RoRに大きなパフォーマンス上の影響を与えますか?
- 20. dns-prefetchingはパフォーマンスにマイナスの影響を与えますか?
- 21. UILabelレイヤーcornerRadiusがパフォーマンスに悪影響を与える
- 22. Edgeに影響を与えずにChromeにスタイルを適用する方法
- 23. 他の活動のパフォーマンスに影響を与えずに、バックグラウンドでファイルのリストをダウンロードするには?
- 24. catch節がパフォーマンスに影響を与えますか?
- 25. コバルトブラウザのキーアップ/ダウンを処理するパフォーマンス
- 26. パフォーマンスに影響を与えずにウェブ上で大きなデータを報告していますか?
- 27. fakeRequestを使用して2.5.x junitテストのエラー処理を処理する
- 28. javascriptを処理せずに
- 29. LOMITがneo4jの "allShortestPaths"のcypherクエリのパフォーマンスに与える影響
- 30. モジュールのパフォーマンスに与える影響ノードのクラス
これはリソースの貧弱な使用です。あなたのアプリは、CPUの競合がない時間に実行されるかもしれません。その場合、データベースの各レコードに対して何もしないで0.2秒を不必要に費やします。 – meagar
これを拡張して、システムの負荷に応じて遅延時間を可変に設定することができます。 – tadman