私は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.rules
power-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-persistenced
include--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 に感謝します