Багатопотокове тестування продуктивності сервера 1с. Стандартний тест навантаження. Що означають результати тесту

Головна / 2 Cool Reader

Обов'язковою операцією за будь-якого впровадження чи зміні існуючої інформаційної системи є оцінка необхідної швидкодії системи та планування необхідних обчислювальних ресурсів її реалізації. В даний час не існує точного вирішення цього завдання в загальному вигляді, і якщо, незважаючи на її складність і вартість, такий алгоритм буде запропонований будь-яким виробником, то навіть невеликі зміни в апаратній частині, версії програмного забезпечення, конфігурації системи чи кількості або стандартному поведінці користувачів призведуть до появи значних помилок.

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

Більшість існуючих методів оцінки продуктивності ґрунтуються на тому чи іншому типі тестування.

Можна виділити два основні типи тестування: компонентне та інтегральне.

p align="justify"> При компонентному тестуванні проводиться тестування окремих компонентів рішення, починаючи від продуктивності процесорів або підсистем зберігання інформації до тестування продуктивності сервера в цілому, але без корисного навантаження у вигляді того чи іншого бізнес-додатку.

Інтегральний підхід характеризується оцінкою продуктивності рішення загалом, як його програмної, і апаратної елементів. При цьому може використовуватися як бізнес-додаток, який буде використаний у кінцевому рішенні, так і деякі модельні програми, що емулюють деякі стандартні бізнес-процеси та навантаження.

Зелений колір графіка разом з деякими умовно обраними за зразки показниками праворуч дозволяє зробити кросплатформенну узагальнену оцінку «непоганої» продуктивності.

Як радіти результатам тесту

Ви отримали як результат якийсь індекс продуктивності (швидкості). Не важливо, хороший чи поганий результат – це результат роботи ПЛАТФОРМИ на вашому залізі. У разі клієнт-серверного варіанту це результат складного ланцюжка проходження запитів по різних ділянках. Ви отримуєте загальний фактичний результат, який визначається найвужчим місцем у системі. Вузьке місце є завжди.

Інакше кажучи, і налаштування СУБД, і налаштування ОС, і устаткування впливають загальний командний результат.

Який сервер краще

Даний тест, виконаний на конкретному сервері, дає результат із сукупності налаштувань hardware, операційної системи, субд і т.д. Проте високий результат на конкретному серверному обладнанні означає, що за дотримання нормальних умов такий самий результат буде на ідентичному серверному обладнанні. Даний тест є безкоштовною допомогою у можливості порівняти установку 1С:Підприємство під Windows та Linux, три різних СУБД, що підтримуються платформою 1С:Підприємство 8.

Безпека тесту

Тест абсолютно безпечний. Він не призводить до падіння сервера (відсутня стрес-алгоритм) і не вимагає попередніх заходів навіть на бойовому сервері. Конфіденційні дані в результати тесту також не записуються. Збирається інформація про параметри CPU, RAM, HDD. Серійні номери пристроїв не збираються. У цьому можна легко переконатися - код тесту 100% відкритий. Жодного пересилання інформації без вашого відома неможливо.

Класифікація TPC-A-local Throughput / TPC-1C-GILV-A

Тест відноситься до розділу універсальних інтегральних кроссплатформенних тестів. Навіть більше того, він застосовується для файлового та клієнт-серверного варіантів експлуатації 1С:Підприємство. Тест працює всім СУБД, підтримуваних 1С.

Універсальність дозволяє робити узагальнену оцінку продуктивності не прив'язуючись до конкретної конфігурації типової платформи.

З іншого боку це означає, що для точних розрахунків замовного проекту тест дозволяє зробити попередню оцінку перед спеціалізованим тестуванням навантаження .

Завантажити тест

Цей тест не є комерційним і його можна завантажити безкоштовно для 8.2 та безкоштовно для 8.3.

Технічні подробиці

Що відбувається у тесті у межах «одного» такту операції?

Особливості використання тесту на субд PostgreSQL

Встановіть значення параметра standard_conforming_strings у конфігураційному файлі postgresql.conf у значення 'off'

Як виміряти завантаженість заліза

Слід зазначити, що сам собою тест вже частково виконує замір. Для більш детальної картини рекомендую скористатися утилітою Марка Русиновича Process Explorer.

На малюнку показано приклад виміру для файлового варіанта.

Результати тесту навантаження TPC-1 продуктивності 1С по Гільову для конфігурації з файловою базою даних:

Продуктивність сервера оцінюється не завантаженістю та чергами до CPU, а здатністю виконати певну кількість операцій за одиницю часу.
Конкурування за такі ресурси, як процесор, знижує швидкість виконання операцій, коли час відгуку визначається:

  • часом операції
  • часом очікування обладнання
  • часом логічних очікувань на кшталт блокувань

У цьому ключовою характеристикою є швидкість операції.

Примітка. Для процесора найбільш значущою характеристикою є частота процесора, а не завантаженість. Нижче скріншот результатів проведеного тестування (Щоб збільшити картинку – натисніть на неї).

Швидкодія системи та планування необхідних обчислювальних ресурсів для її реалізації є обов'язковою операцією за будь-якого впровадження або зміни існуючої ІТ системи.

Більшість існуючих методів оцінки продуктивності ґрунтуються на тому чи іншому типі тестування.

Можна виділити два основні типи тестування: компонентне та інтегральне.

p align="justify"> При компонентному тестуванні проводиться тестування окремих компонентів рішення, починаючи від продуктивності процесорів або підсистем зберігання інформації до тестування продуктивності сервера в цілому, але без корисного навантаження у вигляді того чи іншого бізнес-додатку.

Інтегральний підхід характеризується оцінкою продуктивності рішення загалом, як його програмної, і апаратної елементів. При цьому може використовуватися як бізнес-додаток, який буде використаний у кінцевому рішенні, так і деякі модельні програми, що емулюють деякі стандартні бізнес-процеси та навантаження.

У нашому тесті якраз і використовується такий підхід.

Ми отримали як результат якийсь індекс продуктивності (швидкості). Це результат роботи платформи загалом на нашому залізі. У разі клієнт-серверного варіанту це результат складного ланцюжка проходження запитів по різних ділянках. Ви отримуєте загальний фактичний результат, який визначається найвужчим місцем у системі. Налаштування СУБД, і налаштування ОС, та обладнання впливають на загальний результат продуктивності системи.

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

Ходять чутки, що 1С (найпопулярніша система для бухгалтерського та управлінського обліку) "гальмує" в хмарних інфраструктурах.

Ходять чутки, що 1С (найпопулярніша система для бухгалтерського та управлінського обліку) "гальмує" в хмарних інфраструктурах. Ще є думка, що через кілька років компанії малого та середнього бізнесу не купуватимуть сервера для 1С, а орендуватимуть їх у хмарах і центрах обробки даних, оскільки це фінансово ефективніше.

Наша команда вирішила провести тестування доступних конфігурацій серверів і з'ясувати - чи справді 1С може успішно працювати на віртуальних машинах і яка хмара більше підходить для її розміщення. Фінансові аспекти залишимо як тему для іншої статті.

Підготовка

  1. Вибираємо двох провайдерів послуг для розміщення віртуальних серверів.
  2. Підготовляємо ідентичні машини для тестування – однакову кількість ядер, пам'яті, об'єм дисків та їх тип. Також важливо однаково налаштувати СУБД.
  3. Проводимо тестування навантаження на мінімальній конфігурації. Фіксуємо результат.
  4. Додаємо ресурси та повторюємо крок 3. Так доти, доки ресурси не закінчаться.

Наша конфігурація для тестування

  • HDD для операційної системи – SSD
  • HDD для даних – SSD.
  • ОС - Windows Server 2016 Datacentr
  • СУБД - SQL Server 2016 SP1 Standard Edition
  • 1С Сервер x86 версії 8.3.10.2505.

1C Сервер та SQL Server встановлені на одній машині. Увімкнено та використовується режим Shared Memory.

1С Підприємство запускаємо на тій же машині, де розміщено сервер 1С та СУБД, щоб усунути затримки мережі та не залежати від географічного розміщення ЦОД"а, в якому розміщуємо віртуальну машину.

Як тестуємо

Як основу використовуватимемо тест від проекту www.gilev.ru

Тест нам видає характеристику поточної конфігурації, що описує, наскільки комфортно буде працювати з 1С Підприємство та другим етапом проводить стрес-тест сервера 1С для виявлення оптимальної кількості користувачів.

Тепер визначимося із провайдерами. Візьмемо потужності від лідера хмарних рішень - компанії Microsoft з їхньою хмарною платформою під назвою Microsoft Azure і як другий провайдер будемо використовувати Облакотеку.

Microsoft Azure - постійно зростаюча колекція інтегрованих хмарних служб, які розробники та ІТ-фахівці використовують для розробки та розгортання програм, а також керування ними через всесвітню мережу центрів обробки даних. Завдяки Azure можна створювати та розгортати рішення в будь-якому місці, використовуючи необхідні інструменти, програми та платформи.

Azure розміщується в 40 регіонах по всьому світу, для тестування ми будемо використовувати Західну Європу як найближчий з доступних регіон до нас.

На старт! Увага! Тест!

Почнемо тест із машин серії D-series v2. Зокрема, D1 v2 складається з 1 ядра та 3,5 Гб оперативної пам'яті. Фіксуємо результат:

Так як в Azure не можна гнучко додавати ресурси, а можна тільки використовувати варіанти віртуальних машин, перекладені тестовий зразок на D2 v2, в якому 2 ядра і 7 Гб оперативної пам'яті. Запускаємо.

Всі фото екранів з тестом Гілєва наведені в галереї нижче. Там же опубліковані результати тесту 1С у файловому режимі - дані отримані нами тільки для формування загальної картини, тому що цей режим роботи 1С не дуже цікавий підприємствам з кількістю користувачів більше п'яти осіб.

Тариф Ядра Пам'ять Оцінка комфорту Користувачів
B4ms 4 16 15,34 14
D1 v2 1 3,5 17,92 21
D2 v2 2 7 19,46 28
D2s v3 2 8 8,45 14
D3 v2 4 14 18,25 56
D4 v2 8 28 19,23 91
D4s v3 4 16 15,53 42
E2s v3 2 16 10,04 21
E4s v3 4 32 12,38 49
F4s 4 8 20,49 70
F8s 8 16 20,83 84
G1 2 28 13,26 56
L4s 4 32 17,67 56
L8s 8 64 15,82 98

"Оцінка комфорту"- Умовна оцінка швидкодії системи, що включає оцінку частоти центрального процесора, кількість ядер, частоту роботи оперативної пам'яті та швидкість роботи дискової системи. Показник від 0 до 10 – погано, 10 – 15 – задовільно, 15 – 35 – добре, 35 – 60 – чудово.

"Користувачів"- Показник характеризує кількість користувачів, що одночасно і активно працюють з 1С Підприємство, що не призводить до деградації продуктивності. Іншими словами, працювати можуть і більша кількість співробітників, але якщо вони почнуть одночасно виконувати будь-які операції (а в більшості випадків - це малоймовірно), то швидкодія системи може погіршитися.

Висновки

Провівши виміри на віртуальних машинах Azure у різних варіаціях ядра/пам'ять, ми дійшли наступних висновків:

  1. Для роботи 1С у клієнт-серверному режимі з Microsoft SQL Server найбільше підходять машини F-серії та D-серії.
  2. Дискова підсистема Azure Premium-класу (SSD-диски) не створює обмежень швидкості роботи 1С.
  3. Microsoft Azure чудово підходить для розміщення 1С Підприємство.
