Изложенная ниже информация не является руководством к действию, является исключительно ознакомительной для заинтересованных лиц.

Устанавливаем компактный вариант серверной ubuntu, при выборе параметров отключаем (или оставляем включенным, при необходимости) lvm-group.

echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/dont-prompt-$USER-for-password

После установки сносим snapd:

sudo apt remove --purge snapd

или просто отключаем эти службы, например:

sudo systemctl stop snapd.service &&sudo systemctl disable snapd.service
sudo systemctl stop snapd.socket && sudo systemctl disable snapd.socket

Отключаем ненужные службы:

sudo systemctl disable apparmor && sudo systemctl mask apparmor
sudo systemctl disable apport && sudo systemctl mask apport
sudo systemctl stop systemd-journald.service && systemctl mask systemd-journald.service
sudo systemctl stop multipathd && sudo systemctl mask multipathd
sudo systemctl stop systemd-networkd-wait-online.service && sudo systemctl mask systemd-networkd-wait-online.service

Обновляем систему:

sudo apt update && sudo apt -y upgrade && sudo apt -y dist-upgrade && sudo apt -y autoremove

Ставим служебные программы:

sudo apt install apt autoconf automake build-essential cmake cron curl extra-cmake-modules gcc git landscape-common libcurl4-openssl-dev libelf-dev libgmp-dev libhwloc-dev libjansson-dev libmicrohttpd-dev libncurses5 libncurses5-dev libnuma-dev libpci-dev libssl-dev libtool libuv1-dev make nano ocl-icd-opencl-dev pkg-config wget htop screen zlib1g-dev

Для автоматического входа в систему и дальнейшего запуска майнеров с помощью cron+screen выполняем:

sudo mkdir /etc/systemd/system/getty@tty1.service.d 
sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf

записываем туда:

[Service] 
ExecStart= 
ExecStart=-/sbin/agetty --noissue --autologin myusername %I $TERM 
Type=idle

где

myusername - имя пользователя компьютера.

Ставим драйвера Nvidia на сервер.

ubuntu-drivers devices
sudo apt install nvidia-driver-525-server
sudo apt install nvidia-settings
sudo nvidia-xconfig -a --cool-bits=31 --allow-empty-initial-configuration --enable-all-gpus

На компьютерах с видеокартами Nvidia, для устранения ошибки

ERROR: libXv setup error : libXv.so.1: cannot open shared object file: No such file or directory

устанавливаем пакет libxv1:

sudo apt-get install libxv1

Для компьютера с видеокартами AMD ставим драйвера и настраиваем разгон.

Например, чтобы поставить драйвер AMD версии 22.20.5 на ubuntu-server 22.04, скачиваем deb-инсталлятор драйвера для ubuntu 22.04 (jammy):

wget http://repo.radeon.com/amdgpu-install/22.20.5/ubuntu/jammy/amdgpu-install_22.20.50205-1_all.deb

Устанавливаем deb-пакет:

sudo apt install ./amdgpu-install_22.20.50205-1_all.deb

Устанавливаем драйвер AMD с поддержкой OpenCL:

sudo amdgpu-install -y --accept-eula --usecase=opencl --opencl=rocr,legacy
sudo usermod -a -G video $LOGNAME && sudo usermod -a -G render $LOGNAME
sudo reboot

По команде

clinfo

должны отображаться все видеокарты в строке Number of devices.

Обновляем систему:

sudo apt update && sudo apt -y upgrade && sudo apt -y dist-upgrade && sudo apt -y autoremove

при установке не должно возникать ошибок типа

Error! Bad return status for module build on kernel: 6.2.0-20-generic (x86_64)
... installed amdgpu-dkms package post-installation script subprocess returned error exit status 10
...Errors were encountered while processing:
amdgpu-dkms

Если возникают проблемы, нужно подобрать другой драйвер (22.20.5 для Polaris-ов), попробовать сменить ядро Linux на совместимое. Кроме того, перед установкой драйвера можно попробовать вручную установить следующие пакеты:

sudo apt-get install wget gnupg2 rocminfo rocm-smi rocm-device-libs libncurses5 libnuma-dev libhsa-runtime64-1 libhsakmt1 amdgpu-core ocl-icd-opencl-dev opencl-headers

Настраиваем ядро Linux:

sudo nano /etc/default/grub

Для видеокарт Nvidia:

GRUB_CMDLINE_LINUX_DEFAULT="hpet=disable noresume elevator=noop mitigations=off preempt=none nowatchdog audit=0 page_alloc.shuffle=1 split_lock_detect=off pci=pcie_bus_perf raid=noautodetect plymouth.enable=0 page_alloc.shuffle=1 ipv6.disable=1 lpj=8799984"
sudo update-grub

Значение lpj узнаем командой:

sudo dmesg | grep "lpj="

Подстраиваем систему:

sudo -e /etc/sysctl.conf

вносим текст:

vm.swappiness = 1
net.ipv4.tcp_timestamps = 0
kernel.sysrq = 0
fs.suid_dumpable = 0
kernel.kptr_restrict = 1

Выключаем автоматическое обновление командой:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

текст

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

меняем на

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

либо:

sudo apt remove unattended-upgrades

Дефрагментация HDD:

sudo e4defrag /dev/sda*

Тримминг SSD:

sudo fstrim -av

Оптимизируем потребление процессора, снижая вольтаж

git clone https://github.com/kitsunyan/intel-undervolt && cd intel-undervolt/
sudo ./configure --enable-systemd --enable-openrc
make && sudo make install
sudo systemctl daemon-reload
sudo nano /etc/intel-undervolt.conf
sudo intel-undervolt apply
sudo systemctl enable intel-undervolt

Проверка действующих настроек undervolt:

sudo intel-undervolt read

Для автовыключения компьютера в cron добавляем:

59 06 * * * sudo /sbin/poweroff

Анализ времени загрузки (помогает понять, что мешает/замедляет)

systemd-analyze blame

Запускаем майнинг, сравниваем производительность до и после:

xubuntu 22.04 с отключенным графическим окружением и лишними службами:

Тот же компьютер и майнеры, ubuntu-server 23.04 с отключенными «лишними» службами (на 200 мегабайт меньше загрузка ОЗУ, меньше нагрузка на CPU):

Майнинг на алгоритме minotaurx (desktop сситема с отключенным графическим окружением и «ненужными» службами/программами), хешрейт 2.2-2.7 KH/s:

То же, на подчищенной серверной системе (прирост хешрейта на пару процентов):

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *