Постановка задачи:
В комментариях к предыдущей статье уважаемый kolabaister подал отличную идею:"Были бы интересны менее крупные региональные провайдеры - selectel, 1cloud, infobox."
И я попробовал воплотить ее в жизнь. А именно, в прямом смысле зарулил в питерский офис 1cloud.ru, чтобы поздороваться, посмотреть, пощупать и договориться о тестовых серверах. Оттуда же и аватарка публикации (с празднования 23 Февраля).
Лирическое отступление: офис 1cloud находится в абсолютно уникальном месте для Петербурга - Преображенской слободе.
Здесь, как в слоеном пироге наложились друг на друга исторические слои: пушек и муз. Дух бравых бомбардиров ее величества и величайших русских писателей. Некоторые искусствоведы считают, что если спрессовать время, то на перекрестках Преображенской слободы вполне могли встретиться лицом к лицу 25-30 классиков русской литературы. Что и отражено в названиях улиц. Во времена Ленинграда в ходу был анекдот, когда маленького мальчика спрашивают, каких он знает писателей, и он просто перечисляет названия окрестных улиц: Чехов, Маяковский, Жуковский...Литейный.
Теперь здесь живут высокие технологии.
Решение:
В нашей стране слова "программист 1С" имеют магическое действие, поэтому на тестирование мне в облаке выделили 10 000 рублей.
Поэтому я не только смог посмотреть как живется в облаке базам 1С, но и протестировать, как меняется быстродействие системы в зависимости от настроек СУБД.
Причем с различными рекомендациями, как от вендора, так и от интернет-сообщества. Результаты получились очевидные и невероятные.
И, конечно же, продолжил оборванный разговор о конфигурации виртуальной сети для среднего бизнеса, как ее вижу я.
Собрав, и собственно в ней и поработав. Поэтому статей получилось две.
Часть вторая: Для скромной такой компании огромный такой секрет. Сеть с 1С и веб сервером Битрикс в облаке. Располагаемся поудобнее...
Часть впечатлений переехала туда.
Но обо всем по порядку.
Тем кто не любит много букв:
Идея посмотреть на людей, которые акцентируются именно на предоставлении виртуальной инфраструктуры, а не 100+ облачных услуг, была очень хороша.
С главной страницы и далее чувствуется, что по ту сторону монитора находятся профессионалы своего дела.
Это с одной стороны простота и лаконичность, с другой стороны продуманность, когда каждая вещь находится на своем месте и под рукой.
Поэтому даже не самые простые вещи можно сделать не беспокоя техническую поддержку и не расчехляя бубен.
На сервисе достаточно скоростная СХД и это дает возможность Postgres показать себя.
И 1С Предприятие при разумной нагрузке в этом окружении живется хорошо. При любых настройках.
Тестовый контур и порядок работы:
Использовались:
Сервер Windows 2008 R2, Postgres 11, MS SQL 2014 evaluation
Сервер Ubuntu 16.04, Postgres 9.6
1С:Предприятие 8.3 (8.3.13.1644), Бухгалтерия предприятия, редакция 3.0 (3.0.66.70)
crystal disk mark, winrar, 7zip
HammerDB
Тестовые конфигурации 1С с сайтов www.gilev.ru и fragster.ru, а также обработка эмулирующая работу пользователей в 1С Бухгалтерия предприятия.
Конфигурация обеих виртуальных машин одинаковая (2 ядра 16 Гб ОЗУ и 100 Гб HDD) приближенная к реальной рабочей.
На обоих серверах установлен гуи и тесты проводились попеременно с одного на другой.
Методика и ссылки на использованные конфигурации - в первой статье.
Полученные результаты:
Тест/Конфигурация ВМ | CrystalDiskMark | 7 zip | WinRar | HammerDB TPC-C | ||||
Seq Q32T1 | 4KiB Q32T1 | MIPS | Kb/s | tpm | ||||
Read | Write | Read | Write | 2 users | 100 users | |||
Windows 2008 R2 MS SQL 2014 opt | 239,9 | 202,9 | 55,40 | 58,21 | 7159 | 1174 | 81396 | 270840 |
Windows 2008 R2 Postgresql 11 opt leopard | 85842 | 97878 | ||||||
Ubuntu 16.04 Postgresql 9.6 | 27066 | 61044 | ||||||
Ubuntu 16.04 MS Postgresql 9.6 opt leopard | 32880 | 76398 |
Тест/Конфигурация ВМ | 1C | ||||||
gilev.ru | APDEX | fragster.ru (Результат на поток) | |||||
Временные таблицы | Справочники | Регистры сведений | Регистры накопления | Регистры бухгалтерии | |||
Windows 2008 R2 MS SQL 2014 opt | 21,01 | 0,999 | 3 707,60 | 415,65 | 341,12 | 316,66 | 323,50 |
Windows 2008 R2 Postgresql 11 opt leopard | 26,74 | 0,998 | 2 037,82 | 848,76 | 574,01 | 569,51 | 552,39 |
Ubuntu 16.04 Postgresql 9.6 | 21,28 | 0,993 | 6 740,31 | 1 658,56 | 1 268,47 | 1 296,59 | 1 213,84 |
Ubuntu 16.04 MS Postgresql 9.6 opt leopard | 22,73 | 0,997 | 4 318,94 | 1 499,91 | 1 136,06 | 1 090,97 | 1 084,59 |
Тем кого много букв не пугает, приступим:
Внимание! Если вы не согласны с полученными результатами, ваше право написать об этом в комментариях.
Но все измерения проведенные в этой статье подкреплены скриншотами, поэтому будет хорошим тоном, кроме вашего бесценного опыта и огромного багажа знаний подкрепить свои замечания хоть чем то.
Все что будет сказано по делу - будет исправлено, к тому же бывают и опечатки и иногда путаются рисунки.
Принтскрины всех тестов находятся в шапке, в тексте публикации только те, на которые хотелось бы обратить внимание (все большие картинки кликабельны).
Лирическое отступление: как петербуржец в некотором колене я наверное с детства впитал в себя любовь к своему городу и гордость за него... ну да, да и некоторый питерский снобизм тоже.... (не забываем порт приписки Инфостарта если что) Именно поэтому начиная тестировать облако 1cloud я волновался - что делать, если оно не будет достойно?
Но уже после проверки дисков стало ясно - любимый город может спать спокойно.
Все сложится хорошо. Так и получилось...
СХД пока самая быстрая из попавших в мои руки, процессоры стандартные
скорость доступа - как уплачено
Техническое отступление: за время прошедшее с первых тестов я немного подтянул теорию, почитав литературу, но и немало погуглившись, совершенно неожиданно обнаружил последователя, а скорее всего совершенно независимого человека, который сравнивает различные облачные сервера. Так вот, его методика - это по сути те же crystal disk mark, winrar, 7zip - тесты скорости диска и процессоров+память. Но поскольку он продвинутый линуксоид (линуксятник?), то он просто разворачивает Ubuntu и прогоняет скрипт тестирования. И все - вуаля. Это к слову. Но это не наш метод, мы же меряем БД и 1С.
-Я свидетель! А что случилось?.
© поговорка времен СССР
Серебряная пуля...
Лирическое отступление: чтобы не переходить на личности скажу размыто: какая бы статья о производительности не появлялась на Инфостарт, в ней обязательно есть комментарий - я сделаю лучше. Сразу хочется сказать: ну проходи, раздевайся, приступай. Но в ответ тишина...
А есть ли вообще серебряная пуля настроек производительности, можно ли ввести свои параметры сервера и получить на выходе скрипт конфигурации?
К примеру по настройкам Postgres есть известный ресурс leopard.in.ua, есть рекомендации Etersoft, есть настройки пришедшие с Postgres Pro.
По MS SQL таких сайтов на порядки больше.
Есть ИТС, которым как выяснилось, многие не пользуются.
В ХIX веке любое дело начинали помолясь.
А в ХXI веке - загуглясь
© интернет мем
ИТС или и т.д. ?
Лирическое отступление: есть такие люди - магистральные админы, они конечно не бьют себя пяткой в грудь, но усмехаются в бороды, читая здесь про настройки линукс, DBA Microsoft, когда посмотрели на ютюбе рассказы 1С-ников про настройку MS SQL, тоже загадочно улыбались. Потом подкинули мне пяток ссылок вида: SQL Server Performance Tuning Made Easy, Derik’s Favorite Trace Flags, Important Trace Flag that Every Expert DBA Should Know - это вообще с сайта ms sql girl, с десятком флагов трассировки.
И вот каково было мое удивление, когда я на its.1c.ru нашел их все!
Поэтому сравнение было такое:
- настройки по умолчанию
- настройки по гуглу
- настройки по ИТС:
- Check-list по настройке рабочих серверов в продукционной зоне
- Настройки Microsoft SQL Server для работы с 1С:Предприятием
- Настройки PostgreSQL для работы с 1С:Предприятием. Часть 2
- Флаги трассировки для работы с MS SQL Server
Очевидное - невероятное.
Часть невероятное
Тесты я начал с Postgres на Ubuntu и начало было ободряющее. С настройками от ИТС на 2 пользователях HammerDB просто рвал дефолтные настройки.
Однако, дальше все пошло не так очевидно.
Под нагрузкой в 100 виртуальных пользователей все результаты подравнялись и вперед ушел leopard, он же показал наибольший APDEX.
А вот тесты уважаемого fragster максимум выдали на настройках по умолчанию.
Причем разница заметная.
Тесты Postgres + Windows server дали результаты поплотнее но похожие.
Тест/Конфигурация ВМ | HammerDB TPC-C | 1C | |||||||
tpm | gilev.ru | APDEX | fragster.ru (Результат на поток) | ||||||
2 users | 100 users | Временные таблицы | Справочники | Регистры сведений | Регистры накопления | Регистры бухгалтерии | |||
Windows 2008 R2 Postgresql 11 | 70290 | 37506 | 26,32 | 0,994 | 2 070,16 | 806,73 | 567,25 | 550,31 | 519,72 |
Windows 2008 R2 Postgresql 11 opt 1C | 86904 | 66546 | 24,88 | 0,991 | 1 644,87 | 805,49 | 570,71 | 550,39 | 547,67 |
Windows 2008 R2 Postgresql 11 opt leopard | 85842 | 97878 | 26,74 | 0,998 | 2 037,82 | 848,76 | 574,01 | 569,51 | 552,39 |
Ubuntu 16.04 Postgresql 9.6 | 27066 | 61044 | 21,28 | 0,993 | 6 740,31 | 1 658,56 | 1 268,47 | 1 296,59 | 1 213,84 |
Ubuntu 16.04 MS Postgresql 9.6 opt 1C | 82146 | 57054 | 19,31 | 0,975 | 2 485,34 | 1 170,13 | 766,09 | 754,44 | 799,84 |
Ubuntu 16.04 MS Postgresql 9.6 opt leopard | 32880 | 76398 | 22,73 | 0,997 | 4 318,94 | 1 499,91 | 1 136,06 | 1 090,97 | 1 084,59 |
С MS SQL + Windows server еще и схему электропитания вернул на сбалансированную вместо высокая производительность
Тут все ровнее - windows конечно лояльнее к неподготовленным пользователям.
Тест/Конфигурация ВМ | HammerDB TPC-C | 1C | |||||||
tpm | gilev.ru | APDEX | fragster.ru (Результат на поток) | ||||||
2 users | 100 users | Временные таблицы | Справочники | Регистры сведений | Регистры накопления | Регистры бухгалтерии | |||
Windows 2008 R2 MS SQL 2014 opt | 81396 | 270840 | 21,01 | 0,999 | 3 707,60 | 415,65 | 341,12 | 316,66 | 323,50 |
Windows 2008 R2 MS SQL 2014 not opt | 72492 | 266424 | 20,83 | 0,992 | 3 417,22 | 506,17 | 382,76 | 380,79 | 367,70 |
Установка всех рекомендованных флагов трассировки не улучшила результатов.
Но была заметна на глаз - HammerDB не смог получить трассировку счетчиков производительности.
Windows 2008 R2 MS SQL 2014 1C ALL FLAGS | 3242,79 | 396,01 | 314,12 | 315,96 | 308,29 |
А хотелось получше. И поэтому вспомнился рецепт - tempdb на RAM диске. Заодно туда же отправились каталог кластера и TEMP.
Стало похуже
Windows 2008 R2 MS SQL 2014 1C RAM TEMPDB | 3 124,39 | 379,73 | 304,22 | 290,05 | 281,40 |
Поэтому вишенкой на торт, стало вынесение всей базы на RAM диск. Как рабочую схему, конечно, такое рекомендовать нельзя, а вот на дни расчета зарплаты или закрытия месяцев - вполне. Если, конечно, хватит памяти. Сделаете хорошо бухгалтерии.
Тут, конечно, фейерверк и шампанское.
Windows 2008 R2 MS SQL 2014 1C RAM | 129432 | 215490 | 31,25 | 1 | 3 810,62 | 782,22 | 586,66 | 551,98 | 542,28 |
Часть очевидное
Так вот переходим от невероятного к очевидному. Как я уже сказал: подтянул теорию. Поэтому на обеих серверах был настроен сбор информации о загрузке оборудования.
Он показал, что очередь к диску не выходит за пределы допустимого ни в ubuntu, ни в windows.
То есть при небольшом размере базы и средней нагрузке скорости СХД хватает.
Почему такой разброс по настройкам тоже можно понять.
Alexey Vasiliev aka leopard, если и слышал про 1С на Postgres, вряд ли занимался этим вопросов вплотную, зато у него огромный опыт в этом деле.
Те, кто пишут статьи для ИТС, скорее всего принесли настройки из 1С:Фреша. Поэтому их вариант для отдельно стоящих баз не обладает наибольшим быстродействием. Возможно они еще и за стабильность поборолись.
Поворачивая холодный кран на кухне,
муж научился корректировать тональность поющей в душе жены.
©анекдот.ру
Лирическое отступление: про APDEX... Можно конечно интегральную оценку производительности измерять секундами, но это ни самому посмотреть, ни другим показать. С трудом верится, что финансовый директор будет впечатлен вашими достижениями, если вы скажете, что смогли ускорить проведение реализации с 0,405 секунд до 0,352. А если вы ему скажете, что улучшили производительность с удовлетворительно на отлично - премия вам в кассе.
А если присмотритесь, APDEX кроме математики, еще и на психологию опирается - там же измеряли, хватает ли терпения у посетителя дождаться загрузки сайта или он закроет страницу раньше. И это вот время: 4Т, взялось оттуда. Если у вас более или менее терпеливые пользователи - можете считать по другому коэффициенту, но формула будет похожа. Конечно, бухгалтер дождется проведения документа в любом случае, но та грань, когда его рука тянется к вашему горлу телефону, она по моему опыту как раз та, когда APDEX базы бухгалтерии уходит в зону плохо.
На этом месте и пора подвести полный итог:
Если вы не гонитесь за хайпом, выбираете простоту в достижении цели, рекомендую вам присмотреться к облаку 1cloud.
В особенности жителям 78 и 47 регионов, да и не только им, а всем, кому не хочется продираться сквозь блокчейны, машин-ленинги, искусственный интеллект и еще много страшных слов, чтобы просто разместить 1С в облаке.
Все результаты более чем достойные, как в абсолютном, так и в отношении цена/качество выражении.
Более того, хорошее оборудование позволит не напрягаться с различными настройкам и сможет сгладить углы, если настройки будут сделаны неточно.
Приятно удивил Postgres Pro. Раньше с настройками по умолчанию сервер не взлетал, а сейчас подойдет даже любителям нажать setup - далее - ок.
А если у вас как раз непреодолимое желание в настройках поковыряться, то для начала помониторьте загрузку оборудования и посмотрите в какую сторону рулить. Возможно игра не стоит свеч.
И начинайте с чтения ИТС, это зачтется.
Использованы методики настройки и тестирования из публикаций:
- Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана
- Измерь его правильно! Краткое описание общепринятого метода оценки производительности DB серверов
- Многопоточное тестирование производительности по методике APDEX (управляемые формы)
- Многопоточное тестирование производительности сервера 1С - СУБД
Для адекватных людей:
Если у вас есть конкретные замечания или предложения по улучшению - пишите.