私はUbuntu17.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デスクトップでログオンした場合、これらのログエントリは発生しないようです。
パフォーマンスも、純粋なデスクトップの観点からは非常に高速に見えますが(私の想像かもしれませんが)、ゲームのパフォーマンスはまったく同じです。
承認された回答:
これは古い問題ですが、 Kubuntu 18.04でまだ自分で遭遇しています。 およびnvidiaドライバー390 。つまり、nvidia-persistenceデーモンは、起動中に画面にスパムを送信します(常にではない場合もあります)。したがって、私のソリューションは、個別のsystemdサービスを使用して、システム起動時の標準のnvidiaデーモンの起動を回避します。 。
前に述べたように、それはnvidia-persistenceデーモンの起動の設定ミスのようです。もっと正確に言えば、udevルールが私にとって問題のようです。したがって、/lib/udev/rules.d/71-nvidia.rules
を変更しました パワーオフとパワーオンでのアクションをコメントアウトしました。他の回答で述べられているように、ロードとアンロードの行をコメント化することもできます。
これで、デーモンは電源投入時に起動しません。したがって、デーモンの開始を手動でスケジュールする必要があります。これは、/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-persistenced
の行を自由に変更してください 例: --verbose
を含める または--user [...]
。
私のデフォルトの方法では、デーモンはroot権限で実行されていることに注意してください。 。これが不要な場合は、必ず--user
を使用してデーモンを実行してください。 引数。
全体として、これは完璧な解決策ではありませんが、私のシステムのバグを修正することができました。