Systemd の利点とスケジューリング構成は、プロセスのパフォーマンスに影響を与えません。

Systemd の利点とスケジューリング構成は、プロセスのパフォーマンスに影響を与えません。

私たちのチームは、3つのPythonスクリプトを実行し、私たちの製品から他の製品にデータを転送するのに役立つプロセスを生成するサービスコードの管理と保守を継承しました。あるプロセスは当社の製品で生成されたファイルをあるタイプから別のタイプに変換し、別のプロセスはXファイルを圧縮し、3番目のプロセスはSFTPを介してそのファイルを別のコンピューターに転送します。当社の製品と継承されたサービスはすべてCentOS 7で実行されます。

製品を実装した後、パフォーマンスがわずかに低下することを確認しました。私の使命は、サービスの発生率を減らし、CPUの消費が低い場合にのみサービスを実行することで、活動が最も多い間に主要製品に必要なすべてのリソースを確保することです。サービスの.serviceファイルを使用し、[[サービス]]の下に次のパラメータを追加し、パフォーマンステストの自動化を実行して、各ステップの後に効果を確認しました。

  1. ナイス=19
  2. Nice = 19 + ExecStartのbinパスに "chrt -p 0; Nice; ionice"を追加します。
  3. 良い = 19 + CPUSchedulingPolicy = バッチ
  4. 良い = 19 + CPUSchedulingPolicy = バッチ + IOSchedulingClass = ベストエフォート + IOSchedulingPriority = 7
  5. 良い = 19 + CPUSchedulingPolicy = バッチ + IOSchedulingClass = アイドル + IOSchedulingPriority = 7
  6. 良い = 19 + CPUSchedulingPolicy = アイドル + IOSchedulingClass = アイドル + IOSchedulingPriority = 7

すべての変更後にパフォーマンステストの自動化を実行する前にsystemctl daemon-reloadsystemctl restart <application>.service

性能試験結果に大きな変化は見られなかった。過去2か月間の平均テスト結果に変化はなく、テスト結果自体も比較しなかった。完全に正しく設定されていないようです。私は何を見逃していますか?

サービスの.serviceファイルがある場所を編集して実行し、ファイルが/etc/systemd/system/そこにあり、有効になっているsystemctl enable <application>.servicesystemctl list-unit-filesマークされていることを確認しました。

関連情報