Варто сказати, що розглядати той чи інший хмарний сервіс окремо від грошей – трохи однобоко. Ми підготуємо окрему статтю щодо фінансової ефективності такого підходу до розвитку інфраструктури підприємства.

Фото Олени Тулякової, ІА «Клерк.ру»

У статті вказані основні помилки, які роблять початківці адміністратори 1С, і показані способи їх вирішення на прикладі тесту Гільова.

Основна мета написання статті — щоб не повторювати очевидних нюансів тим адміністраторам (і програмістам), які ще не набрали досвіду з 1С.

Вторинна мета, якщо маю якісь недоліки, — на Інфостарті мені це вкажуть найшвидше.

Якимсь стандартом "де факто" вже став тест В. Гільова. Автор на своєму сайті дав цілком зрозумілі рекомендації, я ж наведу деякі результати, і прокоментую найбільш ймовірні помилки. Природно, що результати тестування на Вашому устаткуванні можуть відрізнятися, це просто для орієнтиру, що має бути і чого можна прагнути. Відразу хочу наголосити, що зміни треба робити покроково, і після кожного кроку перевіряти, який результат це дало.

На Інфостарті подібні статті є, у відповідних розділах ставитиму на них посилання (якщо пропущу щось - прохання підказати у коментарях, додам). Отже, припустимо у вас гальмує 1С. Як діагностувати проблему, і як зрозуміти, хто винен, адміністратор чи програміст?

Вихідні дані:

Комп'ютер, що тестується, основний піддослідний кролик: HP DL180G6, в комплектації 2*Xeon 5650, 32 Gb, Intel 362i, Win 2008 r2. Для порівняння, порівняні результати в однопотоковому тесті показує Core i3-2100. Обладнання спеціально взяв не найновіше, на сучасному обладнанні результати помітно кращі.

Для тестування рознесених серверів 1С і SQL, SQL: IBM System 3650 x4, 2*Xeon E5-2630, 32 Gb, Intel 350, Win 2008 r2.

Для перевірки 10 Gbit мережі використовувалися Intel 520-DA2 адаптери.

Файлова версія (База лежить на сервері в розшарованій папці, клієнти підключаються по мережі, протокол CIFS/SMB). Алгоритм за кроками:

0. Додаємо на файловий сервер тестову базу Гільова до тієї ж папки, що й основні бази. З клієнтського комп'ютера підключаємось, запускаємо тест. Запам'ятовуємо результат.

Мається на увазі, що навіть для старих комп'ютерів 10-річної давності (Pentium на 775 socket) час від натискання на ярлик 1С: Підприємство до появи вікна бази має пройти менше хвилини. (Celeron = повільна робота).

Якщо у Вас комп'ютер гірший, ніж пентіум на 775 socket з 1 гб оперативної пам'яті, то я Вам співчуваю, і комфортної роботи на 1С 8.2 у файловій версії Вам буде важко. Подумайте або про апгрейд (давно пора), або про перехід на термінальний (або web, у разі тонких клієнтів та керованих форм) сервер.

Якщо комп'ютер не гірший, можна штовхати адміністратора. Як мінімум – перевірити роботу мережі, антивірусу та драйвера захисту HASP.

Якщо тест Гільова на цьому етапі показав 30 папуг і вище, але робоча база 1С все одно працює повільно - питання вже до програміста.

1. Для орієнтира, скільки ж може "вичавити" клієнтський комп'ютер, перевіряємо роботу тільки цього комп'ютера без мережі. Тестову базу ставимо на локальний комп'ютер (на швидкий диск). Якщо клієнтському комп'ютері немає нормального ССД, то створюється рамдиск. Поки що, найпростіше і безкоштовне - Ramdisk enterprise.

Для тестування версії 8.2 цілком достатньо 256 мегабайт рамдиска, і! Найголовніше. Після перезавантаження комп'ютера з працюючим рамдиском на ньому повинно бути вільно 100-200 мб. Відповідно, без рамдиска, для нормальної роботи вільної пам'яті має бути 300-400 мегабайт.

Для тестування версії 8.3 рамдиска 256 мегабайт вистачить, але вільної оперативної пам'яті треба більше.

При тестуванні слід дивитися на завантаження процесора. У випадку, близькому до ідеального (рамдиск), локальна файлова 1с під час роботи завантажує 1 ядро ​​процесора. Відповідно, якщо при тестуванні у вас ядро ​​процесора завантажено не повністю - шукайте слабкі місця. Трохи емоційно, але загалом коректно, вплив процесора працювати 1С описано . Просто для орієнтиру, навіть на сучасних Core i3 із високою частотою цілком реальні цифри 70-80.

Найпоширеніші помилки цьому етапі.

  • Неправильно налаштований антивірус. Антивірусів багато, налаштування для кожного свої, скажу лише те, що при грамотному налаштуванні ні веб, ні касперський 1С не заважають. При налаштуваннях "за замовчуванням" - може забиратися приблизно 3-5 папуг (10-15%).
  • Режим продуктивності. Чомусь на це мало хто звертає уваги, а ефект – найвагоміший. Якщо потрібна швидкість - робити це обов'язково, і на клієнтських і на серверних комп'ютерах. (Гарний опис у Гілева. Єдиний нюанс, на деяких материнських платах якщо вимкнути Intel SpeedStep то не можна включати TurboBoost).
Якщо коротко - під час роботи 1С відбувається дуже багато очікувань відповіді з інших пристроїв (диск, мережа тощо). Під час очікування відповіді, якщо режим продуктивності включений збалансований, процесор знижує свою частоту. Приходить відповідь від пристрою, треба працювати 1С (процесору), але перші такти йдуть зі зниженою частотою, потім частота підвищується – а 1С знову чекає відповіді від пристрою. І так – багато сотень разів на секунду.

