|
Тормоза при разнесении сервера приложений и SQL сервера на разные виртуальные машины | ☑ | ||
---|---|---|---|---|
0
Dmitriy_
Kolesnikov 17.09.21
✎
15:08
|
Пытаюсь понять причины проблемы с производительностью (тест Гилёва используется в качестве инструмента измерения)
Есть несколько виртуальных машин, расположенных в одном датацентре, часть - на одном гипервизоре, часть - на разных. Сеть 1 ГБит, по измерениям с помощью iperf, проблем не видно. Пинги 1 мс, пакетами по 65000 байт - 2 мс. Диски: частично обычные RAID, часть SSD, часть NVMe. Всё это оказывает некоторое влияние на результат измерений, но не существенное. ОС - от W2012S до W2016S. СУБД - MSSQL Разных версий, в кластере и автономно. Самое интересное - в следующем. Если я располагаю сервер приложений и СУБД на разных виртуальных машинах, тест Гилёва показывает всегда и стабильно 4 попугая. Если на одной - результат может быть разный, но не меньше 10 попугаев (зависит от прочих факторов). Но какие бы сервера по производительности не связывал по сети - результат стабильно 4. У меня закончились идеи относительно того, что это может вообще быть. |
|||
1
Вафель
17.09.21
✎
15:09
|
на одной машине конечно быстрее ибо шаред мемори
|
|||
2
ДенисЧ
17.09.21
✎
15:10
|
4 попугая по Гилёву - это пошаговая Цивилизация-5 на ПеньПро с 32 МБ памяти...
|
|||
3
VladZ
17.09.21
✎
15:21
|
Да и 10 - не фонтан.
|
|||
4
H A D G E H O G s
17.09.21
✎
15:21
|
(0) Что показывает CPUZ и CrystalMarks ?
|
|||
5
H A D G E H O G s
17.09.21
✎
15:23
|
(0) Лицензия - программная?
|
|||
6
Garykom
гуру
17.09.21
✎
15:27
|
(0) дисковая подсистема надеюсь не третья виртуалка?
|
|||
7
guevara74
17.09.21
✎
15:30
|
(0) обратимся к первоисточнику, у которого вы скачали тест. http://www.gilev.ru/virt1c/
"Однако схема такая сразу начинает работать медленней. Причём, например результат нашего теста может упасть сразу в два раза. Почему? Например, потому что раньше сервер 1С и сервер СУБД внутри одной операционной системы общались между собой по протоколу Shared Memory, и это было очень быстро. А теперь используют сетевой интерфейс, а даже внутри одного сервера виртуализация сети- задача по ресурсам совсем не бесплатная. А кроме того, есть ещё и неудобные для 1С сочетания факторов, вот как на снимке: использование сетевого интерфейса WMXNET3 практически гарантирует узкое место на передаче данных 1С по сети." я чаще всего сталкиваюсь с "ля виртуальных серверов ESXi 6.0 с 1с сервером не используйте сетевые интерфейсы типа WMXNET3, использовать только типа e1000e Причина такого совета абсолютно не понятна. WMXNET3 - виртуальная (как и e1000e кстати) сетевая карта 10G, с оптимизацией под работу Vmware. Может кто-то прочитал про проблемы с VM Chimney (TSO - TCP Offload) и RSS (Receive Side Scaling) с точностью до наоборот – там надо бы выкинуть e1000e и провести прочее колдунство. http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2008925" |
|||
8
Garykom
гуру
17.09.21
✎
15:44
|
в случае PostgreSQL нету Shared Memory
|
|||
9
fisher
17.09.21
✎
15:50
|
Ну, даже из формулировки сабжа понятно, что в сетку затыкается. Почему так сильно - вопрос второй. Можно попробовать проконсультироваться у техподдержки датацентра.
|
|||
10
fisher
17.09.21
✎
15:56
|
ЕМНИП, для минимизации просадок по сетке при разнесении серверов всегда рекомендовался прямой линк между серваками максимальной производительности. Для подобных целей кажись даже спец-оборудование выпускалось.
|
|||
11
fisher
17.09.21
✎
15:58
|
А как там оно в датацентре - неизвестно. Может шарится еще с кем-то или на маршрутизаторах как-то режется...
|
|||
12
Dmitriy_
Kolesnikov 17.09.21
✎
16:14
|
(2) да, документы проводятся по минуте
(5) лицензия программная Да там есть ситуации, когда между виртуальными машинами - софтсвитч от VMWare. И всё равно 4 попугая. (7) ну согласитесь, что производительность не должна падать так катастрофически сильно. |
|||
13
ДенисЧ
17.09.21
✎
16:16
|
(12) "ну согласитесь,"
Не согласимся. Если виртуалки не находятся под твоим (или гурёвым) надзором - со скоростью там может быть всё, что угодно. Может, у них дата-центр биткойны майнит, а тебе процессоры отдаёт по остаточному принципу... |
|||
14
1Сергей
17.09.21
✎
16:16
|
Слава б-гу мы ушли с виртуалок
|
|||
15
fisher
17.09.21
✎
16:22
|
1 попугай - это скорость света в вашей виртуальной вселенной
А минимальное расстояние между разными серверами виртуальной вселенной - 4 попугайные единицы |
|||
16
H A D G E H O G s
17.09.21
✎
16:22
|
(12) ЧТо там по cpuz и crystal ?
|
|||
17
ansh15
17.09.21
✎
16:27
|
Какие-нибудь E5420, наверное
|
|||
18
ansh15
17.09.21
✎
16:28
|
В powersave mode
|
|||
19
eklmn
гуру
17.09.21
✎
16:31
|
Кстати, спрошу пока тут собрались кто в теме
Тестировал кто разнесенные сервера технологию multipath? имхо должно увеличивать производительность на процентов 20 |
|||
20
Dmitriy_
Kolesnikov 17.09.21
✎
18:30
|
(16) zabbix показывает, что загрузка аппаратных ресурсов крайне низкая.
|
|||
21
Dmitriy_
Kolesnikov 17.09.21
✎
18:31
|
Ещё раз повторю: не в ресурсах дело. Ибо перемещаешь СУБД на ту же виртуальную машину, где стоит сервер приложений - как производительность возрастает в 2.5 раза.
|
|||
22
H A D G E H O G s
17.09.21
✎
18:40
|
(20) ЧТо там по cpuz и crystal ?
|
|||
23
Winnie Buh
17.09.21
✎
19:13
|
(0) было бы странно, если стало наоборот быстрее
|
|||
24
Immortal
17.09.21
✎
22:00
|
(22) можно поянсить для ленивых?
ну то есть понятно что максимальная частота должна быть на процах, а crystal для чего? |
|||
25
H A D G E H O G s
17.09.21
✎
23:39
|
(24) Посмотреть, как там с чтением-записью 4 Кб блоков в один поток.
|
|||
26
Конструктор1С
18.09.21
✎
06:09
|
А какая необходимость разлучать СП и СУБД?
|
|||
27
Конструктор1С
18.09.21
✎
06:16
|
Источником тормозов могут быть:
- маршрутизация (должно быть напрямую) - настройки виртуалок - система безопасности Но не стоит гадать на кофейной гуще, надо собрать счетчики производительности ОС, возможно счетчики производительности СУБД |
|||
28
rphosts
18.09.21
✎
06:21
|
(1) шаред мемори ещё настроить нужно
|
|||
29
Вафель
18.09.21
✎
07:40
|
(27) тут счетчики не помогут
|
|||
30
Djelf
18.09.21
✎
07:55
|
(8) Не совсем так, в Postgres действительно нет Shared Memory, зато есть Unix Socket. Но только под Linux, естественно. И такое подключение тоже дает % к скорости.
https://gyazo.com/24c66769d8df43277f6607a6e15639a6 |
|||
31
Конструктор1С
18.09.21
✎
08:54
|
(29) счетчики позволят убедиться, есть/нет проблемы в системных ресурсах
|
|||
32
Вафель
18.09.21
✎
11:16
|
(31) ну вот ты сам описал возможные проблемы. Какие счетчики на них укажут?
|
|||
33
Конструктор1С
19.09.21
✎
12:25
|
(32) на эти счетчики не укажут, ну разве что косвенно-косвенно. Счетчики помогут убедиться, что проблем с сетью как таковой нет (или есть). Всё-таки проблемы надо диагностировать, раз уж круг подозреваемых есть, а не пытаться угадать переключая настройки.
Ну и есть такая насущная проблема. Если речь о "чужом" дата-центре, то скорее всего этот дата-центр оказывает услуги нескольким организациям. У таких ДЦ есть "типовой" перечень настроек, утвержденный биг-боссом. И админы очень неохотно их будут менять, если вообще будут. Поэтому на руках нужно иметь не пространное "наша адинэс тормозит на ваших серверах", а набор железобетонных фактов. Для получения фактов нужна диагностика |
|||
34
Олеша Попович
19.09.21
✎
12:34
|
(0) чувак у тебя что 4 - очень мало, что 10-тоже очень мало, поэтому забей - в любом случае выкидывать всю систему надо и делать новую
|
|||
35
Leonardo1c
19.09.21
✎
16:32
|
(0) см квоты по дискам и по сети возможно надо поставить максимум. 1с не оптимизирована по вирт машины.
|
|||
36
pechkin
19.09.21
✎
16:44
|
(33) еще раз: какие счетчики покажут наличие проблем с сетью. давай конкретику
|
|||
37
kolts23381
19.09.21
✎
18:47
|
В случае с KVM нужно использовать virtio для сетевых карт.
|
|||
38
ildary
20.09.21
✎
00:56
|
(33) А каков смысл в данном случае что-то подсчитывать - какие бы цифры/показатели не были бы получены - на них техподдержка датацентра ответит "И чо, и чо? У нас так принято", или в лучшем случае скажут "для более хороших показателей купите вип виртуалку за стопятьсот рублей". Ну разве что директору сказать "тут 1С неработоспособна, либо покупаем свой сервер либо ищем другой сервис (Фреш?)"
|
|||
39
ansh15
20.09.21
✎
01:31
|
Что вы хотите от облаков... https://infostart.ru/1c/articles/1235750/
|
|||
40
H A D G E H O G s
20.09.21
✎
01:39
|
(39) Всегда забавляют фразы
"Ситуацию с плохими результатами тестов безусловно можно исправить в лучшую сторону с помощью грамотной настройки виртуальной машины и физического сервера, где расположена эта машина." Дроселль подсоса электронов они там подкрутят или Microsoft скрывают криптонастройки Венды. Чтобы ваша ОС работала в 3 раза быстрее, достаточно старой советской... |
|||
41
ildary
20.09.21
✎
03:21
|
(40) все говорят, что виртуалку можно правильно настроить и никто и никогда не говорит как это сделать. У Гилева есть частные советы, но догнать по ним невиртуалку по скоростям (с поправкой на накладные расходы) - мне кажется невозможно.
|
|||
42
ansh15
20.09.21
✎
10:14
|
(40) (41) Эти люди(виртуализаторы 1С), наверное, стоят намного дороже, чем любой гуру Linux-Postgres-1C и знаниями просто так не разбрасываются, держат все в секрете.
|
|||
43
Garykom
гуру
20.09.21
✎
10:21
|
(41) если виртуалку юзать всего одну на физической машине то она работает с минимальной потерей около 10%
|
|||
44
Garykom
гуру
20.09.21
✎
10:22
|
(43)+ только вот смысл виртуалки пропадает
(42) нет там никаких секретов |
|||
45
ansh15
20.09.21
✎
10:24
|
(44) Это главный секрет :)
|
|||
46
Garykom
гуру
20.09.21
✎
10:25
|
Основная проблема виртуалок это деление ресурсов физических не все виртуальные
если у вас на физике допустим 24 ядра на две виртуалки можно отдать по 12 ядер и с частотой типа все будет ок только вот доступ к памяти упс в пересчете на каждую виртуалку в два раза медленней аналогично с дисковой подсистемой и сетевыми ресурсами - но тут еще все осложнено накладными расходами, короче 2 виртуалки на 1 физике дисковая и сетевая будут не в два раза хуже а в три примерно |
|||
47
Garykom
гуру
20.09.21
✎
10:27
|
То что у ТС происходит с 10 попугаев на одной и 4 на разных сервер 1С и sql сервер это обычная картинка вполне хорошо настроенных виртуалок на замечательно утилизированных железках хостера
У него все супер он все свое железо по максимуму наиболее выгодно загрузил и ниипет что у клиентов тормозит |
|||
48
Garykom
гуру
20.09.21
✎
10:32
|
(0) сделай тесты CPU-Z Bench https://www.cpuid.com/softwares/cpu-z.html
и CrystalDiskMark https://crystalmark.info/en/software/crystaldiskmark/ на своих виртуалках и сделай тест https://windowsnotes.ru/programs/izmeryaem-skorost-seti-programmoj-iperf/ между ними |
|||
49
H A D G E H O G s
20.09.21
✎
10:56
|
(48) Я уже несколько раз ему писал, но игнор. Что говорит о том, что доступа к учетке может и не быть.
|
|||
50
ansh15
20.09.21
✎
15:04
|
>>железо по максимуму наиболее выгодно загрузил
То есть, основная(и главная) задача успешно выполнена, а 4 или 10 или один документ одну минуту проводится, это просто сопутствующие потери и печалиться особо нечего. |
|||
51
Dmitriy_
Kolesnikov 20.09.21
✎
17:16
|
Отвечаю всем.
1. iperf с флагом -b0 показывает стабильно 1 ГБит\с. Пинги минимальны. 2. Вместо CrystalDiskmark я использую IsMyHDOK - те же яйца, вид в профиль. Смотрю показатель рандомного чтения\записи блоками по 4К. Он точно такой же, как на тестовом железе (моём домашнем ноуте), где есть винты HDD, SSD, NVMe. С одним исключением - поскольку диски подключены как виртуальные (то есть файлы VMWare), имеем падение производительности в 30% относительно железа в режиме pass through. 3. Загрузку ресурсов на виртуальных серверах смотрим в Zabbix, нигде никаких аномалий не наблюдается. Очередей нет. Недозагрузка. 4. Смотреть CPU-Z Bench на виртуальной машине не вижу смысла, т. к., если перегружен гипервизор, то в самой виртуальной машине вы никак это не определите, но производительность упадёт. При этом монитор ресурсов будет показывать ничтожную загрузку CPU. 5. Датацентр арендованный, но всё железо своё. Я не знаю конфигураций железа, но там какие-то очень мощные сервера, они загружены незначительно. 6. На VMWare (прямо в гипервизоре) установлен Касперский, но не на всех гипервизорах. Версии VMWare - 5.5 и 7. 7. Мы попробовали перенести на одном из серверов, где тест показывал 10 попугаев, диски с HDD на SSD. Результат не изменился (стал 9, точнее, но это может быть связано с загрузкой сервера приложений). Повторяю: проблема НЕ в железе. Проблема в софте. Либо на уровне гипервизора что-то не то с настройками, либо Касперский, либо "умные" коммутаторы задерживают именно пакеты с данными 1С, но не задерживают пинги, либо в СХД (все диски - на SAN)... Проблема именно в разрыве производительности, а не в абсолютных цифрах. На новом VMWare, дисках NVMe (не pass-through, к сожалению) и при условии установки MSSQL + 1C на одной виртуальной машине я имею 28 попугаев. Но как только переношу одну из двух служб на любой внешний сервер - всё, ровно 4 попугая. |
|||
52
Garykom
гуру
20.09.21
✎
17:28
|
(51) >очень мощные сервера, они загружены незначительно
с частотой 2 Ггц да? >новом VMWare, дисках NVMe (не pass-through, к сожалению) и при условии установки MSSQL + 1C на одной виртуальной машине я имею 28 попугаев. Но как только переношу одну из двух служб на любой внешний сервер - всё, ровно 4 попугая И это совершенно нормально в случае прохода трафика через сетевой интерфейс И еще некоторых тонкостях, часть тут http://www.gilev.ru/sqlsize/ |
|||
53
Олеша Попович
20.09.21
✎
17:32
|
(51) ну и зачем вам виртуалки эти?
|
|||
54
Immortal
07.10.21
✎
18:45
|
(25) а почему смотреть однопоточную запись надо? Там же рядом такой же тест на многопоточную??
|
|||
55
sitex
naïve
07.10.21
✎
19:22
|
(0) Виртуалки - 10% - 15% от производительности.
|
|||
56
Fram
07.10.21
✎
21:39
|
(51) а схд как подключены? Сеть или через плату расширения и SAS кабели ?
|
|||
57
eklmn
гуру
08.10.21
✎
10:30
|
(51) это 1С детка )
попробуйте на линуксе поднять сервер 1С... ради эксперемента |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |