|   |   | 
| 
 | Тормоза при разнесении сервера приложений и 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С... ради эксперемента | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |