Ubuntu systemdは100%CPUを使用し、sudoを使用して手動で実行する場合は20%のみを使用します。

Ubuntu systemdは100%CPUを使用し、sudoを使用して手動で実行する場合は20%のみを使用します。

Golangでプログラムを作成(コンパイル)し、systemdを使用して実行しました。長期実行、自動再起動、起動時に実行が必要なためです。ただし、CPUは100%に固定されています。これに比べてターミナルを介してsudoで実行すると約20%程度だけ使用される。役に立つならば、このプログラムはI / O集約的です。

私も読んでいます。この投稿同様の問題があるようです。私は画面の後ろで実行し、nohupにsystemdを試してみましたが、まだ同じ問題が発生しました。また、I / O用ttyを追加してみましたが、それも機能しないようです。

機能するか、システム化された代替案を見つけるのを手伝ってくれてありがとう。

[Unit]
Description=Program Description
Documentation=N/A
After=network.target

[Service]
Environment=PORT=54731
Type=simple
User=root
ExecStart=/home/ubuntu/GoProxy/proxy
Restart=on-failure

[Install]
WantedBy=multi-user.target

編集:私のプログラムは私が書いたカスタムプロキシソリューションです。認証検証とログファイルに書き込まれるランタイム情報のためにファイルを読み取る必要があるため、集中的なI / Oです。

編集:sudo(root権限)を持つデーモンを使用して実行し、クラッシュ時に再起動しましたが、これまではうまくいきました。ところで、cronの使用を開始したときにデーモンを自動的に使用してサーバーを起動しようとしましたが、これを実行しても同じ問題が発生しました。 (私はsudoを介してcronを使用しているので、rootとして実行する必要があります。)

関連情報