
Памятка по настройке ubuntu-server для майнинга
Изложенная ниже информация не является руководством к действию, является исключительно ознакомительной для заинтересованных лиц.Устанавливаем компактный вариант серверной 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.servicesudo systemctl stop snapd.socket && sudo systemctl disable snapd.socketОтключаем ненужные службы:
sudo systemctl disable apparmor && sudo systemctl mask apparmorsudo systemctl disable apport && sudo systemctl mask apportsudo systemctl stop systemd-journald.service && systemctl mask systemd-journald.service - вопрос ненужности спорныйsudo systemctl stop multipathd && sudo systemctl mask multipathdsudo 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-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 devicessudo apt install nvidia-driver-525-serversudo apt install nvidia-settingssudo 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,legacysudo usermod -a -G video $LOGNAME && sudo usermod -a -G render $LOGNAMEsudo 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-openrcmake && sudo make installsudo systemctl daemon-reloadsudo nano /etc/intel-undervolt.confsudo intel-undervolt applysudo systemctl enable intel-undervoltПроверка действующих настроек undervolt:
sudo intel-undervolt readДля автовыключения компьютера в cron добавляем (каждый день в 06.59):
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:

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