Вмикати режим продуктивності можна (і бажано) у двох місцях:

  • через BIOS. Вимкнути режими C1, C1E, Intel С-state (C2, C3, C4). У різних біосах вони називаються по-різному, але сенс один. Шукати довго, потрібно перезавантаження, але якщо зробив один раз – потім можна забути. Якщо BIOS все зробити правильно, то швидкості додасться. На деяких материнських платах налаштуваннями BIOS можна зробити так, що режим продуктивності Windows ролі не гратиме. (Приклади налаштування BIOS у Гільова). Ці налаштування здебільшого стосуються серверних процесорів або "просунутих" BIOS, якщо Ви таке у себе не знайшли, і у вас НЕ Xeon – нічого страшного.

  • Панель керування - Електроживлення - Висока продуктивність. Мінус - якщо ТО комптютера давно не проводилося, він сильніше гудітиме вентилятором, більше грітиметься і споживатиме більше енергії. Це – плата за продуктивність.
Як перевірити, що режим увімкнено. Запускаємо диспетчер завдань – швидкодія – монітор ресурсів – ЦП. Чекаємо, поки процесор нічим не зайнятий.
Це налаштування за замовчуванням.

У BIOS C-state включені,

режим енергоспоживання збалансований


У BIOS C-state включені режим високої продуктивності

Для Pentium та Core на цьому можна зупинитися,

з Xeon ще можна вичавити трохи "папужок"


У BIOS C-state вимкнено режим високої продуктивності.

Якщо не використовувати Turbo boost - саме так має виглядати

сервер, налаштований на продуктивність


Нині ж цифри. Нагадаю: Intel Xeon 5650, Ramdisk. У першому випадку тест показує 23.26, в останньому – 49.5. Різниця – майже дворазова. Цифри можуть змінюватись, але співвідношення залишається практично таким же для Intel Core.

Шановні адміністратори, ви можете як завгодно лаяти 1С, але якщо кінцевим користувачам потрібна швидкість, необхідно включати режим високої продуктивності.

в) Turbo Boost. Спочатку треба зрозуміти, чи підтримує Ваш процесор цю функцію, наприклад. Якщо підтримує, можна ще цілком легально отримати трохи продуктивності. (Питання розгону по частоті, особливо серверів, торкатися не хочу, робіть це на свій страх і ризик. Але погоджуся з тим, що підвищення Bus speed зі 133 до 166 дає дуже відчутний приріст як швидкості, так і тепловиділення)

Як включати turbo boost написано, наприклад, . Але! Для 1С є деякі нюанси (не найочевидніші). Складність у цьому, що максимальний ефект від turbo boost проявляється тоді, коли включені C-state. І виходить приблизно така картинка:

Зверніть увагу, що множник – максимальний, частота Core speed – найкрасивіша, продуктивність – висока. Але що буде в результаті з 1с?

А в результаті виходить, що за тестами продуктивності ЦПУ варіант з множником 23 попереду, за тестами Гільова у файловій версії - продуктивність з множником 22 і 23 однакова, а ось у клієнт-серверній - варіант з множником 23 жах жах (навіть, якщо C -state виставити на рівень 7, все одно повільніше, ніж з вимкненим C-state). Тому рекомендація, перевірте обидва варіанти у себе, і виберіть із них найкращий. У будь-якому випадку, різниця 49,5 та 53 папуги – досить значна, тим більше це без особливих зусиль.

Висновок – turbo boost включати обов'язково. Нагадаю, що недостатньо включити пункт Turbo boost у біосі, треба ще подивитися й інші налаштування (BIOS: QPI L0s, L1 – disable, demand scrubbing – disable, Intel SpeedStep – enable, Turbo boost – enable. Панель управління – Електроживлення – Висока продуктивність) . І я все-таки (навіть для файлової версії) зупинився на варіанті, де c-state вимкнений, хоч там множник і менше. Вийде якось так...

Досить спірним моментом є частота пам'яті. Наприклад, ось частота пам'яті показується як дуже сильно впливає. Мої ж тести – такої залежності не виявили. Я не порівнюватиму DDR ​​2/3/4, я покажу результати зміни частоти в межах однієї лінійки. Пам'ять та сама, але у біосі примусово ставимо менші частоти.




І результати тестування. 1С 8.2.19.83, для файлового варіанта локальний рамдиск, для клієнт-серверного 1С та SQL на одному комп'ютері, Shared memory. Turbo boost в обох варіантах вимкнено. 8.3 показує порівняні результати.

Різниця – у межах похибки вимірювань. Я спеціально витягнув скрини CPU-Z щоб показати, що зі зміною частоти змінюються інші параметри, ті ж CAS Latency і RAS to CAS Delay, що нівелює зміну частоти. Різниця буде тоді, коли фізично змінюватимуться модулі пам'яті, з повільніших на швидші, але й там цифри не надто значні.

2. Коли з процесором та пам'яттю клієнтського комп'ютера розібралися, переходимо до наступного дуже важливого місця – мережі. Про тюнінг мережі написано багато томів книг, є статті на Інфостарті ( , та інші), тут я на цю тему загострюватиму увагу не буду. Перед початком тестування 1С прохання переконатися, що iperf між двома комп'ютерами показує всю смугу (для 1 гбіт карток – ну хоча б 850 мбіт, а краще 950-980), що виконані поради Гільова. Потім - найпростішою перевіркою роботи буде, хоч як це дивно, копіювання одного великого файлу (5-10 гігабайт) по мережі. Непрямою ознакою нормальної роботи в мережі в 1 гбіт буде середня швидкість копіювання 100 мб/сек, хорошої роботи — 120 мб/сек. Хочу звернути увагу, що слабким місцем (у тому числі) може бути завантаженість процесора. SMB протокол на Linux досить погано паралеліться, і під час роботи він цілком спокійно може «з'їсти» одне ядро ​​процесора і більше не споживати.

І ще. За замовчуванням windows клієнт найкраще працює з windows server (або навіть windows робоча станція) і протоколом SMB/CIFS, linux клієнт (debian, ubuntu інші не дивився) краще працює з linux і NFS (з SMB теж працює, але на NFS папуги вище). Те, що при лінійному копіюванні вин-лінукс сервер на НФС копіюється в один потік швидше, ще ні про що не говорить. Тюнінг debian для 1С - тема окремої статті, я до неї ще не готовий, хоча можу сказати, що у файловій версії отримував навіть трохи більшу продуктивність, ніж Win варіант на цьому ж обладнанні, але з postgres при користувачах понад 50 у мене поки що все дуже погано.

Найголовніше, про що знають адміністратори, що не "обпеклися", але не враховують початківці. Є багато способів задати шлях до бази 1с. Можна зробити servershare, можна 192.168.0.1share, можна net use z: 192.168.0.1share (і в деяких випадках такий спосіб теж спрацює, але далеко не завжди) і потім вказувати диск Z. Начебто всі ці шляхи вказують на одне і те ж місце, але для 1С є тільки один спосіб, що досить стабільно дає нормальну продуктивність. Так ось, правильно робити треба так:

У командному рядку (або політиків, або як Вам зручно) - робите net use DriveLetter: servershare. Приклад: net use m: serverbases. Я спеціально наголошую, НЕ IP адресу, а саме ім'я сервера. Якщо сервер на ім'я не видно - додайте його в dns на сервері, або локально до файлу hosts. Але звернення має бути на ім'я. Відповідно - в дорозі до бази звертатися до цього диска (див. картинку).

А тепер я на цифрах покажу, чому саме така порада. Вихідні дані: Карти Intel X520-DA2, Intel 362, Intel 350, Realtek 8169. Win 2008 R2, Win 7, Debian 8. Драйвера останні, оновлення застосовані. Перед тестуванням я переконався, що Iperf дає повну смугу (крім 10 гбіт карток, там вийшло тільки 7.2 Gbit вичавити, потім подивлюсь чому тестовий сервер ще не налаштований як треба). Диски різні, але скрізь SSD (спеціально вставив одиночний диск для тестування, більше нічим не навантажено) або рейд із SSD. Швидкість 100 Мбіт отримана шляхом обмеження в налаштуваннях адаптера Intel 362. Різниці між 1 Gbit мідь Intel 350 і 1 Gbit оптика Intel X520-DA2 (отриманої шляхом обмеження швидкості адаптера) не виявлено. Максимальна продуктивність, турбобуст вимкнений (просто для сумісності результатів, турбобуст для хороших результатів додає трохи менше 10%, для поганих - взагалі може не позначитися). Версії 1С 8.2.19.86, 8.3.6.2076. Цифри наводжу не всі, а найцікавіші, щоб було з чим порівнювати.

100 Mbit CIFS

Win 2008 - Win 2008

звернення за адресою ip

100 Mbit CIFS

Win 2008 - Win 2008

звернення на ім'я

1 Gbit CIFS

Win 2008 - Win 2008

звернення за адресою ip

1 Gbit CIFS

Win 2008 - Win 2008

звернення на ім'я

1 Gbit CIFS

Win 2008 - Win 7

звернення на ім'я

1 Gbit CIFS

Win 2008 - Debian

звернення на ім'я

10 Gbit CIFS

Win 2008 - Win 2008

звернення за адресою ip

10 Gbit CIFS

Win 2008 - Win 2008

звернення на ім'я

11,20 26,18 15,20 43,86 40,65 37,04 16,23 44,64
1С 8.2 11,29 26,18 15,29 43,10 40,65 36,76 15,11 44,10
8.2.19.83 12,15 25,77 15,15 43,10 14,97 42,74
6,13 34,25 14,98 43,10 39,37 37,59 15,53 42,74
1С 8.3 6,61 33,33 15,58 43,86 40,00 37,88 16,23 42,74
8.3.6.2076 33,78 15,53 43,48 39,37 37,59 42,74

Висновки (з таблиці, і з особистого досвіду. Стосується лише файлової версії):

  • Через мережу можна отримати цілком нормальні цифри для роботи, якщо цю мережу нормально налаштувати, і правильно прописати шлях в 1С. Навіть перші Core i3 можуть давати 40+ папуг, що досить непогано, причому це не тільки папуги, в реальній роботі різниця теж помітна. Але! обмеженням при роботі кількох (більше 10) користувачів вже виступатиме не мережа, тут 1 Гбіт ще вистачить, а блокування при розрахованій на багато користувачів роботі (Гілев).
  • платформа 1C 8.3 в рази вимогливіша до грамотного настроювання мережі. Базові налаштування - см Гілев, але врахуйте, що впливати може все. Бачив прискорення від того, що деінсталювали (а не просто відключали) антивірус, від прибирання протоколів типу FCoE, від зміни драйверів на більш стару, але microsoft certified версію (особливо стосується дешевих карток типу асусів та довжин), від прибирання другої мережевої картки із сервера . Дуже багато варіантів, настроюйте мережу вдумливо. Цілком може бути ситуація, коли платформа 8.2 дає прийняті цифри, а 8.3 - у два чи навіть більше разів менше. Спробуйте грати з версіями платформи 8.3, іноді виходить дуже великий ефект.
  • 1С 8.3.6.2076 (може і пізніші, точну версію ще не шукав) по мережі все-таки налаштувати простіше, ніж 8.3.7.2008. Домогтися від 8.3.7.2008 нормальної роботи по мережі (у порівнянних папугах) вдалося всього кілька разів, повторити для більш загального випадку не зміг. Сильно не розбирався, але судячи з онуч від Process Explorer там запис не так йде, як у 8.3.6.
  • Незважаючи на те, що при роботі на 100Мбіт мережі графік її завантаженості невеликий (можна сказати, що мережа вільна), швидкість роботи все одно набагато менше, ніж на 1 гбіт. Причина – затримки (latency) мережі.
  • За інших рівних умов (добре працюючої мережі) для 1С 8.2 з'єднання Intel – Realtek повільніше на 10%, ніж Intel-Intel. А ось realtek-realtek взагалі можуть дати різкі просідання на рівному місці. Тому, якщо є гроші - краще скрізь тримати мережеві картки Intel, якщо грошей немає - Intel ставити тільки на сервер (ваш К.О.). Та й інструкцій з тюнінгу інтелевих мережевих карток у рази більше.
  • Налаштування антивірусів за умовчанням (на прикладі drweb 10 версії) забирають близько 8-10% папуг. Якщо налаштувати як треба (дозволити процесу 1cv8 робити все, хоч це й не безпечно) – швидкість така сама, як і без антивірусу.
  • Лінуксовим гуру не читати. Сервер з samba це здорово і безкоштовно, але якщо на сервер поставити Win XP або Win7 (а ще краще – серверні ОС), то у файловій версії 1с працюватиме швидше. Так, і samba і стек протоколів та налаштування мережі та багато іншого в debian/ubuntu добре тюнінгується, але робити це рекомендується фахівцям. Немає сенсу ставити лінукс із налаштуваннями за замовчуванням і потім говорити, що він повільно працює.
  • Досить добре перевіряти роботу дисків, підключених через net use, з допомогою fio . Принаймні буде зрозуміло, чи це проблеми з платформою 1С, чи з мережею/диском.
  • Для одного користувача варіанта не можу придумати тести (або ситуацію), де була б видна різниця між 1Гбіт і 10 Гбіт. Єдине, де 10Гбіт для файлової версії дав результат краще – це підключення дисків по iSCSI, але це тема окремої статті. Все-таки вважаю, що для файлової версії 1 Гбіт карток достатньо.
  • Чому при 100 Мбіт мережі 8.3 працює помітно швидше за 8.2 - не розумію, але факт мав місце бути. Все інше обладнання, всі інші установки абсолютно однакові, просто в одному випадку тестується 8.2, а в іншому - 8.3.
  • Не тюнінгований NFS win-win або win-lin дає 6 папуг, у таблицю включати не став. Після тюнінгу 25 отримав, але нестабільно (розбіг у вимірах більше 2 одиниць). Поки що не можу дати рекомендації щодо використання windows та NFS протоколу.
Після всіх налаштувань і перевірок запускаємо знову тест з клієнтського комп'ютера, радіємо результату, що покращився (якщо вийшло). Якщо результат покращився, папуг стало більше 30 (а особливо більше 40), користувачів одночасно працює менше 10 а робоча база все одно гальмує - практично однозначно проблеми програміста (або Ви вже досягли піку можливостей файлової версії).

Термінальний сервер (База лежить на сервері, клієнти підключаються по мережі, протокол RDP). Алгоритм за кроками:

  • Додаємо на сервер тестову базу Гільова в ту саму папку, що й основні бази. З цього сервера підключаємося, запускаємо тест. Запам'ятовуємо результат.
  • Так само, як і у файловій версії, налаштовуємо роботу процесора. Що стосується термінального сервера - процесор взагалі несе у собі основну роль (маю на увазі, що немає явних слабких місць, типу браку пам'яті чи величезної кількості непотрібного ПЗ).
  • Налаштування мережевих карток у разі термінального сервера мало впливає працювати 1с. Для забезпечення "особливого" комфорту, якщо у вас сервер видає більше 50 папуг можна погратися з новими версіями RDP протоколу, просто для комфорту роботи користувачів, швидшого відгуку та скролінгу.
  • При активній роботі великої кількості користувачів (а тут вже можна пробувати і 30 осіб на одну базу підключити, якщо постаратися), дуже бажано поставити SSD диск. Чомусь вважається, що диск не особливо впливає на роботу 1С, але всі тести проводять із включеним на запис кешем контролера, що неправильно. Тестова база маленька, вона цілком міститься у кеш, звідси й високі цифри. На реальних (великих) базах все буде зовсім інакше, тому для тестів кеш вимкнено.
Наприклад, перевірив роботу тесту Гилева з різними варіантами дисків. Диски ставив із того, що було під рукою, просто тенденцію показати. Різниця між 8.3.6.2076 та 8.3.7.2008 невелика (у варіанті Ramdisk Turbo boost 8.3.6 видає 56.18 а 8.3.7.2008 видає 55.56, в решті тестів різниця ще менша). Енергоспоживання – максимальна продуктивність, turbo boost відключений (якщо не сказано інше).
Raid 10 4x SATA 7200

ATA ST31500341AS

Raid 10 4x SAS 10kRaid 10 4x SAS 15kПоодинокий SSDRamdiskRamdiskУвімкнено кеш

RAID контролера

21,74 28,09 32,47 49,02 50,51 53,76 49,02
1С 8.2 21,65 28,57 32,05 48,54 49,02 53,19
8.2.19.83 21,65 28,41 31,45 48,54 49,50 53,19
33,33 42,74 45,05 51,55 52,08 55,56 51,55
1С 8.3 33,46 42,02 45,05 51,02 52,08 54,95
8.3.7.2008 35,46 43,01 44,64 51,55 52,08 56,18
  • Включений кеш RAID контролера нівелює всю різницю між дисками, цифри однакові і сата, і сас. Тестування з нею для невеликого обсягу даних марна і є якимось показником.
  • Для платформи 8.2 різниця у продуктивності між SATA та SSD варіантами - більш ніж удвічі. Це не помилка. Якщо під час тесту на CATA дисках дивитися на монітор продуктивності. то там очевидно видно "Активний час роботи диска (в%)" 80-95. Так, якщо включити кеш самих дисків на запис, швидкість зросте до 35, якщо включити кеш рейд контролера - до 49 (незалежно від того, які диски тестуються в даний момент). Але це - синтетичні папуги кешу, у реальній роботі при великих базах ніколи не буде 100% write cache hit ratio.
  • Швидкість навіть дешевих ССД (я тестував на Agility 3) цілком вистачає для роботи файлової версії. Ресурс запису - інша справа, тут треба дивитися в кожному конкретному випадку, зрозуміло, що у Intel 3700 він буде на порядок вище, але там і ціна відповідна. І так, я розумію, що при тестуванні SSD диска я теж тестую переважно кеш цього диска, реальні результати будуть меншими.
  • Найправильнішим (на мою думку) рішенням буде виділити 2 ССД диска в дзеркальний рейд для файлової бази (або кількох файлових баз), і нічого більше туди не поміщати. Так, при дзеркалі ССД зношуються однаково і це мінус, але хоча б від помилок електроніки контролера хоч якось застраховані.
  • Основні плюси ССД дисків для файлового варіанта з'являться тоді, коли буде багато баз і в кожній по кілька користувачів. Якщо баз 1-2 і користувачів в районі 10, то і SAS дисків вистачить. (але у будь-якому разі - дивитися завантаження цих дисків, хоча б через perfmon).
  • Основні плюси термінального сервера – у нього можуть бути дуже слабкі клієнти, і налаштування мережі на термінальний сервер впливають набагато менше (знову ваш К.О.).
Висновки: якщо на термінальному сервері запустити тест Гілєва (з того ж диска, де лежать робочі бази) і в ті моменти, коли гальмує робоча база, і тест Гільова покаже хороший результат (вище 30) - то в повільній роботі основної робочої бази винен, швидше за все, програміст.

Якщо ж і тест Гільова показуємо маленькі цифри, і у вас і процесор з високою частотою, і швидкі диски, то ось тут адміністратору треба брати як мінімум perfmon, причому із записом всіх результатів куди-небудь, і дивитися, спостерігати, робити висновки. Однозначних порад не буде.

Клієнт-серверний варіант.

Тести проводив лише з 8.2, т.к. На 8.3 все досить серйозно залежить від версії.

Для тестування вибирав різні варіанти серверів та мережі між ними, щоб показати основні тенденції.

1С: Xeon 5520

SQL: Xeon E5-2630

1С: Xeon 5520

SQL: Xeon E5-2630

Fibre channel - SSD

1С: Xeon 5520

SQL: Xeon E5-2630

Fibre channel - SAS

1С: Xeon 5650

SQL: Xeon E5-2630

1С: Xeon 5650

SQL: Xeon E5-2630

Fibre channel - SSD

1С: Xeon 5650

SQL: Xeon E5-2630

1С: Xeon 5650 =1С: Xeon 5650 =1С: Xeon 5650 =1С: Xeon 5650 =1С: Xeon 5650 =
16,78 18,23 16,84 28,57 27,78 32,05 34,72 36,50 23,26 40,65 39.37
1С 8.2 17,12 17,06 14,53 29,41 28,41 31,45 34,97 36,23 23,81 40,32 39.06
16,72 16,89 13,44 29,76 28,57 32,05 34,97 36,23 23,26 40,32 39.06

Начебто всі цікаві варіанти розглянув, якщо щось цікавить ще – пишіть у коментарі, постараюся зробити.

  • САС на СХД працює повільніше, ніж локальні ССД, навіть незважаючи на те, що СХД має великі розміри кешу. ССД і локальні та на СХД для тесту Гільова працюють з порівнянною швидкістю. Якийсь стандартний багатопотоковий тест (не тільки записи, а всього обладнання), крім навантажувального 1С з ЦУП, я не знаю.
  • Зміна сервера 1С із 5520 на 5650 дала практично подвоєння продуктивності. Так, конфігурації серверів не збігаються повністю, але тенденцію показує (нічого дивовижного).
  • Збільшення частоти на сервері SQL, звичайно, дає ефект, але не такий, як на сервері 1С, MS SQL сервер відмінно вміє (якщо його про це попросити) використовувати багатоядерність і вільну пам'ять.
  • Зміна мережі між 1С та SQL з 1 гбіт на 10 гбіт дає приблизно 10% папуг. Чекав на більше.
  • Включення Shared memory ефект дає, хоч і не 15%, як у статті описано. Робити обов'язково, благо це швидко та просто. Якщо хтось при встановленні дав серверу SQL іменований інстанс, то для роботи 1С ім'я сервера треба вказувати не FQDN (працюватиме tcp/ip), не через localhost або просто ServerName, а через ServerNameInstanceName, наприклад zz-testzztest. (Інакше буде помилка СУБД: Microsoft SQL Server Native Client 10.0: Постачальник спільної пам'яті: Не знайдено бібліотеку спільної пам'яті, яка використовується для встановлення з'єднання з SQL Server 2000 . state=1, Severity=10, native=126, line=0).
  • Для користувачів менше 100 єдиний сенс для рознесення на два окремі сервери - це ліцензія на Win 2008 Std (і старіші версії), яка підтримує лише 32 Гб ОЗУ. У всіх інших випадках - 1С і SQL однозначно треба ставити на один сервер і давати йому більше (хоча б 64 Гб) пам'яті. Давати MS SQL менше 24-28 Гб ОЗУ - невиправдана жадібність (якщо Ви думаєте, що у Вас цієї пам'яті йому вистачає і все нормально працює - може Вам і файлової версії 1С вистачило б?)
  • Наскільки гірше працює зв'язка 1С і SQL у віртуальній машині – тема окремої статті (підказка – помітно гірша). Навіть у Hyper-V все не так однозначно.
  • Збалансований режим продуктивності – це погано. Результати цілком корелюють із файловою версією.
  • У багатьох джерелах написано, що режим налагодження (ragent.exe -debug) дає сильне зниження продуктивності. Ну знижує, так, але 2-3% я не назвав би значним ефектом.
Тут буде найменше рекомендацій для конкретного випадку, т.к. гальма при клієнт-серверному варіанті роботи найскладніший випадок, і все налаштовується дуже індивідуально. Найпростіше сказати, що для нормальної роботи потрібно взяти окремий сервер ТІЛЬКИ для 1C і MS SQL, поставити туди процесори з максимальною частотою (вище 3 ГГц), SSD диски для бази і більше пам'яті (128+), віртуалізацію не використовувати. Допомогло - відмінно, Вам пощастило (і таких везунчиків буде дуже багато, більше половини проблем вирішуються адекватним апгрейдом). Якщо ні, то будь-які інші варіанти вже вимагають окремого розгляду та налаштувань.

Реалізація інфраструктури 1С з урахуванням Linux тема древня, але досі актуальна. Ми нещодавно публікували статтю Сервер додатків 1С на Linux, але залишилося відкритим питання реальної продуктивності порівняно з рішенням під Windows. Тестування проводилося і в ручному режимі, але для об'єктивності результатів я опублікую підсумки тесту Гільова, що пройшов на одній апаратній платформі з використанням різних ОС: Linux CentOS 7 і MS Windows Server 2012.

Як сервер використовувався стенд з двома процесорами Intel Xeon E5-2670, 8х4Гб ОЗУ та SSD Intel.

Зведена таблиця середніх значень результатів тесту Гільова.

Приклади результатів







Прийнятні результати тестування, простота розгортання та низькі витрати на ліцензування спонукали нас створити закінчений продукт: Сервер 1С на базі Linux з коробки.

Кожна модель має зручний конфігуратор, в якому можна підібрати оптимальну конфігурацію для своїх завдань. Ось про це трохи докладніше.

Створення калькулятора обчислювальної потужності сервера 1С – завдання не тривіальне. А створення універсального конфігуратора 1С під усі можливі випадки практично неможлива.

Напевно на хабрі багато адмінів, у яких своє уявлення про навантаження та вимоги до обчислювальної потужності серверів під 1С (Ваші коментарі підвищать цінність цієї статті). Є й офіційні рекомендації 1С, в яких працюватиме все на всьому…

Але все ж таки є основні параметри, які можна прорахувати, застосовно до типової схеми експлуатації. Знаючи скільки ресурсів процесора та оперативної пам'яті забирає термінальна сесія, скільки IOPS зажадає SQL при певній кількості користувачів, і відштовхуючись від результатів численних тестів - ми розробили конфігуратор типового рішення під 1С.

Безумовно, кожен випадок унікальний і вимагає детального пресейлу, але для орієнтовного розрахунку достатньо вказати кількість користувачів, тип бази, обсяг поточної бази та вибрати необхідні ліцензії.

Для порівняння вартості готового рішення на базі Linux та Windows наведу приклад з конфігуратора з роздрібними цінами.

Сервер на 20 користувачів з базою SQL до 80Гб, ліцензією 1С: Бухгалтерія 8 ПРОФ, на базі Linux CentOS буде коштувати 522 759,43 руб. Аналогічна конфігурація з урахуванням Windows - 1 036 279,43 крб.

Модельний ряд серверів для STSS Flagman 1С складається з 3 моделей як для Linux, так і для Windows.


1C113.5-020UL- Сервер 1С початкового рівня, підтримка до 20 користувачів з базою SQL. Обсяг дискового простору розраховується з урахуванням зростання бази на 20% на рік протягом трьох років. Масив RAID1 будується з урахуванням Enterprise SSD Intel. Можливе встановлення подвійного БП та додаткових дисків під «холодні» дані. Доступний вибір програмних сервісів: PostgreSQL, xrdp та httpd.

1C216.4-200UL- модель на базі 2-процесорної платформи, що забезпечує роботу 1C-інфраструктури до 200 одночасних підключень. Сховище розраховується за таким самим принципом - розмір бази з урахуванням зростання, але будується на основі масиву RAID10 з 4хSSD необхідного обсягу.

1C217.2-050UL-REF- це рішення для замовників з обмеженим бюджетом, побудоване на базі сервера відновленого на нашому виробництві (після гарантійної заміни, демо-фонд та ін.) Сервери проходять такі ж тести навантаження перед відвантаженням, як і нові моделі, але мають скорочений термін гарантійного обслуговування ( 1 рік). Сервер підтримує до 50 підключень і, без урахування ліцензій, коштує всього 203 705,00 руб., З масивом під базу 40Гб.


1C113.5-020UW- Сервер 1С початкового рівня, підтримка до 20 користувачів з базою SQL. Обсяг дискового простору розраховується з урахуванням зростання бази на 20% на рік протягом трьох років. Масив RAID1 будується з урахуванням Enterprise SSD Intel. Можливе встановлення подвійного БП та додаткових дисків під «холодні» дані.

1C216.4-200UW- Модель на базі Windows з підтримкою до 200 користувачів. Сховище будується на основі масиву RAID10 із 4хSSD необхідного об'єму.

1C217.2-050UW-REF- Та ж платформа, що і у рішенні на базі Linux. Бюджетний варіант на 50 з'єднань, гарантія 1 рік.

Як платформа 1С у всіх моделях можна вибрати такі ліцензії:

1С: Управління невеликою фірмою 8 ПРОФ
1С: Управління торгівлею 8 ПРОФ
1С: Бухгалтерія 8 ПРОФ
1С: Бухгалтерія 8 КОРП
1С: Зарплата та управління персоналом 8 ПРОФ
1С: Зарплата та управління персоналом 8 КОРП
1С: Документообіг 8 ПРОФ
1С: Документообіг 8 КОРП

Якщо замовник має достатню експертизу для підбору сервера під 1С, він може скористатися класичними моделями серверного обладнання. Але якщо такої експертизи немає, то, сподіваюся, наш конфігуратор серверів для 1С допоможе зробити оптимальний вибір системи.

Дякую за увагу! Сподіваюся, що хабра-користувачі, близькі до цієї теми, поділяться своїм досвідом у підборі обладнання під 1С в коментарях.

Карта сайту