Ich verwende Ubuntu 17.10 und habe sowohl eine Intel- als auch eine Nvidia GTX 1060-Karte (letztere wird normalerweise ausgewählt) mit der Treiberversion 387.22 .
Ich habe die folgenden Einträge in meinem /var/log/syslog
bemerkt :
Nov 22 18:46:36 [machine name omitted] systemd[1]: Starting NVIDIA Persistence Daemon...
- [einige unabhängige Einträge]
Nov 22 18:46:36 [...] systemd[1]: Started NVIDIA Persistence Daemon.
- [einige unabhängige Einträge]
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
zu entfernenNov 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.
Das Seltsame daran ist, dass diese Einträge (und einige verwandte Einträge, die ich hier weglassen könnte) kontinuierlich auftreten , mehrmals und manchmal innerhalb desselben Zeitstempels.
Das klingt für mich verdächtig – warum wird der Daemon ständig auf diese Weise gestartet und gestoppt und würde das die Leistung nicht stark beeinträchtigen?
Ich frage, weil ich immer noch keine Ahnung habe, warum mein Computer in 17.10 so schlecht abschneidet (insbesondere in Bezug auf Spiele) im Vergleich zu 17.04 – siehe verwandte Frage.
Offensichtlich sind hier der Desktop und die Abhängigkeiten die Hauptverdächtigen, nicht so sehr die Treiberversion (ich erinnere mich, dass ich genau dasselbe bei einer früheren Version gesehen habe).
Fragen
- Ist das oben Gesagte ein normales Verhalten, und wenn nicht, wie kann es untersucht/behoben werden?
- Könnte das mit Leistungsproblemen beim Ausführen anspruchsvoller Anwendungen wie Spielen zusammenhängen?
Bearbeiten
Interessanterweise scheinen diese Log-Einträge nicht aufzutreten, wenn ich mich mit dem alten Unity-Desktop anmelde.
Die Leistung scheint auch aus reiner Desktop-Perspektive viel schneller zu sein (obwohl es sich vielleicht um meine Einbildung handelt), aber die Spieleleistung ist es ganz gleich.
Akzeptierte Antwort:
Obwohl es sich um ein altes Problem handelt, bin ich in Kubuntu 18.04 immer noch selbst darauf gestoßen und nvidia-Treiber 390 . Der nvidia-persistence-Daemon spammt nämlich den Bildschirm während des Bootens (manchmal, nicht immer). Daher umgeht meine Lösung den standardmäßigen nvidia-Daemon-Start beim Systemstart, indem sie einen separaten systemd-Dienst verwendet .
Wie bereits erwähnt, scheint es sich um eine Fehlkonfiguration beim Starten des nvidia-persistence-Daemons zu handeln. Genauer gesagt scheinen die udev-Regeln für mich das Problem zu sein. Daher habe ich /lib/udev/rules.d/71-nvidia.rules
geändert und die Aktionen unter power-off und power-on auskommentiert. Wie in anderen Antworten erwähnt, können Sie die Zeilen zum Laden und Entladen auch auskommentieren.
Jetzt startet der Daemon nicht beim Einschalten. Folglich müssen wir den Start des Daemons manuell planen. Wir können das erreichen, indem wir /lib/systemd/system/nvidia-persistenced.service
kopieren , z. B.
sudo cp /lib/systemd/system/nvidia-persistenced.service /lib/systemd/system/nvidia-persistenced-manual.service
Ändern Sie nun /lib/systemd/system/nvidia-persistenced-manual.service
etwa so aussehen:
[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
Um den Dienst zu aktivieren, führen Sie
aussudo systemctl enable nvidia-persistenced-manual.service
und wenn der alte Dienst noch aktiviert ist, führen Sie
aussudo systemctl disable nvidia-persistenced.service
Auf diese Weise wird der Daemon beim Systemstart gestartet. Fühlen Sie sich frei, die Zeile ExecStart=/usr/bin/nvidia-persistenced
zu ändern zu z.B. schließen Sie --verbose
ein oder --user [...]
.
Denken Sie daran, dass der Daemon standardmäßig mit Root-Berechtigungen ausgeführt wird . Wenn Sie dies nicht möchten, stellen Sie sicher, dass Sie den Daemon mit --user
ausführen Argument.
Insgesamt ist dies keine perfekte Lösung, aber es konnte den Fehler auf meinem System beheben.