NVIDIA 永続デーモンが syslog で継続的に起動および停止する

NVIDIA 永続デーモンが syslog で継続的に起動および停止する

私はUbuntu 17.10を使用しており、IntelとNvidia GTX 1060カード(通常は後者を選択)の両方を所有しており、ドライバーのバージョンは387.22

私は自分の に以下のエントリがあることに気づきました/var/log/syslog:

  • Nov 22 18:46:36 [machine name omitted] systemd[1]: Starting NVIDIA Persistence Daemon...
  • [無関係なエントリ]
  • Nov 22 18:46:36 [...] systemd[1]: Started NVIDIA Persistence Daemon.
  • [無関係なエントリ]
  • Nov 22 18:46:36 [...] systemd[1]: Stopping NVIDIA Persistence Daemon...
  • Nov 22 18:46:36 [...] nvidia-persistenced: PID file unlocked.
  • Nov 22 18:46:36 [...] nvidia-persistenced: PID file closed.
  • Nov 22 18:46:36 [...] nvidia-persistenced: The daemon no longer has permission to remove its runtime data directory /var/run/nvidia-persistenced
  • Nov 22 18:46:36 [...] nvidia-persistenced: Shutdown (1115)
  • Nov 22 18:46:36 [...] gdm3: GdmDisplay: display lasted 1.202396 seconds
  • Nov 22 18:46:36 [...] systemd[1]: Stopped NVIDIA Persistence Daemon.

奇妙なのは、これらのエントリ(およびここでは省略している関連エントリ)が継続的に複数回、場合によっては同じタイムスタンプ内で発生します。

それは私には疑わしいように思えます。なぜデーモンはこのように継続的に起動および停止されるのでしょうか。また、それがパフォーマンスに重大な影響を与えないのでしょうか。

私が質問しているのは、17.04と比べて、17.10では私のマシンのパフォーマンスがなぜこんなにも悪いのか(特にゲームに関して)まだわからないからです。関連項目を参照してください。質問

明らかに、デスクトップと依存関係がここでの主な容疑者であり、ドライバーのバージョンはそれほどではありません (以前のバージョンでもまったく同じものを見たことを覚えています)。

質問

  • 上記は通常の動作を反映しているのでしょうか。そうでない場合、どのように調査/修正すればよいのでしょうか。
  • これは、ゲームなどの要求の厳しいアプリケーションを実行する際のパフォーマンスの問題に関係しているのでしょうか?

編集

興味深いことに、古い Unity デスクトップでログオンすると、これらのログ エントリは発生しないようです。また、純粋なデスクトップの観点からはパフォーマンスも大幅に向上しているように見えますが (私の想像かもしれませんが)、ゲーム パフォーマンスはまったく同じです。

答え1

これは古い問題ですが、私自身もまだ遭遇していますクブントゥ 18.04そしてnvidia ドライバー 390つまり、nvidia-persistenceデーモンは起動時に画面にスパムを表示します(常にではありませんが、時々)。そのため、私の解決策は、システム起動時に標準のnvidiaデーモンの起動を回避するために、独立したsystemdサービス

前に述べたように、nvidia-persistence デーモンの起動の設定ミスのようです。より正確に言うと、udev ルールが問題であるようです。そのため、/lib/udev/rules.d/71-nvidia.rulespower-off と power-on の下のアクションを変更してコメント アウトしました。他の回答で述べたように、ロードとアンロードの行もコメント アウトできます。

これでデーモンは電源投入時に起動しなくなりました。そのため、デーモンの起動を手動でスケジュールする必要があります。これは、/lib/systemd/system/nvidia-persistenced.service例えば以下をコピーすることで実現できます。

sudo cp /lib/systemd/system/nvidia-persistenced.service /lib/systemd/system/nvidia-persistenced-manual.service

/lib/systemd/system/nvidia-persistenced-manual.service次のように変更します。

[Unit]
Description=NVIDIA Persistence Daemon
Wants=syslog.target
Requires=local-fs.target

[Service]
Type=forking
User=root
Group=root
ExecStart=/usr/bin/nvidia-persistenced
ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced

[Install]
WantedBy=multi-user.target

サービスを有効にするには、

sudo systemctl enable nvidia-persistenced-manual.service

古いサービスがまだ有効な場合は、

sudo systemctl disable nvidia-persistenced.service

この方法では、デーモンはシステム起動時に起動します。行をExecStart=/usr/bin/nvidia-persistencedinclude--verboseまたは の ように自由に変更してください--user [...]

覚えておいていただきたいのは、私のデフォルトの方法では、デーモンはルート権限これを望まない場合は、引数を指定してデーモンを実行してください--user

全体として、これは完璧な解決策ではありませんが、私のシステムのバグを修正することができました。

答え2

これらのエントリは、Nvidia パッケージの不要な構成ファイルによって発生します。

  • シェルから nvidia-smi コマンドを実行すると、左上のどこかに「Persistence-M On」と表示されるはずです。
  • 「Persistence-M」なしでNvidiaドライバーが正常に動作するかどうかをテストできます。
  • /lib/systemd/system/ に移動します。ここで nvidia-persistenced.service というファイルが見つかります。名前を変更するか、移動します。
  • /lib/udev/rules.d/に移動します
  • 設定ファイル71-nvidia.rulesをルートとして開きます。
  • 電源オンと電源オフ、およびロードとアンロードの下のアクションを # コメントアウトします。
  • 再起動して確認してください。

void75、forums.linuxmint.com に感謝します

関連情報