У вас есть конфигурация опций ядра, в которой ЦП не будет использоваться ОС, она называется isolcpus
.
isolcpus - Изолируйте ЦП от планировщика ядра.
Краткое описание isolcpus = cpu_number [, cpu_number, ...]
Описание Удаление указанных процессоров, как определено значениями cpu_number , из общих алгоритмов балансировки SMP и планировщика ядра . Единственный способ переместить процесс на "изолированный" ЦП или из него - через системные вызовы привязки ЦП. cpu_number начинается с 0, поэтому максимальное значение на 1 меньше количества процессоров в системе.
Эта конфигурация, которую я собираюсь описать, может иметь гораздо больше применений, чем для тестирования.
Например, Meru использует эту технологию в своих контроллерах AP на базе Linux, чтобы сетевой трафик не мешал внутренней работе ОС, а именно операциям ввода-вывода.
Я также использую его в очень загруженном веб-интерфейсе по тем же причинам: я узнал из жизненного опыта, что я слишком часто терял контроль над этим сервером; пришлось принудительно перезагружать его, пока я не отделил демона внешнего интерфейса на его собственных выделенных процессорах.
Поскольку у вас 8 процессоров, вы можете проверить это с помощью вывода команды:
$ grep -c proc /proc/cpuinfo
8
или
$ lscpu | grep '^CPU.s'
CPU(s): 8
Добавьте Debian / Ubuntu в файл / etc / default / grub
в параметр GRUB_CMDLINE_LINUX
:
GRUB_CMDLINE_LINUX="isolcpus=7"
(это 7, потому что оно начинается с 0, а у вас 8 ядер)
Затем запустите,
sudo update-grub
Это говорит ядру не использовать одно из ваших ядер.
Перезагрузите систему.
Тогда запустите свой процесс.
Сразу после его запуска вы можете выбрать 8-й ЦП (7, потому что 0 - 1-й), и быть уверенным, что вы единственный, кто использует этот ЦП.
Для этого используйте команду:
taskset -cp 7 PID_number
набор задач - получить или установить соответствие процессора процессам.
СИНХРОНИЗАЦИЯ
набор задач [параметры] [маска | список] [pid | команда [аргумент] ...]
ОПИСАНИЕ
набор задач используется для установки или получения привязки к ЦП работающего сеанса с учетом его PID или для запуска новой КОМАНДЫ с заданное сродство к ЦП. Сходство ЦП - это свойство планировщика, которое «связывает» процесс с заданным набором ЦП в системе. Планировщик Linux будет учитывать заданное соответствие ЦП, и процесс не будет выполняться на других ЦП. Обратите внимание, что планировщик Linux также поддерживает естественное соответствие ЦП: планировщик пытается выполнить по соображениям производительности сохраняйте процессы на одном и том же процессоре настолько долго, насколько это возможно. Таким образом, форсирование определенной привязки ЦП полезно только в определенных приложениях.
Чтобы узнать больше об этом, см .: isolcpus, numactl и набор задач
Также, используя ps -eF
, вы должны увидеть в столбце PSR используемый процессор.
У меня есть сервер с изолированными ЦП 2 и 3, и действительно, его можно увидеть с помощью ps -e
, единственный процесс в пользовательском пространстве , как и предполагалось, это фунт
.
# ps -eo psr,command | tr -s " " | grep "^ [2|3]"
2 [cpuhp/2]
2 [watchdog/2]
2 [migration/2]
2 [ksoftirqd/2]
2 [kworker/2:0]
2 [kworker/2:0H]
3 [cpuhp/3]
3 [watchdog/3]
3 [migration/3]
3 [ksoftirqd/3]
3 [kworker/3:0]
3 [kworker/3:0H]
2 [kworker/2:1]
3 [kworker/3:1]
3 [kworker/3:1H]
3 /usr/sbin/pound
Если вы сравните его с неизолированными ЦП, то увидите, что они выполняют гораздо больше функций (окно ниже слайды ):
# ps -eo psr,command | tr -s " " | grep "^ [0|1]"
0 init [2]
0 [kthreadd]
0 [ksoftirqd/0]
0 [kworker/0:0H]
0 [rcu_sched]
0 [rcu_bh]
0 [migration/0]
0 [lru-add-drain]
0 [watchdog/0]
0 [cpuhp/0]
1 [cpuhp/1]
1 [watchdog/1]
1 [migration/1]
1 [ksoftirqd/1]
1 [kworker/1:0]
1 [kworker/1:0H]
1 [kdevtmpfs]
0 [netns]
0 [khungtaskd]
0 [oom_reaper]
1 [writeback]
0 [kcompactd0]
0 [ksmd]
1 [khugepaged]
0 [crypto]
1 [kintegrityd]
0 [bioset]
1 [kblockd]
1 [devfreq_wq]
0 [watchdogd]
0 [kswapd0]
0 [vmstat]
1 [kthrotld]
0 [kworker/0:1]
0 [deferwq]
0 [scsi_eh_0]
0 [scsi_tmf_0]
1 [vmw_pvscsi_wq_0]
0 [bioset]
1 [jbd2/sda1-8]
1 [ext4-rsv-conver]
0 [kworker/0:1H]
1 [kworker/1:1H]
1 [bioset]
0 [bioset]
1 [bioset]
1 [bioset]
1 [bioset]
1 [bioset]
1 [bioset]
1 [bioset]
0 [jbd2/sda3-8]
1 [ext4-rsv-conver]
1 /usr/sbin/rsyslogd
0 /usr/sbin/irqbalance --pid=/var/run/irqbalance.pid
1 /usr/sbin/cron
0 /usr/sbin/sshd
1 /usr/sbin/snmpd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid
1 /sbin/getty 38400 tty1
1 /lib/systemd/systemd-udevd --daemon
0 /usr/sbin/xinetd -pidfile /run/xinetd.pid -stayalive
1 [kworker/1:2]
0 [kworker/u128:1]
0 [kworker/0:2]
0 [bioset]
1 [xfsalloc]
1 [xfs_mru_cache]
1 [jfsIO]
1 [jfsCommit]
0 [jfsCommit]
0 [jfsCommit]
0 [jfsCommit]
0 [jfsSync]
1 [bioset]
0 /usr/bin/monit -c /etc/monit/monitrc
1 /usr/sbin/pound
0 sshd: rui [priv]
0 sshd: rui@pts/0,pts/1
1 -bash
1 -bash
1 -bash
1 [kworker/u128:0]
1 -bash
0 sudo su
1 su
1 bash
0 bash
0 logger -t cmdline root[/home/rui]
1 ps -eo psr,command
0 tr -s
0 grep ^ [0|1]
0 /usr/bin/vmtoolsd
Закладки загружаются из /home/<username>/.config/gtk-3.0/bookmarks
. (Используйте strace
, чтобы увидеть, к каким файлам осуществляется доступ. Кроме того, добавление закладки добавляет к этому файлу, а добавление строк в этот файл добавляет закладки. )Этот файл выглядит так:
file:///home/<username>/Documents Documents
file:///home/<username>/Music Music
file:///home/<username>/Pictures Pictures
file:///home/<username>/Videos Videos
file:///home/<username>/Downloads Downloads
Используемые изображения находятся в /usr/share/icons/Mint-X/places/16
. (Путь зависит от вашей темы.)
У меня самого была такая проблема. Я решил это с помощью ссылок. Чтобы заставить его работать, выполните следующие действия:
Переместите любые данные из исходных папок в нужные новые места.
Удалите папки из домашней папки.
Выберите папки в нужном новом местоположении и перетащите их в исходное местоположение, удерживая нажатой клавишу Alt . Убедитесь, что имена папок идентичны исходным именам в вашей домашней папке.
Появится всплывающее -меню с запросом, какое действие предпринять. Выберите «Ссылка здесь».
Добавьте закладки связанных папок на панель закладок.
Вы увидите папки с их оригинальными эмблемами (значками )на панели закладок, и в качестве побочного эффекта все системные действия теперь будут указывать на ваши новые местоположения, поэтому нет необходимости что-либо менять. местоположений по умолчанию для загрузок, документов и т. д.
Надеюсь, это будет полезно.
В то время как закладки настраиваются в /home/<username>/.config/gtk-3.0/bookmarks
, как указал @user224348, Места (, которые представляют собой закладки особого типа со значками в соответствии с определенными категориями :, документы, шаблоны и т. д. ), настраиваются в /home/<username>/.config/user-dirs.dirs
или с помощью команды xdg-user-dirs-update
.