Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Операционные системы / Operating systems (https://forum.zone-game.info/forumdisplay.php?f=32)
-   -   Meltdown/Spectre/MDS performance (https://forum.zone-game.info/showthread.php?t=42902)

n3k0nation 27.01.2018 16:03

Meltdown/Spectre/MDS performance
 
Meltdown/Spectre.
Недавно мне в репы прилетело новое ядро с патчем на мелтдаун и спектру. Так как исправление данных дыр сжирает от 20% до 50% производительности на старых интел процах (ниже скайлейка), то оно ненужно (кроме того, это должно быть исправлено на аппаратном уровне, а сейчас мы имеем кучу костылей, которые убивают огромный процент перформанса).
К тому же, данные уязвимости актуальны только на серверах с виртуализацией, для домашних хомяков или серверов без виртуализации, это просто является потерей производительности.




Версии ядра популярных дистрибутивов, начиная с которых присутствуют патчи для устранения уязвимостей:
Код:

RHEL 6/ CentOS 6 - 2.6.32-696.18.7
RHEL 7/ CentOS 7 - 3.10.0-693.11.6
Debian 7 - 3.2.0-5-amd64
Debian 8 - 3.16.0-5-amd6
Debian 9 - 4.9.0-5-amd64
Ubuntu 14.04 - 3.13.0-139-generic
Ubuntu 16.04 - 4.4.0-109-generic/ 4.13.0-26-generic
Ubuntu 17.10 - 4.13.0-25-generic

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

Для того чтобы проверить вашу систему берём специальный bash скрипт:
https://github.com/speed47/spectre-meltdown-checker

Сохраняем к себе на сервер и выполняем (от root):
Код:

# sh spectre-meltdown-checker.sh
Если ваш сервер уязвим, то будет написано VULNERABLE, если нет, то NOT VULNERABLE соответственно.



Немного покопав гит кернеля линупса, были найдены замечательные коммиты, которые через передачу параметров кернелю выключают "чудо-патчи" (актуально для ванильных ядер):
https://git.kernel.org/pub/scm/linux...7cc83fefb8d537
https://git.kernel.org/pub/scm/linux...422eea71d473e0

Порядок действий на линупсах примерно такой:
  • Редактируем grub.cfg для передачи параметров:
    Код:

    $ su
    # nano /etc/default/grub

  • Далее вносим изменения в GRUB_CMDLINE_LINUX_DEFAULT, должно получится чето типа этого:
    Код:

    GRUB_CMDLINE_LINUX_DEFAULT="pti=off nospectre_v2"
    Также, можно вместо nospectre_v2 заюзать:
    Код:

    spectre_v2=off
  • Сохраняем, выходим и ре-генерим скрипты груба:
    Код:

    # update-grub

Для винды сносим данные KB и больше никогда их не ставим:
Код:

KB4056892 <-- W10 / Server 2016
KB4056891 <-- W10
KB4056890 <-- W10 / Server 2016
KB4056888 <-- W10
KB4056893 <-- W10
KB4056898 <-- W8 / Server 2012 / W8 Embedded
KB4056895 <-- W8 / Server 2012 / W8 Embedded
KB4056897 <-- W7 / Server 2008 / W7 Embedded
KB4056894 <-- W7 / Server 2008 / W7 Embedded


Microarchitectural Data Sampling.
Новая уязвимость в Intel камнях, патчи под Linux уже подъехали. Галактико в опасностэ! Впрочем, с помощью данных уязвимостей на самом деле можно сделать интересные вещи. Но мне, как Неуловимому Джо, оно нахрен не нужно на домашних машинах, особенно с учетом еще одних потерь производительности в виде 30-40 процентов.

Для отключения достаточно передать несколько параметров в ядро:
Код:

mds=off mitigations=off
По мауналу выше втыкаем эти параметры в GRUB_CMDLINE_LINUX_DEFAULT, который лежит в /etc/default/grub и перегенериваем скрипты загрузчика update-grub.
Не забываем включить назад HT, ну, либо можно не включать.

Ashtone Grey 01.02.2018 02:07

Re: Meltdown/Spectre performance
 
Я вообще ни слова не понял конечно, но это хороший совет. Как перейду на 10-ку (году в 20-м), сразу воспользуюсь.

Evas 02.02.2018 15:38

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от n3k0nation (Сообщение 429890)
Недавно мне в репы прилетело новое ядро с патчем на мелтдаун и спектру. Так как исправление данных дыр сжирает от 20% до 50% производительности на старых интел процах (ниже скайлейка), то оно ненужно (кроме того, это должно быть исправлено на аппаратном уровне, а сейчас мы имеем кучу костылей, которые убивают огромный процент перформанса).
К тому же, данные уязвимости актуальны только на серверах с виртуализацией, для домашних хомяков или серверов без виртуализации, это просто является потерей производительности.

Немного покопав гит кернеля линупса, нашел замечательные коммиты, которые через передачу параметров кернелю выключают "чудо-патчи":
https://git.kernel.org/pub/scm/linux...7cc83fefb8d537
https://git.kernel.org/pub/scm/linux...422eea71d473e0

Порядок действий на линупсах примерно такой:
  • Редактируем grub.cfg для передачи параметров:
    Код:

    $ su
    # nano /etc/default/grub

  • Далее вносим изменения в GRUB_CMDLINE_LINUX_DEFAULT, должно получится чето типа этого:
    Код:

    GRUB_CMDLINE_LINUX_DEFAULT="pti=off nospectre_v2"
    Также, можно вместо nospectre_v2 заюзать:
    Код:

    spectre_v2=off
  • Сохраняем, выходим и ре-генерим скрипты груба:
    Код:

    # update-grub

Для винды сносим данные KB и больше никогда их не ставим:
Код:

KB4056892 <-- W10 / Server 2016
KB4056891 <-- W10
KB4056890 <-- W10 / Server 2016
KB4056888 <-- W10
KB4056893 <-- W10
KB4056898 <-- W8 / Server 2012 / W8 Embedded
KB4056895 <-- W8 / Server 2012 / W8 Embedded
KB4056897 <-- W7 / Server 2008 / W7 Embedded
KB4056894 <-- W7 / Server 2008 / W7 Embedded


OVH на свои образы накатывают эти патчи если что. Только что вот взяли сервер с 9 дебианом и там модифицированное ядро, где активированы патчи для фикса уязвимости.

Zubastic 02.02.2018 16:26

Re: Meltdown/Spectre performance
 
Написал простенький батник для ленивых:
Код:

@echo off
echo Delete Updates...
echo Clearing W10 Updates:
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056892  /quiet /norestart
echo Delete KB4056897
start /w wusa.exe /uninstall /kb:4056891  /quiet /norestart
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056890  /quiet /norestart
echo Delete KB4056897
start /w wusa.exe /uninstall /kb:4056888  /quiet /norestart
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056893  /quiet /norestart
echo Clearing W8 Updates:
echo Delete KB4056898
start /w wusa.exe /uninstall /kb:4056898  /quiet /norestart
echo Delete KB4056895
start /w wusa.exe /uninstall /kb:4056895 /quiet /norestart
echo Clearing W7 Updates:
echo Delete KB4056897
start /w wusa.exe /uninstall /kb:4056897 /quiet /norestart
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056894 /quiet /norestart


Evas 04.02.2018 14:49

Re: Meltdown/Spectre performance
 
n3k0nation, дополните первый пост, информация полезная и пригодится людям)

Список уязвимых процессоров:






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

Код:

RHEL 6/ CentOS 6 - 2.6.32-696.18.7
RHEL 7/ CentOS 7 - 3.10.0-693.11.6
Debian 7 - 3.2.0-5-amd64
Debian 8 - 3.16.0-5-amd6
Debian 9 - 4.9.0-5-amd64
Ubuntu 14.04 - 3.13.0-139-generic
Ubuntu 16.04 - 4.4.0-109-generic/ 4.13.0-26-generic
Ubuntu 17.10 - 4.13.0-25-generic

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

Для того чтобы проверить вашу систему берём специальный bash скрипт:
https://github.com/speed47/spectre-meltdown-checker

Сохраняем к себе на сервер и выполняем (от root):
Код:

sh spectre-meltdown-checker.sh
Если ваш сервер уязвим, то будет написано VULNERABLE, если нет, то NOT VULNERABLE соответственно.


Ashtone Grey 05.02.2018 07:20

Re: Meltdown/Spectre performance
 
https://i.vimeocdn.com/portrait/4434812_300x300https://image.prntscr.com/image/cbw5...hv0pTroHsw.jpg

Амуде, ну почему, должны же были соснуть только интелофаги, за что ты так со мной, где я теперь найду пару тысяч рублей на новый процессор чтобы 40 ядер и всё остальное как ты там умеешь, чтобы даже с этой новой шляпой у тебя не лагало.

Evas 14.02.2018 12:01

Re: Meltdown/Spectre performance
 
Ещё более интересные новости:

Разработчики СУБД MariaDB предупредили о существенном снижении производительности хранилища MyISAM при использовании ядра Linux с патчами KPTI, блокирующими уязвимость Meltdown. Замедление операций сканирования строк в MyISAM после применения патчей KPTI составляет около 40%, а при отсутствии поддержки PCID может достигать 90%. Для избавления от подобного эффекта требуется полный редизайн MyISAM. Судя по всему это касается всех версий mysql и не только форков...

https://mariadb.org/myisam-table-scan-performance-kpti/

n3k0nation 15.02.2018 01:25

Re: Meltdown/Spectre performance
 
Evas, это все наблюдается не только в базах данных, в любых приложениях, которые хоть мальски часто используют любые сисколлы (многопоточка, фс, сеть, работа с памятью и т.д.).

Evas 15.02.2018 01:31

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от n3k0nation (Сообщение 430201)
Evas, это все наблюдается не только в базах данных, в любых приложениях, которые хоть мальски часто используют любые сисколлы (многопоточка, фс, сеть, работа с памятью и т.д.).

Это то понятно и так, но оказывается с Mysql всё немного иначе, вот о чём я...

n3k0nation 15.02.2018 01:34

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от Evas (Сообщение 430203)
Это то понятно и так, но оказывается с Mysql всё немного иначе, вот о чём я...

В смысле иначе?
БД играется с памятью? - Играется!
Юзает сокеты? - Юзает!
Пишет/читает с диска? - Да!

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

Меня больше интересует че так все взвыли и откуда такой хайп по этой всей херне. Все таки это актуально только для виртуальных серверов, причем только для хоста. В ВМках быдло-скрипта, в браузерах, уже давно накатили фиксы. И нахрена надо было криво-фиксы пихать во все ОС? Конечно же вын10/бубунта у меня виртуализирует, как ксен, 50 систем под никсами/выньсервер :redlol:

Evas 15.02.2018 01:37

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от n3k0nation (Сообщение 430204)
В смысле иначе?
БД играется с памятью? - Играется!
Юзает сокеты? - Юзает!
Пишет/читает с диска? - Да!

Вот и 50% перформанса, как минимум, улетает. Как я и писал в начальном посте.

Я так понимаю, что в случае с MyISAM ещё будет иметь место и дополнительная потеря производительности на чтении только из за того, что это MyISAM. Хотя, судя по статье от разработчиков mariadb на их aria или даже на том же innodb такой потери почти нет.

n3k0nation 15.02.2018 01:43

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от Evas (Сообщение 430205)
Я так понимаю, что в случае с MyISAM ещё будет иметь место и дополнительная потеря производительности только из за того, что это MyISAM. Хотя, судя, по статье от разработчиков mariadb на их aria или даже на том же innodb потери почти нет.

Только в случае, если таблицы и индексы (именно с этим проблема у MyISAM) умещаются в память. В остальных случаях будет очень весело.

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

Ashtone Grey 15.02.2018 03:58

Re: Meltdown/Spectre performance
 
Так чо поясните по нормасу, на домашний пеку есть смысл накатывать, или обойдутся?

Zubastic 15.02.2018 14:30

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от Ashtone Grey (Сообщение 430215)
Так чо поясните по нормасу, на домашний пеку есть смысл накатывать, или обойдутся?

Офк нет. Накатывай скрипт, который я закинул выше и радуйся жизни. Никому твое ЦП не нужно.

Ashtone Grey 15.02.2018 17:41

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от Zubastic (Сообщение 430222)
Офк нет. Накатывай скрипт, который я закинул выше и радуйся жизни. Никому твое ЦП не нужно.

А для Win7 он разве подойдет? Я то слоупок на семерке ещё сижу. Сделай для семерки пабратски. А, или просто мне только два последних нужно взять, а остальные дропнуть?
Алсо, это паскудство отображается в журнале обновлений как установленное, а вот удалить его через удаление установленных обновлений фигу там, потому что его там просто нет. Придется гуглить как сделать bat файл.kappa

ALeKsIuS 15.02.2018 18:41

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от Ashtone Grey (Сообщение 430223)
А для Win7 он разве подойдет? Я то слоупок на семерке ещё сижу. Сделай для семерки пабратски. А, или просто мне только два последних нужно взять, а остальные дропнуть?
Алсо, это паскудство отображается в журнале обновлений как установленное, а вот удалить его через удаление установленных обновлений фигу там, потому что его там просто нет. Придется гуглить как сделать bat файл.kappa

Так Зубастик туда же добавил все обновы в батник и для 7, 8ки, 10ки)

Ashtone Grey 15.02.2018 18:53

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от ALeKsIuS (Сообщение 430224)
Так Зубастик туда же добавил все обновы в батник и для 7, 8ки, 10ки)

Не ну мало ли, вдруг он не сработает тамшуто там вин10 и 8. Я человек простой - вижу непонятное, ничего не делаю.kappa

Evas 15.02.2018 19:42

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от Ashtone Grey (Сообщение 430226)
Не ну мало ли, вдруг он не сработает тамшуто там вин10 и 8. Я человек простой - вижу непонятное, ничего не делаю.kappa

Возьмите оттуда только нужную часть для вин7

Код:

@echo off
echo Delete Updates...
echo Clearing W7 Updates:
echo Delete KB4056897
start /w wusa.exe /uninstall /kb:4056897 /quiet /norestart
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056894 /quiet /norestart

А bat файл это текстовый файл с расширением .bat

Ashtone Grey 15.02.2018 20:42

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от Evas (Сообщение 430227)
Возьмите оттуда только нужную часть для вин7

Код:

@echo off
echo Delete Updates...
echo Clearing W7 Updates:
echo Delete KB4056897
start /w wusa.exe /uninstall /kb:4056897 /quiet /norestart
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056894 /quiet /norestart

А bat файл это текстовый файл с расширением .bat

Да я уже всё сделал, ну что Вы в самом то деле.

n3k0nation 17.05.2019 13:46

Re: Meltdown/Spectre performance
 
Добавил в первый пост инструкцию по отключению патчей MDS (Microarchitectural Data Sampling) на Linux.


Текущее время: 19:06. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot