Wine не хватает памяти

Обновлено: 06.07.2024

На любой операционной системе часто не хватает оперативной памяти. Рассмотрим, как и сэкономить на увеличении аппаратных ресурсов машины с Linux, и продолжить более-менее комфортно пользоваться компьютером с Linux в условиях нехватки памяти.

Типична такая ситуация: есть своп (swap, раздел подкачки), который начинает использоваться при нехватке оперативной памяти, и размещен он на HDD, то есть жестком диске с низкой скоростью чтения информации. В таких ситуациях операционная система начинает тормозить, подвисает курсор мыши, сложно переключиться в соседнюю tty и т.д. Почему? Потому что планировщик ядра Linux не может выполнить запрос на какое-то действие в запущенной программе, пока не получит доступ к ее оперативной памяти, выполнить следующее действие тоже не может, образовывается очередь из запросов на чтение с диска, и система «подвисает» именно потому, что обработка очереди происходит гораздо медленнее, чем этого хочет пользователь.

Если в такой момент запустить htop или uptime , то показатель Load Average (LA) будет очень высоким, несмотря на низкую загруженность ядер процессора. Сочетание высокого Load Average и низкой загрузки процессора говорят о забитой очереди процессора.

Часто в интернете советуют изменить параметр ядра Linux vm.swappiness . Узнать его текущее значение на вашей системе можно так:

Ответ будет 60 почти наверняка. Это значит, что ядро Linux начинает свопить редко используемые страницы оперативной памяти, когда использование свободной оперативной памяти достигает 100%-60%=40%. Часто встречаются рекомендации поставить, например, vm.swappiness=10, чтобы своп не начинал использоваться, пока загрузка ОЗу не достигнет 90%. На самом деле не нужно трогать vm.swappiness, вы не умнее разработчиков ядра Linux, которые не просто так поставили 60 по умолчанию. Почему?

Представьте, что у вас всего 4 ГБ оперативной памяти, из них прямо сейчас занято 3 ГБ, vm.swappiness=10, своп на жестком диске (HDD) занят на 0%, и вы открываете тяжелый сайт в браузере, для чего требуется больше, чем имеющийся свободный 1 ГБ, например, 2 ГБ. Операционная система начинает в экстренном порядке отправлять в своп как минимум 0.5 ГБ (а по факту больше), чтобы можно было выделить браузеру необходимое количество оперативной памяти. Эта процедура становится самой приоритетной задачей, и придется пожертвовать даже движениями курсора мыши, чтобы ее выполнить как можно быстрее. Вы ждете. Проходит 5 минут, и система развисает, потому что окончила процедуру 100% загрузки очереди доступа к медленному жесткому диску, на котором размещена оперативная память (своп). При дефолтном vm.swappiness=60 редко используемые страницы памяти сбрасываются в своп заблаговременно, и резкого зависания на 5-10 минут не происходит.
UPD. В комментарии подсказывают, что это не точное описание работы vm.swappiness.

zram и приоритеты свопов

Рекомендую включить zram — прозрачное сжатие содержимого оперативной памяти. В Ubuntu это автоматизировано, достаточно установить пакет:

sudo apt install zram-config

Здесь и далее для дистрибутивов Rosa, Fedora все то же самое, но вместо zram-config —

Сервис systemd zram-config на Ubuntu будет автоматически добавлен в автозагрузку при установке пакета и запущен при перезагрузке системы. Для запуска вручную:

sudo systemctl start zram-config

sudo systemctl stop zram-config

Удаления из автозапуска:

sudo systemctl disable zram-config

Добавление в автозапуск:

sudo systemctl enable zram-config

При запуске zram-config берет число, равное 50% всего объема оперативной памяти, далее делает по одному виртуальному устройству /dev/zramN, где N начинается с 0, для каждого ядра процессора, а объем каждого /dev/zramN равен 50% всей оперативной памяти, деленному на количество ядер процессора. Так делалается для распараллеливания сжатия содержимого оперативной памяти по ядрам процессора; насколько я знаю, на современных ядрах Linux достаточно одного устройства /dev/zramN, а распараллелится оно само, но меня полностью устраивает искоробочная работа zram-config, и предпочитаю не лезть в нее руками.

Команда swapon -s выведет список всех задействованных свопов с указанием их приоритета. Первым используется тот своп, у которого приоритет выше. Если у вас уже есть дисковый своп и включен zram, то в случае с описанным выше пакетом-автокофигуратором приоритеты из коробки будут правильными. Например, у дискового свопа будет -1, а все /dev/zramN — 5. Таким образом, сначала используется zram, и только потом — диск.

Кстати, zram часто применяется на смартфонах, какую-либо на глаз заметную нагрузку на процессор при дефолтном методе сжатия lz4 он не создает.

Также приоритет свопа можно указать в /etc/fstab . Покажу на примере, как это сделано на моем рабочем компьютере с 6 ГБ ОЗУ.


Опцией монтирования pri=X заданы приоритеты свопов. Если еще включить zram, то картинка будет такой:

На офисных ПК с 4 ГБ ОЗУ (Xubuntu 16.04, 17.10) всегда ставлю пакет zram-config . Chromium, по наблюдениям, на глаз, очень хорошо сжимается в оперативной памяти, в результате чего zram позволяет сделать работу намного более комфортной без модернизации железа.

Быстро вырубить программу, перегружающую ОЗУ. Запас ОЗУ для SSH

Бывает такое, что даже при vm.swappiness=60 какому-то черту, как правило, браузеру, требуется очень много оперативной памяти, и система подвисает. Решается очень просто: сочетание клавиш Alt+SysRq(PrintScreen)+F заставляет oom_killer принудительно включиться и вырубить процесс, который на момент вызова занимает больше всего памяти. Строго 1 процесс на 1 вызов, и строго обязательно что-то будет убито. Если много раз подряд нажмете, то, скорее всего, перезапустится графическая сессия. Событие убиения процесса отражается в dmesg красным цветом.

Однако эта штука, называющаяся Magic SysRq, из коробки отключена в большинстве дистрибутивов, потому что непривилегированный пользователь может убить абсолютно любой процесс. За это отчечает параметр ядра kernel.sysrq , узнать его текущее значение можно так:

Для работы Alt+SysRq+F нужно kernel.sysrq=1. Для этого отредатируем параметры ядра, расположенные в файлах /etc/sysctl.conf (обычно симлинк на /etc/sysctl.d/99-sysctl.conf) и /etc/sysctl.d/*.conf. Лучше всего создать отдельный файл:

sudo nano /etc/sysctl.d/99-dumalogiya.conf


Нажмем Ctrl+O, Enter для сохранения.

В случае с браузером Chromium Alt+SysRq(PrintScreen)+F будет вырубать по одной вкладке, не закрывая сам браузер, что очень удобно.


Сочетания клавиш Magic SysRq перехватываются напрямую ядром Linux, поэтому работают даже когда из-за очереди процессора подвисает X-сервер.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Оглавление

Для чего Wine

Эта инструкция расскажет об использовании Wine. Данные советы по использованию применимы как к Kali Linux, так и к любому другому дистрибутиву Linux.

Итак, Wine — это набор программ и библиотек, которые позволяют запускать Windows приложения в Linux без использования виртуализации. Конечно, Windows программы можно запустить в Linux с использованием VirtualBox, но такой вариант потребует запуска полноценной операционной системы с соответствующими затратами ресурсов, особенно оперативной памяти — для работы Windows необходимо несколько гигабайт памяти, а также место на диске для установки — несколько десятков гигабайт. При этом важным требованием для работы VirtualBox и аналогичных виртуальных компьютеров является то, чтобы ваш центральный процессор поддерживал виртуализацию.

Wine позволяет обойти все эти ограничения — для запуска программ Windows не нужно устанавливать эту операционную систему и приложениям для работы требуется всего несколько десятков мегабайт оперативной памяти.

Но у Wine есть и недостатки — не все приложения работают хорошо или вообще работают. Тем не менее огромное количество Windows программ прекрасно запускаются и работают в Linux благодаря Wine.

Помните, что многие бесплатные программы являются кроссплатформенными и вы можете их установить из стандартных репозиториев вашего дистрибутива. Для таких программ не нужен Wine. Примеры популярных кроссплатформенных программ: LibreOffice, Google Chrome, Firefox, Double Commander, VirtualBox, Etcher, VLC, DeadBeef, GIMP, OBS Studio, Viber, Wireshark, Apache, PHP, MySQL, Calibre, Netbeans, Burp Suite, Visual Studio Code, KeePass, KeePassXC, OpenShot Dropbox, Python, Ruby, Perl, PowerShell, SSH, Vuse BitTorrent Client, FileZilla, Tor Browser, JDownloader и очень многие другие. Всем этим программам не нужен Wine, поскольку они имеют «родные» установочные пакеты для Linux.

Прежде чем пытаться установить и запустить программу через Wine, поищите её с помощью менеджера пакетов, например:

Возможности и ограничения Wine

Программа способна запускать 64-битные, 32-битные, 16-битные программы и библиотеки Windows 9x/NT/2000/XP/Vista/7/8/10 и Windows 3.x

Поддержка Win32 API:

  • Поддержка игр и приложений на основе DirectX (поддержка Direct3D до DirectX 12)
  • Поддержка игр и приложений на основе OpenGL и Vulkan
  • Поддержка DirectShow с использованием GStreamer для кодеков
  • Direct2D, поддержка DirectWrite
  • Поддерживаются MMDevice API, XAudio, WinMM, DirectSound audio API.
  • Печать через драйвер PostScript в главную систему печати (обычно CUPS)
  • Драйвер расширенного метафайла (EMF) и метафайла Windows (WMF)
  • Desktop-in-a-box или смешанные окна

Позволяет программе Windows взаимодействовать с:

  • Графикой на основе X11, которая позволяет удалённо отображать на любом X-терминале
  • Графикой на базе macOS и Android
  • Шрифты X11, TrueType (.ttf/.ttc) и Windows Bitmap (.fon)
  • Звуковыми устройствами через ALSA, OSS, PulseAudio, Core Audio и т. д.
  • Многоязычной клавиатурой и поддержка метода ввода CJK через XIM
  • Модемами, последовательными устройствами
  • Сетями (TCP/IP и IPX)
  • Сканерами ASPI
  • Планшетами Windows через XInput (например, Wacom)
  • Устройствами видеозахвата через v4l2
  • Устройствами HID через IOHid (MacOS), evdev (Linux), hidraw (Linux), SDL2

Как вы можете увидеть, список впечатляющий и позволяет, к примеру, запускать игры для которых требуется DirectX и при этом выводить звук. Приложения из Wine могут работать с сетью и даже имеют доступ к некоторым аппаратным возможностям (принтеры, сканеры).

Если для работы приложения необходимы дополнительные библиотеки, например, Visual C++ Redistributable for Visual Studio, то их возможно установить в Wine и запускать приложение в среде с установленной этой библиотекой.

При этом нужно помнить о таком ограничении, как невозможность работать с устройствами напрямую, например, если для устройства требуется драйвер, то бессмысленно устанавливать Windows драйвер в Wine — вам нужно найти версию драйвер для Linux и установить её.

64-битный или 32-битный Wine?

В этой инструкции для установки Wine мы включим поддержку репозиториев для 32-битных платформ (i386) для того, чтобы скачать необходимые библиотеки. Может возникнуть вопрос, существует ли 64-битный Wine и если да, зачем нам подключать репозитории для i386 и скачивать 32-битную версию?

Да. 64-битный Wine доступен в Linux начиная с версии 1.2. Бинарные пакеты WineHQ доступны для 64-битных версий, и большинство основных дистрибутивов упаковывают их для пользователей. Обычно установка должна быть такой же простой, как установка пакета Wine для вашего дистрибутива через менеджер пакетов.

Но имеется несколько очень важных замечаний:

  • 32-битный Wine работает как в 32-битных, так и в 64-битных версиях Linux/Unix. На нём будут работать 16-битные и 32-битные приложения Windows.
  • 64-битный Wine работает только на 64-битных установках и пока что был тщательно протестирован только в Linux. Для запуска 32-битных приложений Windows требуется установка 32-битных библиотек. И 32-битные, и 64-битные приложения Windows (должны) работать с ним; однако есть ещё много ошибок.
  • Текущий Wine включает поддержку 64-битного Wine в Mac OS X; однако это не было тщательно проверено, и некоторые приложения могут никогда не работать из-за несовместимости ABI между Win64 и OS X.

Главное, что из этого следует — даже при установке 64-битного Wine необходимо активировать 32-битные репозитории, поскольку многие приложения Windows по-прежнему являются 32-битными и в любом случае необходимо установить 32-битные библиотеки, иначе многие программы просто не будут работать.

При установке можно явно выбрать пакет wine64, но даже если вы установите wine, то им будет 64-битная версия, если у вас 64-битный Linux.

Как установить Wine

Установка Wine в Debian, Kali Linux, Linux Mint, Ubuntu и их производные

Выполните следующие команды:

После установки запустите Wine — возможно, он предложит скачать необходимые шрифты и другие компоненты:

Чтобы проверить версию Wine выполните команду:

Установка Wine в Arch Linux

Откройте текстовый файл /etc/pacman.conf:

В нём найдите и раскомментируйте строки (убедитесь, что раскомментировали обе строки, иначе изменения не вступят в силу):

Обновите информацию о пакетах:

Как запустить программу в Wine

Запуск двойным кликом по исполнимому файлу

Для запуска Windows приложений в Linux обычно достаточно дважды кликнуть по ним. Но может быть так, что .exe файл будет открываться менеджером архивов или другим приложением (обычно менеджером архивов).


В этом случае кликните по файлу правой кнопкой мыши, выберите пункт «Открыть с помощью» и выберите Wine.

Если у вас в контекстном меню не появился Wine, то сделайте так:

  • нажмите правой кнопкой на приложение, которое хотите запустить
  • выберите «Открыть с помощью», а затем «Другое»


  • поставьте галочку «Пользовательская команда» и там, где строка для ввода, введите wine. Поставьте галочку «Сохранить ассоциацию» и «Установить как приложение по умолчанию», нажмите ОК. Теперь все .exe файлы будут открываться двойным кликом.


В Ubuntu ( GNOME 3) в контекстном меню отсутствует Wine и невозможно добавить пользовательскую команду. Для исправления выполните следующее:

Если столкнётесь с ошибкой, что файл wine.desktop отсутствует, то найдите его с помощью следующей команды и отредактируйте приведённую выше команду:

Кликните правой кнопкой мыши по .exe файлу и выберите пункт, который называется «Открыть в другом приложении».


Затем выберите «Посмотреть все приложения».


Нажмите на «Wine — загрузчик Windows программ» и затем нажмите кнопку «Выбрать».



Запуск в командной строке

Поскольку программы Windows часто ищут файлы относительного того места, откуда они были запущены, при использовании командной строки вы должны запускать их очень специфическим способом: «сменить каталог» на папку, в которой расположена программа, и запустить файл .exe, используя только его имя файла. Например:

Использование wine start

В некоторых случаях может потребоваться указать полный путь к исполняемому файлу. Например, если вам нужно установить программу с нескольких компакт-дисков, ввод каталога в терминале не позволит вам извлечь компакт-диск.

Вам нужно использовать wine start, если вы укажете полный путь к .exe, потому что это позволяет Wine установить рабочий каталог для программы, если он ей нужен.

Вы можете указать Wine путь в стиле DOS или Windows в одинарных кавычках, например:

Вы также можете использовать двойные кавычки, но вам нужны две обратные косые черты вместо одной:

Если вы предпочитаете использовать путь в стиле Unix, используйте параметр /unix для запуска, например:

Передача аргументов командной строки Windows

Если вы используете программу с аргументами в Windows, например:

То вы можете сделать то же самое в Wine, запустив:

То есть командная строка идентична, за исключением wine перед ней. Обратите внимание, однако, что вам может потребоваться экранировать некоторые специальные символы обратной косой чертой из-за того, как они обрабатываются в оболочке Linux. Например:

Запуск файлов .msi

Файлы MSI нельзя запускать напрямую; вам нужно использовать либо программу Wine msiexec, либо запуск Wine с терминала:

Графическая среда Wine в стиле Explorer

Если вы предпочитаете использовать графический интерфейс для управления файлами, возможно, вам стоит рассмотреть возможность использования winefile. Это приложение Winelib поставляется с Wine и может быть найдено с другими программами Wine. Это полезный способ просмотреть конфигурацию вашего диска и найти файлы, а также вы можете запускать программы прямо из Winefile. Обратите внимание, что многие функции ещё не реализованы.

Чтобы его открыть выполните:

Как в Wine запустить файл .bat

Вы можете запустить файл .bat разными способами:

1. Выполните команду

Найдите файл .bat и запустите его двойным кликом.

2. Выполните команду

И найдите в окне Проводника нужный вам файл.

чтобы сразу попасть в нужную папку.

Когда найдёте файл .bat, то дважды кликните на него.

3. Вы можете запустить файл .bat в командной строке, используя конструкцию вида:

Если вы используете путь до файла в файловой системе Linux, то обязательно нужно указать опцию /unix.

Как установить программу в Wine и создать ярлык

Если программа является портативной, то вы можете поместить её в любое место на диске - необязательно в папку Wine. Кстати, по умолчанию диском C: в Wine является папка

Как уже сказано, вам необязательно помещать файлы с программой именно туда. Вы можете запускать портативные программы показанными выше способами.

Если программа распространяется в виде установщика (инсталлятора), то просто запустите этот установщик с помощью Wine. В большинстве случаев всё пройдёт как в Windows, будет выполнена обычная установка и на рабочем столе вашей Linux и в меню появится ярлык для запуска программы.


Для портативной программой вы также можете сделать ярлык. Для этого кликните правой кнопкой мыши по рабочему столу и выберите пункт «Создать кнопку запуска здесь» (в Cinnamon), «Создать значок запуска» (в XFCE) или аналогичный пункт.

Обычно есть возможность установить иконку, в том числе присутствуют иконки программ, когда-либо запускаемых в Wine.

Даже если «мастер значка запуска» позволяет указать рабочий каталог, то лучше не полагаться на него. В качестве команды запуска укажите команду вида:

То есть команда для выполнения включает в себя две подкоманды — переход в нужный каталог и запуска исполнимого файла.

К примеру, исполнимый файл находится в папке /home/mial/.wine/drive_c/Program Files (x86)/foobar2000/ и называется foobar2000.exe, тогда команда запуска следующая:


Обратите внимание, что:

  • указан абсолютный, а не относительный путь до папки
  • если в пути содержатся пробелы или другие специальные для оболочки символы (например, скобки), то они должны быть обязательно экранированы или путь должен быть помещён в кавычки.

Другой пример, когда файл находится не на диске Wine: нужно создать ярлык для запуска файла /mnt/disk_d/Share/Conses/ConsFed/cons.exe, тогда команда запуска следующая:


Если для работы программы необходима специальная версия Wine или дополнительные компоненты, то можно найти скрипты, которые упрощают их установку, о них будет позже в разделах, посвящённых PlayOnLinux и winetricks.

Встроенные в Wine программы

В Wine имеется несколько встроенных «стандартных программ Windows».

27 фев 2020, 07:24

Изображение

Проблемы с Вайн.

29 фев 2020, 16:10

Ну. отвечаю настолько, насколько смог понять вопросы: вайн был скачен из менеджера программ, версия 1.6.2. Под аббревиатурой POL, я понял ПлейОнЛинукс, про него ничего не могу сказать, скачивался в том же самом менеджере, могу только скрин на страницу сбросить, может, чего-то скажет вам это.

Да, буду очень признателен, если пустая болтология о том, какой я тупой, и какая программа и на что похожа, всё-таки превратится в инструкцию па настройке ПО.

Проблемы с Вайн.

29 фев 2020, 16:12

Вопрос такой, а ПлейОнЛинукс, сам не скачивает разные версии Вайна?

Проблемы с Вайн.

29 фев 2020, 16:36

Проблемы с Вайн.

29 фев 2020, 16:39

а ПлейОнЛинукс, сам не скачивает разные версии Вайна?

Проблемы с Вайн.

29 фев 2020, 18:56

Vоlk_odinochka , советую обновить POL до актуальной версии

Изображение

Проблемы с Вайн.

29 фев 2020, 19:12

Последний раз редактировалось пользователем 1 lexiy; всего редактировалось раз: 29

Проблемы с Вайн.

29 фев 2020, 19:15

Вот это ты напрасно. Тебя ведь не об этом просили , а о следующем. Да, буду очень признателен, если пустая болтология о том, какой я тупой, и какая программа и на что похожа, всё-таки превратится в инструкцию па настройке ПО. Человек просит лично ТЕБЯ написать для НЕГО подробную инструкцию по настройке ПО , вплоть до цвета нажимаемых кнопок. Потому что официальных , а тем более чужих инструкций ОН читать не собирается

Проблемы с Вайн.

29 фев 2020, 19:38

Если возникает ошибка об отсутствии libfaudio0, тогда установите и повторите

Проблемы с Вайн.

01 мар 2020, 01:18

2. Установить актуальную версию wine в системе, потому что в магазине сильно устаревшая. (для Linux Mint 18.3,

Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Следующие пакеты имеют неудовлетворённые зависимости:
winehq-stable : Зависит: wine-stable (= 5.0.0

Вот такая загагулина. Я, по моему писал уже, что всё, что у меня встало, это то, что в магазине приложений находится. Ну, для того, чтобы не возникло сомнений, решил скопировать текст.

Егор

Егор Морозов | 8 Декабря, 2018 - 15:52

Безымянный.jpg

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

Первый миф. Чем больше видеопамяти — тем быстрее видеокарта

Казалось бы, это логично — в более мощные видеокарты ставится больше памяти: так, GTX 1070 с 8 ГБ памяти быстрее, чем GTX 1060 с 6 ГБ, а GTX 1080 Ti с 11 ГБ быстрее GTX 1080 с 8 ГБ. Однако следует понимать, что видеопамять, конечно, важна, но зачастую различное ПО не использует всю имеющуюся у видеокарты память: так, в большинстве случаев GTX 1060 с 3 ГБ медленнее версии с 6 ГБ всего на 5-10%, и разница в основном идет из-за различного числа CUDA-ядер.

Но есть производители видеокарт, которые решили воспользоваться этим мифом в свою пользу: так, например, на рынке можно найти GT 740 с 4 ГБ GDDR5 памяти. Казалось бы — да у GTX 780 Ti, топовой видеокарты того поколения, всего 3 ГБ памяти — то есть GT 740, получается, лучше? Разумеется нет — на тех настройках графики, где используется столько памяти, эта видеокарта выдает слайд-шоу. Ну а если снизить уровень графики для повышения «играбельности», то окажется, что использовано от силы 1-2 ГБ памяти. Причем такие видеокарты встречаются и в текущих линейках — так, у AMD есть RX 550 с теми же 4 ГБ GDDR5 — с учетом того, что видеокарта выступает приблизительно на уровне GT 1030, очевидно, что использовать столько памяти она сможет в очень немногих задачах:


Так что не стоит судить о производительности видеокарты, опираясь только на объем видеопамяти.

Второй миф. Если видеокарте не хватит видеопамяти в игре, то обязательно будут фризы, вылеты и тому подобное

Опять же, это кажется логичным: если видеокарте памяти не хватило, взять ее больше неоткуда — значит, программы корректно работать не смогут. Однако на деле это, разумеется, не так — любая видеокарта имеет доступ к оперативной памяти, которой обычно куда больше, чем видеопамяти. Конечно, ОЗУ в разы медленнее, а время доступа к ней больше — это может вызвать проблемы с плавностью картинки, но только лишь в том случае, если собственной памяти видеокарте не хватает сильно: например, у нее 2-3 ГБ памяти, а игра требует 4-5 ГБ. Но если не хватает нескольких сотен мегабайт, то обычно это проблем не вызывает: GPU умеют динамически использовать доступные им ресурсы, и в ОЗУ они стараются хранить ту информацию, которая нужна редко или не требует мгновенного отклика.

Третий миф. От разгона видеокарты сгорают

При этом различные производители продают разогнанные с завода версии видеокарт. Разумеется, при разгоне видеокарта может повредиться — но только в том случае, если вы измените «физические» параметры, такие как напряжение. Изменение программных параметров, таких как частоты, никак на «железо» не влияет, так что максимум, что вы получите, это вылет видеодрайвера или BSOD от выставления слишком высокой частоты.


Четвертый миф. SLI/Crossfire увеличивают производительность и объем видеопамяти во столько раз, сколько видеокарт подключено

Насчет производительности это, скорее, не миф, а теоретический результат. Увы — на практике, хотя тому же SLI 20 лет, а Nvidia его использует больше 10 лет, в большинстве игр прирост или околонулевой, или вообще отрицательный. Лишь в единичных проектах можно получить прирост хотя бы 20-30% в сравнении с одной видеокартой, что, конечно, смешно, с учетом двукратного увеличения стоимости и серьезных требований к блоку питания. Что касается вычислительных задач, то тут все сложнее: так, профессиональный софт вполне может использовать несколько GPU эффективно, но это уже не домашнее применение.

Что касается видеопамяти, то тут все просто: при использовании DirectX 11 или ниже в видеопамять каждого используемого GPU записывается одинаковая информация, то есть у связки видеокарт будет по сути тот же объем памяти, что и у одиночной карты. А вот в API DirectX 12 есть возможность более эффективно использовать Split Frame Rendering, когда каждая видеокарта готовит свою часть кадра. В таком случае объемы видеопамяти суммируются — пусть и с оговорками.

Пятый миф. Профессиональные видеокарты лучше игровых

Миф идет от того, что профессиональные видеокарты (такие как Nvidia Quadro или AMD FirePro) стоят обычно сильно дороже пользовательских «игровых» видеокарт — а раз дороже, значит лучше. На практике вопрос только в том — в какой области лучше? С физической точки зрения большая часть профессиональных видеокарт имеют тот же GPU и тот же объем памяти, что и обычные игровые видеокарты, а разница идет только из-за других драйверов, которые больше заточены под профессиональное применение:


С учетом того, что эти драйвера под игры никто специально не адаптирует, то профессиональные видеокарты в играх зачастую будут несколько хуже аналогичных по производительности игровых GPU. С другой стороны, если мы будем сравнивать эти же видеокарты в различных CAD-ах или 3ds Max — перевес будет на стороне профессиональной графики, причем зачастую очень существенный. Так что ответ на миф таков: сравнивать эти видеокарты в лоб не имеет смысла, они «играют» и в разных ценовых сегментах, и в разных сценариях использования.

Шестой миф. Если видеокарта не раскрывается процессором — это плохо

Пожалуй, самый популярный миф, который гласит о том, что если видеокарта не занята на 100% — это плохо. С одной стороны, это кажется логичным: нагрузка ниже 100% означает, что видеокарта частично простаивает и вы недополучаете часть производительности. С другой стороны, многие забывают, что нагрузить GPU на 100% можно практически при любом процессоре. Как так? Очень просто: каждый процессор в каждой игре может подготовить для видеокарты лишь определенное количество кадров в секунду, и чем процессор мощнее — тем больше кадров он может подготовить. Соответственно, чтобы видеокарта была занята на 100%, она должна иметь возможность отрисовать меньше кадров в секунду, чем может дать ей процессор. Как это сделать? Да очень просто: поднять разрешение, поставить более высокие настройки графики, включить тяжелое сглаживание — и вуаля, GTX 1080 Ti в 5К на ультра-настройках графики «пыхтит», выдавая 15-20 кадров в секунду, а поставленный ей в пару двухядерный Intel Pentium едва ли нагружен на половину.



Легко можно получить и обратную ситуацию: взять ту же самую GTX 1080 Ti и запустить на ней игру в HD-разрешении с минимальными настройками графики — и тут даже Core i9-9900K не сможет подготовить для ней столько кадров в секунду, чтобы она была занята на 100%.

Так что тут можно сделать два вывода: во-первых, если видеокарта недогружена несильно, а итоговый fps вас устраивает — всегда можно еще немного увеличить настройки графики, чтобы получить 100% нагрузку на видеокарту с лучшей картинкой и при той же производительности. Во-вторых, собирайте сбалансированные сборки, дабы не было такого, что процессор занят на 100%, а fps в игре 20 кадров.


Восьмой миф. Если видеокарта не перегревается, то она работает на максимально возможной для нее частоте в рамках ее теплопакета

Увы — аналогия с процессорами тут не работает: если те действительно удерживают максимальные частоты в рамках TDP вплоть до температуры, с которой начинается троттлинг из-за перегрева, то видеокарты работают хитрее: так, у Nvidia есть технология GPU Boost, которая, с одной стороны, является аналогом Turbo Boost для процессоров — позволяет поднимать частоту выше базовой — а с другой стороны имеет больше ограничений.

Возьмем, для примера, GTX 1080 Ti. Она имеет родную частоту в 1480 МГц, а Boost — 1580. Но стоит нагрузить видеокарту, как частота может подскочить до 1800-1850 МГц — то есть выше Boost: это и есть работа технологии GPU Boost. Дальше — интереснее: критические температуры у видеокарт поколения Pascal составляют порядка 95 градусов — но уже при 85 можно заметить, что частоты снижаются ближе к уровню Boost. Почему так? Потому что Nvidia ввела еще одну опорную температуру, которую называет целевой: при ее достижении видеокарта старается ее не превышать, а для этого сбрасывает частоты. Так что если у вас мощная видеокарта, да и еще с референсным турбинным охлаждением — внимательно следите за температурами, ибо от них в прямом смысле зависит производительность.

Девятый миф. Видеокарты без дополнительного питания хуже аналогов с ним

В продаже можно встретить видеокарты уровня GTX 1050, 1050 Ti и AMD RX 550 без дополнительного питания — то есть, как в старые добрые времена, достаточно поставить их в слот PCIe и они готовы к работе. При этом также есть версии 1050 и 1050 Ti с дополнительным питанием 6 pin, из-за чего некоторые пользователи делают вывод, что раз дополнительное питание есть — значит с ним видеокарты будут работать лучше.

На деле это не совсем так: слот PCIe способен дать видеокарте до 75 Вт, и этого вполне хватает, чтобы даже 1050 Ti работала на указанных на официальном сайте Nvidia частотах. Но если вы нацелены на разгон — да, тут питания от PCIe видеокарте может уже не хватить, так что дополнительные 6 pin от блока питания позволят достичь больших частот, однако разница в любом случае не превысит 10%.

Десятый миф. Не стоит ставить современные PCIe 3.0 видеокарты на старые платы со слотами PCIe 2.0 или 1.0

Все опять же логично — так, пропускная способность PCIe 2.0 x16 вдвое ниже, чем у 3.0 x16, а, значит, современные видеокарты через более старую шину PCIe будут работать медленнее. На деле это опять же не так — пропускная способность PCI Express 3.0 x16 даже для топовых современных видеокарт оказывается избыточной:

Похожее изображение

Хорошо видно, что разница между 3.0 x16 и 2.0 x16 составляет всего 1%, то есть погрешность, и даже если спуститься до PCIe 1.1 — то есть к материнским платам почти десятилетней давности — падение производительности оказывается всего лишь 6%. Так что вердикт тут прост — версия PCIe практически не влияет на производительность видеокарты, соответственно можно смело к Xeon с PCI Express 2.0 брать GTX 1080.

Одиннадцатый миф. Разгон видеопамяти не имеет смысла

Конечно, наибольший прирост дает разгон ядра видеокарты — тут прирост производительности близок к линейному (то есть увеличили частоту на 10% — получили прирост производительности на 10%). Однако не стоит сбрасывать со счетов видеопамять, особенно в слабых видеокартах: зачастую в них ставят те же чипы памяти, что и в более мощные решения, но при этом сильно снижают частоту. Это дает возможность ее достаточно сильно разогнать, зачастую на 20-40%, что может прибавить к общей производительности графики еще 10-15% — для слабых видеокарт это лишним, разумеется, не будет:


Двенадцатый миф. С выходом каждой новой линейки видеокарт производители урезают производительность старой

Достаточно популярный миф, основанный обычно на том, что на одних (обычно более старых) версиях драйверов видеокарта работает лучше, чем на других (обычно более новых). Разумеется, никакого реального основания он не имеет: если бы Nvidia и AMD на самом деле хотели заставить пользователей обновить видеокарты, они бы прекращали их поддержку как производители смартфонов на Android, через пару лет после выхода. Однако на деле даже решения 600-ой линейки от Nvidia, вышедшей более 6 лет назад, до сих пор получают новые драйвера наравне с более новыми видеокартами, причем со всеми программными «плюшками» типа DirectX 12.

Но почему тогда есть разница в производительности между драйверами? Потому что ничто в нашем мире не идеально, и какие-то драйвера, улучшая производительность в новых играх, могут испортить производительность в более старых или привести к различным ошибкам. Обычно через некоторые время выходят исправленные драйвера, и все возвращается на круги своя.

Читайте также: