Как переключить процесс с GPU на CPU

Решение

Журналы ошибок показывают, что версия akonadi сервера mysql, которая требуется этим K *приложениям, пытается получить доступ ~/.local/share/akonadi/db_data/, за исключением того, что db_dataне существует,поэтому он выдает ошибку, очень похожую на touch ~/nonexistent_dir/file.txt.

Для решения просто запустите приведенные ниже команды.cd ~/.local/share/akonadi/; mkdir db_data


Объяснение

После долгих поисков в Интернете (было приличное количество информации, но большая ее часть была неполной/нерешенной веткой форума о похожих, но не идентичных проблемах с Аконади )мне удалось найти это общее резюме Akonadi из KDE, которое стало отличным стартом для моего собственного исследования.

Поигравшись с командами, упомянутыми в ссылке, я получил следующий вывод (редакция моя):

$ akonadictl start
$ Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
mysqld: [ERROR] Could not open required defaults file: /home/[my username]/.config/akonadi/
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
org.kde.pim.akonadiserver: database server stopped unexpectedly
org.kde.pim.akonadiserver: Database process exited unexpectedly during initial connection!
org.kde.pim.akonadiserver: executable: "/usr/sbin/mysqld-akonadi"
org.kde.pim.akonadiserver: arguments: ("--defaults-file=/home/[my username]/.local/share/akonadi/mysql.conf", "--datadir=/home/[my username]/.local/share/akonadi/db_data/", "--socket=/tmp/akonadi-[my username].UXCgLp/mysql.socket", "--pid-file=/tmp/akonadi-[my username].UXCgLp/mysql.pid")
org.kde.pim.akonadiserver: stdout: ""
org.kde.pim.akonadiserver: stderr: "mysqld: Can't change dir to '/home/[my username]/.local/share/akonadi/db_data/' (Errcode: 2 - No such file or directory)\n2018-06-21T19:34:18.989616Z 0 [Warning] The syntax '--log_warnings/-W' is deprecated and will be removed in a future release. Please use '--log_error_verbosity' instead.\n2018-06-21T19:34:18.989703Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).\n2018-06-21T19:34:18.991172Z 0 [Warning] Can't create test file /home/[my username]/.local/share/akonadi/db_data/[my hostname].lower-test\n2018-06-21T19:34:18.992274Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.22-0ubuntu0.16.04.1) starting as process 11859...\n2018-06-21T19:34:19.006500Z 0 [Warning] Can't create test file /home/[my username]/.local/share/akonadi/db_data/[my hostname].lower-test\n2018-06-21T19:34:19.006549Z 0 [Warning] Can't create test file /home/[my username]/.local/share/akonadi/db_data/[my hostname].lower-test\n2018-06-21T19:34:19.006623Z 0 [ERROR] failed to set datadir to /home/[my username]/.local/share/akonadi/db_data/\n2018-06-21T19:34:19.006632Z 0 [ERROR] Aborting\n\n2018-06-21T19:34:19.006658Z 0 [Note] Binlog end\n2018-06-21T19:34:19.006726Z 0 [Note] /usr/sbin/mysqld: Shutdown complete\n\n"
org.kde.pim.akonadiserver: exit code: 1
org.kde.pim.akonadiserver: process error: "Unknown error"
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/akonadi-[my username].UXCgLp/mysql.socket' (2)'
Check that mysqld is running and that the socket: '/tmp/akonadi-[my username].UXCgLp/mysql.socket' exists!
org.kde.pim.akonadiserver: Failed to remove runtime connection config file
org.kde.pim.akonadicontrol: Application 'akonadiserver' exited normally...

Получается пара интересных строк. Проблемным является org.kde.pim.akonadiserver: stderr: "mysqld: Can't change dir to '/home/[my username]/.local/share/akonadi/db_data/' (Errcode: 2 - No such file or directory). Для меня это выглядело так, как будто программа пыталась записать в каталог, к которому у нее не было доступа, и выдавала ошибку, очень похожую на touch ~/nonexistent_dir/file.txt.

Поэтому я запустил cd ~/.local/share/akonadi/; mkdir db_dataи повторил попытку. Бам сработало.

5
07.06.2020, 15:36
1 ответ

Как указал Стивен, вы можете использовать команду ps, за которой следует PID , чтобы определить, какой процесс использует ваш GPU.

Меня также озадачило странное имя процесса, показанное в nvidia -smi вывод:

$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.138                Driver Version: 390.138                   |
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1461      G   /usr/lib/xorg/Xorg                            54MiB |
|    0      3495      G  ...AAAAAAAAAAAACAAAAAAAAAA= --shared-files    59MiB |
+-----------------------------------------------------------------------------+

В моем случае это был google chrome , и эта длинная строка AAA используется для установки настроек графического процессора в Chrome.

$ ps -fp 3495
UID        PID  PPID  C STIME TTY          TIME CMD
ovalerio  3495  3467  0 10:37 tty2     00:04:04 /opt/google/chrome/chrome --type=gpu-process --field-trial-handle=6716317491882142118,16579441558825986940,131072 --gpu-preferences=MAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA= --shared-files
4
18.03.2021, 23:29

Теги

Похожие вопросы