Как увеличить скорость майнинга
Как увеличить скорость майнинга
При майнинге на видеокартах очень большое значение имеет разгон – он способен увеличить скорость майнинга на 20-30%. Поэтому это обязательная мера для всех, кто хочет добывать криптовалюту в полную силу своего оборудования. Однако к разгону нужно подходить ответственно и аккуратно – если перестараться, можно навредить видеокарте и повысить ее износ. Не менее важно и последующее безопасное хранение криптовалюты – в этом всегда готов помочь наш кошелек.
Надёжно
Выгодный курс
Быстрота работы
Заявки по системе обрабатываются мгновенно
Техподдержка
Основные задачи
Основная задача – это повысить хешрейт оборудования, то есть количество информации, обрабатываемой им в единицу времени. Экономическая выгода майнинга определяется исходя из нескольких показателей, например:
Для эффективной генерации блоков транзакций сети необходимы внушительные мощности, но при этом, чем их больше, тем сложнее и безопаснее становится сама сеть. Такая схема придумана для того, чтобы свести к минимуму вероятность какого-либо взлома системы. Когда биткоин только что придумали, суммарная вычислительная мощность его сети уже превышала хешрейт мощнейшего в мире суперкомпьютера. В период с 2011 по 2013 любая видеокарта, приобретенная для майнинга, окупалась за две-три недели. Сегодня же, даже если купить мощный ASIC для майнинга биткоинов, то он будет окупаться минимум несколько месяцев.
Помимо биткоина есть и другие криптовалюты, которые различаются между собой алгоритмами хеширования и показателями скорости добычи. Хешрейт измеряется в H/s (хеши в секунду). Чем выше скорость на определенном алгоритме, тем эффективнее майнятся монеты, а значит, быстрее будет окупаемость и выше доход.
Поэтому, выбирая оборудование, следует смотреть главным образом на показатель хешрейта – для всех топовых моделей графических карт этот показатель уже рассчитан и занесен в специальные калькуляторы, которых достаточно много в сети.
Как выбрать частоту?
Неважно, осуществляется разгон через специализированное программное обеспечение или же через BIOS – важно выбрать оптимальную частоту работы. Грамотный подбор осуществляется такими методами:
В конце требуется провести длительное тестирование – оставить ферму или ПК на 24 часа с установленными настройками и убедиться, что все работает стабильно – без перезагрузок, зависаний, резких скачков загрузки оборудования. Также получение прибыли должно быть более или менее стабильной, без существенных отклонений от прогноза.
Если всё так, значит разгон был выполнен правильно. Если имели место неполадки, придется снизить частоту еще на 50 МГц.
Что такое даунвольт и почему он важен?
Даунвольт (даунвольтинг) – это снижение напряжения, поступающего на видеокарту. Делается с целью уменьшения потребления электричества, а также сокращения нагрева оборудования в процессе активной работы. Даунвольт осуществляется путем тонкой настройки оборудования, когда постепенно спускается вольтаж и одновременно происходит наблюдение за работой, чтобы определить оптимальный уровень вольтажа для эффективного и безопасного майнинга.
Изготавливая графические чипы, разработчики всегда тестируют изделия как при максимальном, так и при минимальном потреблении тока. Часть устройств, которая не лучшим образом себя показывает, отсеивается. Остаются видеокарты с оптимальным значением, оно же и ставится дефолтным при подключении к компьютеру. Однако возможности для разгона никуда не деваются – обычно работу карты можно усовершенствовать, оптимизировав ее на 30-50% от исходных значений.
Когда пользователь делает разгон, это может привести к повышенному нагреву техники. Майнинг – процесс сложный и требовательный к ресурсам, поэтому возможно нагревание видеокарт до 80 градусов. Чтобы избежать этого, при разгоне обязательно делают еще и даунвольт. Снижение температуры даже на пару градусов положительно сказывается на работе кулеров и снижает степень шума от фермы.
Пошаговая инструкция по разгону
Рассмотрим пошаговые инструкции по разгону видеокарт от двух основных производителей.
Разгон карт от Nvidia
Правильный разгон графической карты Nvidia через Afterburner способен добавить до 25% дохода, что очень немало. Скачайте бесплатную программу Msi Afterburner – это самый популярный вариант благодаря своей простоте и функциональности. Далее:
Суть заключается в том, чтобы найти золотую середину между всеми параметрами, чтобы и хешрейт был на высоком уровне, и энергопотребление – на низком.
Разгон AMD Radeon
Основной аспект разгона AMD Radeon – это тайминги оперативной памяти видеокарты. Даже покупая карту от этого производителя, следует в первую очередь смотреть на доступную частоту оперативной памяти, поскольку именно она главным образом влияет на хешрейт.
Графические карты на 8 Гб памяти обычно имеют самую большую частоту. Если у вас устройство на 4 Гб, то его частота занижена и ее следует разогнать, параллельно откорректировав тайминги. Все это вместе дает неплохой прирост к прибыли.
Программы для прошивки
Помимо Msi Afterburner, для прошивки видеокарты пригодиться еще несколько программ. Например:
GPU-Z также позволяет сохранить БИОС видеокарты, однако пользоваться этой функцией не рекомендуется – у многих пользователей это приводило к серьезным неполадкам, устранить которые удавалось только полным сносом драйверов и последующей прошивкой при помощи заводского БИОСа.
Советы для стабильного майнинга
Несколько советов, которые помогут повысить стабильность майнинга:
Наш сервис предоставляет возможность хранить цифровые и фиатные валюты удобно и безопасно. Приглашаем убедиться в этом и самостоятельно, и порекомендовать нас знакомым – многоуровневая партнерская программа хороший повод это сделать.
Немного истории
реклама
Перечитав кучу статей вижу, что карты достаются только майнерам, так что выход найден: самому.
Стать майнером
$300 по текущим курсам. Перевожу на BTC и Ether кошельки, но в реальные деньги выводить пока не пробовал. Считаю, что моя 3080 уже стала немного дешевле.
Но вернемся к теме.
Перегрев памяти
реклама
Поиграл с настройками, направил вентилятор на бекплейт (что мало помогло).
реклама
И пришел вот к каким выводам:
Итого
Вот что у меня получилось после установки вентилятора на 73% и снижении разгона памяти до +800 мегагерц.
Частота и напряжение на GPU заданы через кривую в MSI afterburner на 1400Mhz и 0.743v, так что потребление не выходит за 70% (
220W). Температура памяти остановилась на 96 градусах, что намного лучше 100+ при вентиляторах в режиме авто.
Карты после майнинга
реклама
Старый вопрос опять станет актуальным, когда пройдет и этот бум. Покупать 3080 после майнинга или нет?
Мои старые карты десятой серии тоже «после майнинга» от завязавших майнеров 2017, но я брал с остаточной гарантией и на пломбах.
Стоит ли брать карты без пломб с «замененной термопастой«?
Однозначно, не стоит гнать память на картах после майнинга. Для игр прирост небольшой, а риски возрастают.
Майнить можно и на одной карте. Делать это можно не ради выгоды, а для получения минимальных знаний о криптовалютах.
Следите за температурами и не перегревайтесь!
Оптимизация потребления видеокарт Nvidia при майнинге
Видеокарты Nvidia GTX 1050, 1060, 1070 и 1080, а также новые модели серии RTX отличаются простотой настройки майнинга, стабильностью работы и хорошим хешрейтом.
Для достижения более высокой рентабельности майнинга криптовалют за счет уменьшения потребления электричества, а также снижения износа видеокарт от перегрева и работы кулеров на повышенных оборотах, желательно осуществлять даунвольтинг (снижение вольтажа) ядра GPU.
Это особенно важно при майнинге на алгоритме Ethash (используется у эфира, эфира классик, UBIQ, Metaverse, Expanse и многих других монет).
Как уменьшить энергопотребление видеокарт Nvidia при майнинге
При настройке видеокарт нужно понимать, что каждые сто мегагерц частоты на ядре видеокарты при майнинге на алгоритме Ethash дают прирост/снижение хешрейта на уровне около 0,5 Mh/s. Для хорошей скорости майнинга эфира достаточно иметь частоту ядра GPU на уровне 1100-1200 мегагерц.
Каждая видеокарта имеет индивидуальные возможности по разгону и даунвольтингу. Это зависит от качества кристаллов в ядре GPU и памяти. Для уменьшения потребления на ядре GPU Нвидиа программным способом можно использовать две популярных утилиты:
Наилучшие результаты по снижению энергопотребления дает программа NvidiaInspector, которая позволяет понизить вольтаж ядра ниже 800 милливольт, в то время как MSI Afterburner без дополнительных ухищрений позволяет его снизить только до 800 милливольт. Снижение вольтажа ядра до 0,8 В уменьшает потребление на примерно 20%, а температуру видеокарты на 4-5 градусов при одном и той же скорости кулеров.
Тем не менее иногда нужно применять MSI Afterburner либо одновременно обе программы (для разных видеокарт своя программа), так как некоторые видеокарты (например, P106-100 майнинг эдишн от MSI) не управляются NvidiaInspector.
Некоторые программы майнеры позволяют менять напряжение на ядре непосредственно в командной строке для их запуска. Для использования этих возможностей нужно изучать особенности каждой программы, а вышеуказанные утилиты являются универсальными и могут работать без сбоев и дополнительных настроек с любыми майнерами.
Как оптимизировать энергопотребление с помощью MSI Afterburner
Понизить энергопотребление на видеокартах Nvidia с помощью MSI Afterburner можно двумя способами:
Снижение лимита энергопотребления (Power Limit) видеокарт Nvidia в MSI Afterburner
Это самый простой способ управления энергопотреблением видеокарт Нвидиа, который позволяет достичь неплохих результатов и оптимизировать потребление.
Для снижения потребления нужно уменьшать напряжение на ядре GPU до такого значения, когда еще обеспечивается стабильная работа майнера. Для алгоритмов, не требовательных к частоте ядра (Ethash, который раньше назывался Dagger Hashimoto), для снижения потребления можно сильнее уменьшать частоту ядра (до примерно 1100 МГц), что позволит еще больше снизить энергопотребление.
Для других алгоритмов может потребоваться повышенная частота ядра. Как правило, большинство видеокарт Nvidia могут выдержать увеличение частоты ядра на примерно 150 мегагерц (+150 Mhz), а памяти – до +500 мегагерц и выше (если повезет с чипами памяти).
Скриншот программы MSI Afterburner при downvolting видеокарты P106-100 (MSI GTX1060 6 Gb mining edition) с помощью понижения до 65% лимита по энергопотреблению (достигнуто напряжение на ядре 800 мВ):
После установки параметров разгона ядра и памяти с помощью ползунков частот, для снижения потребления видеокарт при майнинге нужно понизить TDP видеокарт.
Значение 100% Power Limit дает самый большой хешрейт при высоком потреблении, выделении тепла и шума от кулеров. Выставление этого значения в промежутке от 50 до 75% позволяет установить оптимальное напряжение на ядре при незначительном снижении хешрейта. Напряжение на ядре и его частота при этом будет автоматически колебаться для сохранения выставленного значения лимита, что будет отражаться и на хешрейте.
Скриншот Phoenix Miner при майнинге эфира в соло при 65% TDP:
Чтобы обеспечить стабильное напряжение на ядре, используют способ выставления постоянного напряжения и частоты на ядре на кривой (curve) зависимости напряжения и частоты ядра GPU.
Даунвольтинг видеокарт Nvidia с помощью «курвы»
При этом способе выставляют желаемый разгон видеопамяти ползунком в основном окне MSI Afterburner, оставляют 100% Power Limit, перемещают до упора влево частоту ядра (-400Mhz) и нажимают на график в виде трех столбцов в строке частоты ядра (Core Clock):
Появится окно, позволяющее регулировать зависимость частоты и напряжения на ядре видеокарты:
В появившемся окне перетягивают начало графика вольтажа ядра и частоты от значения 800 мВ до значения частоты на пару мегагерц выше максимальных значений графика:
Затем нажимают кнопку применить (Apply) в окне MSI Afterburner:
Стабильно выставленный график зависимости частоты и напряжения на ядре видеокарты Nvidia в программе MSI Afterburner (напряжение на ядре – 800 мВ при частоте ядра 1550 МГц) выглядит следующим образом:
Аналогичным образом можно выставить стабильное значение для любой частоты и напряжения, на которой видеокарта может работать.
Скриншот MSI Afterburner для видеокарты P106-100 со значением курвы 800 мВ при частоте ядра 1544 МГц:
Скриншот MSI Afterburner для видеокарты P106-100
Настройка скорости кулеров в MSI Afterburner
В MSI Afterburner также можно выставить график зависимости скорости кулера от температуры. Для этого нажимают на кнопку шестеренки в MSI Afterburner, выставляют нужную форму графика вращения кулеров в зависимости от температуры, и не забывают активировать кнопку автоматического применения этих значений (кнопка Auto должна стать зеленой).
Скриншот MSI Afterburner при настройке скорости вращения кулеров:
Значения разгона, даунвольтинга и скорости кулеров можно записать в профили разгона, которые будут автоматически загружаться при включении рига (при активации соответствующих пунктов в окне настроек программы):
Управление потреблением видеокарт Nvidia программами Nvidia Inspector и NVIDIA Profile Inspector
Главным преимуществом NvidiaInspector является возможность установки вольтажа GPU Core менее 800 мВ, что значительно уменьшает прожорливость видеокарт.
Обе эти программы требует наличия в операционной системе установленного NET Framework 2 и выше.
Для того, чтобы управлять напряжением ядра видеокарт компании Нвидиа с помощью утилит Нвидиа Инспектор и Нвидиа Профайл инспектор, на нужных GPU желательно отключить другие утилиты управления видеокартами, в том числе MSI Afterburner.
Скриншот NVIDIA Profile Inspector в разделе управления режимом CUDA — P2 State:
Кроме того, для увеличения хешрейта в программе NVIDIA Profile Inspector можно подкорректировать значение power management mode, выставив его в Prefer Maximum Performance. Для экономии электроэнергии это значение можно поставить в optimal или adaptive.
Скриншот NVIDIA Profile Inspector в разделе управления режимом Performance:
Программа Nvidia Inspector позволяет осуществить следующие действия:
Чтобы использовать NvidiaInspector, нужно создать пустой текстовый файл в той же папке, где она установлена. В его текстовой части нужно вставить следующие строки (для рига из 5 видеокарт, считаются от 0 до 4):
«nvidiaInspector.exe» %GPU0% %GPU1% %GPU2% %GPU3% %GPU4%
Затем меняют расширение этого файла в BAT, создают ярлык этого файла и помещают его в папку автозагрузки рига. Обычно это C:\Users\имя пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.
Для настройки пакетного файла для конкретного майнинг рига в нем устанавливают следующие параметры:
Скриншот окна утилиты Nvidia Inspector, которая управляет напряжением на ядре (Voltage = 650 мВ), частотой памяти и скоростью вентиляторов (для установки нужных значений используется запуск BAT-файла с нужными параметрами):
Скриншот BAT-файла для использования NvidiaInspector для рига с 6-ю видеокартами:
При правильном снижении напряжения на ядре можно значительно снизить потребление видеокарт, сохранив приемлемый хешрейт. Это особенно актуально сейчас, при низком биржевом курсе большинства криптовалют и общем снижении рентабельности майнинга.
При нестабильной работе рига нужно просматривать логи майнера, находить проблемную видеокарту и либо повышать напряжение на ее ядре, либо снижать разгон ядра и видеопамяти. Обычно при сильном разгоне по ядру зависает весь риг, а при переразгоне по памяти – только майнер.
Хешрейт пула (фактический) ниже, чем хешрейт майнера (заявленный).
Пользователи обычно связываются с майнинг-пулом при возникновении несоответствия в данных. Иногда пулы для майнинга обвиняют в краже вычислительной мощности у майнеров. Но мы гарантируем, что такое никогда не случится с вами на EMCD Pool, поскольку наша команда преданы собственной миссии и поддерживают высокие стандарты качества и добросовестности.
Чем отличается Фактический от Заявленного хэшрейта?
Фактический хешрейт рассчитывается на основе принятых хешей, которые ваше оборудование отправило в пул. Это значение может колебаться выше или ниже вашего заявленного хешрейта. На уровень влияют такие вещи, как опоздавшие шары, недействительные шары, изменение сложности хеша и удача пула. В течение определенного периода времени, ваш воркер может предоставить больше или меньше шар, принятых пулом.
Заявленный хешрейт используется программным обеспечением для майнинга, чтобы определить отправленный вычисленный хешрейт оборудования в пул. Заявленный хешрейт в основном используется для сравнения его с вашим фактическим хешрейтом, показанным пулом. Заявленный хешрейт, как правило, неточный, и поэтому при сравнении его с фактическим хешрейтом всегда есть небольшая разница. Это значение отображается только программным обеспечением ваших воркеров.
Если хешрейт в реальном времени имеет низкое эталонное значение, рекомендуется сравнить фактический и заявленный хешрейт после того, как оборудование для майнинга проработает 24 часа.
Возможны проблемы с технической стороны:
Данные хеш-платы майнера неправильны.
Если хешрейт, отображаемый на хеш-плате, ниже, чем фактический хешрейт, повторно подключите кабели хеш-платы (или замените поврежденные кабели) и перезапустите майнер. Если проблема не исчезнет, обратитесь к производителю майнера для дополнительной технической консультации.
Нулевой хешрейт и аномальная температура.
Хеш-плата подключена, но хешрейт нулевой, количество чипов равно нулю или же показания температуры ненормальны (отличаются от других хеш-плат). Подключите кабели хеш-платы заново и перезапустите майнер. Если проблему не удалось решить, обратитесь в сервисный центр или к специалисту для устранения неполадок.
Температура превышает предел, в результате майнер переходит в режим защиты от высокой температуры или перезапускается.
К примеру, нормальная рабочая температура WhatsMiner составляет около 80-90 градусов по Цельсию. Если температура майнера превышает 95 градусов, вам необходимо улучшить вентиляцию и снизить температуру майнера, установив водяную завесу, кондиционер, вентилятор и другое охлаждающее оборудование.
Аппаратный сбой.
В майнере могут быть плохо подключены кабели, повреждены чипы и многое другое. Такое происходит при транспортировке или по другим причинам. Пожалуйста, обратитесь в службу поддержки производителя на официальном сайте.
Почему пул не отображает хешрейт во время работы майнера?
Прошло недостаточно времени, и майнер не успел отправить данные в майнинг-пул. Хешрейт должен отобразиться в течение 10-15 минут.
Неправильные настройки могут стать причиной несоответствия имени воркера в майнинговом ПО и имени воркера в майнере, ошибок в URL-адресе пула, других данных и прочего.
Работа майнера на холостом ходу обычно связана с отключением электроэнергии. Такие майнеры после перезагрузки теряют соединение. Попробуйте перезапустить майнер.
Нестабильность сети может привести к отключению майнера от пула.
Чтобы выявить проблему сети, протестируйте ping сети и скорость соединения.
Запустите тест скорости соединения и удостоверьтесь в том, что ваше интернет-соединение работает. Вы можете использовать этот веб-сайт для проверки вашего интернет-соединения: https://www.speedtest.net/.
Что делать, если хешрейт падает?
Пожалуйста, проверьте следующее:
Удостоверьтесь в том, что конфигурация майнинга правильная.
Удостоверьтесь в том, что майнинговое оборудование работает исправно.
Удостоверьтесь в том, что интернет стабилен.
Проверьте, нет ли сбоев в сети.
Проверьте свой VPN
Что делать при падении дохода?
Пожалуйста, проверьте следующее:
Удостоверьтесь в том, что майнинговое оборудование работает исправно.
Удостоверьтесь в том, что конфигурация майнинга правильная.
Проверьте, нет ли сбоев в сети.
Возможно, изменилась сложность майнинга (если сложность изменится, доход будет колебаться).
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
С необходимостью правильно оценить нагрузку на систему сталкивается каждый системный администратор. Если говорить о Linux-системах, то одним из основных терминов, с которым придется столкнуться начинающему администратору окажется Load Average (средняя загрузка). Однако, если говорить о русскоязычном сегменте сети интернет, описание данного параметра сводится к общим малозначащим фразам, в то время как за этими простыми цифрами кроется глубокий пласт информации о работе системы.
Если обратиться к популярным источникам (Википедия), то можно найти примерно следующее:
Посмотреть текущую загрузку системы можно командной
Также ее значения выводят утилиты top и htop, а также множество других инструментов. В ответ мы получим что-то вроде:
Много это или мало? Хорошо или плохо? Давайте разбираться.
Чтобы понять, что такое загрузка системы следует обратиться к логике работы центрального процессора. Вне зависимости от того, мощный у вас процессор или слабый, многоядерный или нет, он выполняет некий программный код для некоторых процессов. Если процесс один, то вопросов нет, а вот когда их несколько? Надо как-то распределять ресурсы между ними и, желательно, равномерно, чтобы один процесс, «дорвавшись» до CPU, не оставил без вычислений другие.
Здесь можно провести аналогию, когда несколько игроков хотят поиграть на одной приставке. Что обычно делают в таких случаях? Договариваются о времени, скажем каждый играет по 15 минут, затем дает поиграть другому.
Процессор поступает аналогичным образом. Каждому нуждающемуся в вычислениях процессу выделяется некий промежуток времени, который зависит от типа процессора и системы, если говорить о современных процессорах Intel, то это значение обычно составляет 10 мс и называется тиком. Каждый тик процессорное время отдается какому-то одному процессу в порядке очереди, но если процесс имеет повышенный или пониженный приоритет, то он, соответственно получит большее или меньшее количество тиков.
Количество использованных тиков, в первом приближении, и представляет загрузку системы. В Linux для оценки загрузки используется интервал в 500 тиков (5 секунд), при этом учитываются как работающие процессы (использованные тики), так и ожидающие (которым не хватило тика, либо они не смогли его использовать, ожидая завершения иной операции).
Если мы используем все тики за указанный промежуток времени и у нас не будет ожидающих сводного тика процессов, то мы получим загрузку процессора на 100% или load average (LA) равное 1.
Давайте рассмотрим следующую схему:
Справа показана ситуация, когда каждый тик был занят своим процессом, но некоторые процессы так и не получили своего тика или не смогли получить, например, ждали окончания операции ввода-вывода. В таком случае загрузка процессора составит все те же 100%, но load average вырастет до 1,33, указывая на наличие очереди.
А теперь зайдем в магазин вечером, все кассы заняты, и чтобы оплатить покупки придется ждать. Теперь если за 10 минут касса обслужила 10 человек и еще 10 стоят в очереди, то средняя загрузка будет равна 2, хотя касса загружена всего на 100%.
Вернемся к процессору и еще одному моменту, процессам, ожидающим окончания операций ввода-вывода (диск, сеть и т.п.). Во многих источниках указывается, что такие процессы искажают результат load average и мы можем получить высокие значения LA при отсутствии загрузки процессора. Да, это так. Посмотрим на еще одну схему ниже:
Как видим, из 9 тиков было использовано только 6, т.е. процессор загружен всего на 67%, но так как три процесса ждут данные от диска, то load average по-прежнему равен 1.
Если продолжать аналогию с супермаркетом, то похожая ситуация возникает, когда вы уже подошли к кассе и уже собрались выгружать продукты на ленту, но ваша супруга говорит вам, что она забыла купить хлеб, и вы тут стойте, а она сбегает. Собственно, все что вам остается до того, как она принесет хлеб, это стоять рядом с кассой и ждать, пропуская тех, кто находится в очереди позади вас.
Т.е. если у нас имеется 1 процессор и 500 тиков, но за это время процессорные ресурсы требуются тысяче процессов, то нагрузка у нас явно вдвое превышает имеющиеся ресурсы. И то, что часть процессов ждут жесткий диск и процессор работает вхолостую, не говорит о том, что система находится в простое, наоборот, она не может обработать нагрузку, правда по другой, не зависящей от процессора причине.
Пользователю ведь все равно по какой причине тормозит сайт или приложение, тем более что недостаток дисковых ресурсов обычно выражается подвисании приложения, в то время как при недостатке процессорных оно просто начинает тормозить.
Подведем промежуточный итог. Load average показывает отношение имеющихся запросов на вычислительные ресурсы к количеству этих самых ресурсов (тиков). Для одного процессора (одного процессорного ядра) использование всех имеющихся ресурсов обозначает load average = 1. Причем это будет справедливо и для Core i7 и для Pentium I, хотя производительность у этих двух процессоров разная.
Теперь перейдем к многопроцессорности и многоядерности. При появлении второго процессора или второго ядра у нас появляются дополнительные вычислительные ресурсы, т.е. же самые 500 тиков. Но за эти 500 тиков система уже может обработать уже 1000 запросов, что покажет нам load average = 2.
Значит ли это, что производительность выросла в два раза? Нет! Производительность зависит от того, сколько вычислений способен произвести процессор в течении одного тика. Понятно, что более мощный процессор выполнит за этот промежуток времени больше вычислений, но оба из них сделают одинаковое число тиков (для каждого процессорного ядра). В многопроцессорных (многоядерных) системах часть процессорного времени вместо вычислений занимают задачи межпроцессорного взаимодействия, переключения контекста и т.д. Поэтому появление второго ядра никогда не даст 100% прироста производительности, но всегда позволяет обработать вдвое большее количество запросов.
Это хорошо видно на примере технологии Hyper-threading, которая позволяет сделать из одного физического ядра процессора два виртуальных. Физическая производительность ядра процессора, т.е. количество производимых им вычислений в единицу времени не меняется, но появляется, хоть и виртуальное, но второе ядро, а это еще 500 тиков. Как показывают тесты, прирост производительности от Hyper-threading составляет 15-30%, что еще раз подтверждает старую поговорку, что лучше плохо ехать, чем хорошо стоять. Второе ядро, хоть и виртуальное, позволяет обрабатывать вычислительные запросы тех процессов, которые в одноядерном варианте стояли бы в очереди.
Непонимание этого момента приводит к тому, что load average ошибочно связывают не с доступностью и достаточностью вычислительных ресурсов, а с производительностью процессора, что приводит к неверным выводам.
Например, переводчик довольно неплохой статьи на Хабре делает ошибочный вывод в отношении Hyper-threading:
Хабраюзер esvaf в комментариях интересуется, как интерпретировать значения load average в случае использования процессора с технологией HyperThreading. Однозначного ответа на данный момент я не нашел. В данной статье утверждается, что процессор, который имеет два виртуальных ядра при одном физическом, будет на 10-30% более производительным, чем простой одноядерный. Если принимать такое допущение за истину, считаю, при интерпретации load average стоит брать в расчет только количество физических ядер.
А Википедия вообще написала полную ерунду (что для технических статей там совсем не редкость):
Убедиться, что это не так довольно легко. Если запустить бесконечный цикл командой
то мы обеспечим полную загрузку одного процессорного ядра и load average = 1 (в данный момент смотрим только на первые, минутные показания данного параметра).
Мы не знаем, сколько именно операций в единицу времени выполняет наш процессор, но нам и не нужно знать это, гораздо важнее понимать, что на текущий момент все вычислительные ресурсы системы задействованы, но недостатка в них нет.
Запустим пятый процесс:
Что изменилось? Загрузка процессора осталась на уровне 100%, это и понятно, выше головы не прыгнешь, но load average вырос до 5, что означает нехватку вычислительных ресурсов примерно на 20%. Таким образом понимание сути значения средней загрузки позволяет администратору однозначно сделать выводы о текущей ситуации, чего не скажешь, глядя просто на индикатор загрузки CPU.
Теперь касательно HyperThreading, виртуализации и т.п. случаев, когда процессор, с которым работает система далеко не соответствует физическому процессору, искусственно создадим данную ситуацию. Для этого запустим на хосте параллельно с виртуальной машиной какой-нибудь ресурсоемкий процесс, например, кодирование видео. Виртуальная машина будет рассчитывать на 4 полных процессорных ядра, а по факту получит в лучшем случае половину их производительности. Проверим?
Теперь уберем стороннюю нагрузку. Гипервизор тут же передаст максимум ресурсов виртуальной машине.
Как видим, вычислительных ресурсов снова стало достаточно и load average опустился до значения 4.
Какие выводы мы можем сделать из этого примера? Что значение load average корректно отражает загрузку системы даже в тех условиях, когда иные показатели не дают корректного представления о происходящих процессах. Так нагрузка на CPU в 157% явно противоречит здравому смыслу, а вот LA = 4,55 вполне реально отражает ситуацию. Поэтому никаких корректив на виртуальные ядра, виртуализацию и т.п. вносить не надо. Load average является относительной величиной и от реальной производительности CPU не зависит в тоже время показывая наличие или дефицит вычислительных ресурсов.
Например, скользящие средние широко применяются в финансовом анализе, для выделения общих тенденций движения курсов валют и акций, позволяя отбросить так называемый «биржевой шум» и понять общие тренды рынка.
То, что подходит финансисту, наверняка подойдет и системному администратору. В чем основное преимущество скользящих средних? В том, что они позволяют выделить основные тенденции, отбросив кратковременные колебания. Это достоинство, а не недостаток, как пытается убедить нас Википедия:
Именно усредненные по особому алгоритму значения позволяют нам окинуть ситуацию взглядом вширь и вглубь и разглядеть за деревьями лес. В этом отношении временные значения load average представляют собой не время, за которое посчитали среднее значение, а период времени относительно которого проводится усреднение.
Благодаря автору Хабра ZloyHobbit, который не поленился изучить исходный код Linux, можно точно смоделировать различные значения load average при заданной модели нагрузки. Мы смоделировали ситуацию, когда первые 30 минут единственное ядро CPU было нагружено на 100%, без ждущих в очереди процессов, в последующие полчаса нагрузка была полностью снята.
Как видим, разные периоды усреднения дают совершенно различные результаты, так LA 1 (1 min), начинает показывать реальные значения где-то через 4 минуты, LA 5 для отражения текущей нагрузки потребовалось уже 20 минут, а LA 15 за полчаса полной загрузки вышла только на 0,8.
О чем это говорит и как интерпретировать данные значения? Можно сказать, что LA 1 представляет собой недавнее прошлое (несколько минут назад), LA 5 прошлое (полчаса-час) и LA 15 отдаленное прошлое (несколько часов).
Теперь, располагая этим багажом знаний, мы можем правильно интерпретировать простые, на первый взгляд, три числа load average.
Для примера возьмем такое значение:
Это говорит о том, что имеет место достаточно кратковременный (около десятка минут) всплеск нагрузки, при этом вычислительных ресурсов пока достаточно.
Говорит о том, что не так давно система испытывала значительные нагрузки в течении довольно продолжительного времени (полчаса-час).
А вот такая картина:
Для четырехядерного процессора означает, что он работает на пределе своих возможностей в течении длительного времени (несколько часов).
Как видим, load average, несмотря всего на три цифры, способна представить системному администратору огромный пласт информации о фактической загрузке системы на протяжении последних нескольких часов.
Теперь самое время дать ответы на вопросы, поставленные нами в начале статьи: «Много это или мало? Хорошо или плохо? » Для одного ядра мы считаем приемлемыми следующие значения:
На многоядерной (многопроцессорной) системе значения load average следует откорректировать пропорционально числу ядер. Узнать их количество можно командой
Так, например, с учетом вышесказанного, для четырехядерной системы LA 15 не должен превышать 3.00, для двухядерной 1.5, а для одноядерной 0.75.
Теперь, понимая, что такое load average и каким образом формируются его значения вы всегда сможете быстро оценить производительность собственной системы и вовремя принять меры если в работе вашего сервера возникнут узкие места.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:























