Поради щодо автоматизації. Гальма на файловій базі – як уникнути (з недавнього досвіду) Як прискорити проведення документів 1с 8.3

Як прискорити роботу в 1С:Бухгалтерія 8.3 (редакція 3.0) або відключаємо регламентні та фонові завдання

2019-01-15T13:28:19+00:00

Ті з вас, хто вже встиг перейти на нову редакцію 1С: Бухгалтерія 8.3 (редакція 3.0) встигли помітити, що працювати вона стала повільнішою, ніж двійка. Якісь незрозумілі підгальмовування, нескінченні фонові завдання кілька разів на день, які її ніхто не просив виконувати без нашого відома.

Мені мої бухгалтери одразу після переходу так і заявили, що нова редакція 1С:Бухгалтерія 3.0 порівняно з попередніми відверто гальмує! І працювати просто неможливо.

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

Ну, наприклад, навіщо нам по сто разів на день запускати завдання "Вилучення тексту", якщо ми не здійснюємо повнотекстовий (бухгалтери, не лякайтеся) пошук по всіх об'єктах нашої бази.

Або навіщо постійно завантажувати курси валют, якщо ми не маємо валютних операцій або ми робимо їх зрідка (і перед цим і самі можемо натиснути кнопку завантажити курси).

Те саме стосується і постійної спроби 1С підключитися до сайту та перевірити та оновити класифікатори банків. Навіщо? Я й сам натисну кнопку оновити класифікатори, якщо не знайду потрібного банку за його БІК.

Про те, як це зробити за пунктами нижче.

1. Зайдіть до розділу "Адміністрування" і на панелі дій виберіть "Обслуговування" ():

2. У вікні знайдіть і виберіть пункт "Регламентні та фонові завдання":

3. Відкрийте кожне завдання, яке має у колонці "Увімк." стоїть галка.

4. Зніміть позначку з пункту "Увімкнено" та натисніть кнопку "Записати та закрити".

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

При цьому деякі з відключених вами регламентних завдань платформа все одно включить назад.

До нас часто приходять питання про те, що гальмує 1с, особливо при переході на версію 1с 8.3, дякуючи нашим колегам з ТОВ "Інтерфейс", ми докладно розповідаємо:

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

Невелике дослідження російськомовних ресурсів по 1С показало, що це питання старанно обходиться стороною, у разі проблем зазвичай радиться перехід до клиент-серверному чи термінальному режиму. А також практично прийнятою стала думка, що зміни на керованому додатку працюють істотно повільніше стандартних. Як правило, аргументи наводяться "залізні": "ось Бухгалтерія 2.0 просто літала, а "трійка" ледве ворушиться", безумовно, для істини в цих словах є, тому спробуємо розібратися.

Споживання ресурсів, перший погляд

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

Для тестування ми взяли дві віртуальні машини під керуванням Windows Server 2012 R2 та Windows 8.1 відповідно, виділивши їм по 2 ядра хостового Core i5-4670 та 2 ГБ оперативної пам'яті, що відповідає приблизно середній офісній машині. Сервер розмістили на RAID 0 масиві із двох WD Se, а клієнт на аналогічному масиві із дисків загального призначення.

Як піддослідні бази ми вибрали кілька конфігурацій Бухгалтерії 2.0, релізу 2.0.64.12 , яку потім оновили до 3.0.38.52 всі конфігурації запускалися на платформі 8.3.5.1443 .

Перше, що звертає на себе увагу, це розмір інформаційної бази "трійки", що виріс, причому істотно виріс, а також набагато більші апетити до оперативної пам'яті:

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

Тим часом інформаційна база 1С – це повноцінна СУБД свого формату, яка теж потребує обслуговування і для цього навіть є інструмент, який називається Тестування та виправлення інформаційної бази. Можливо злий жарт зіграла назва, яка начебто має на увазі, що це інструмент для усунення проблем, але низька продуктивність - теж проблема, а реструктуризація та реіндексація, разом зі стиском таблиць - добре відомі будь-якому адміністратору СУБД засоби оптимізації баз даних. Перевіримо?

Після застосування обраних дій база різко "схудла", ставши навіть меншою за "двійку", яку теж ніхто ніколи не оптимізував, також трохи зменшилося споживання ОЗУ.

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

Мережа

Пропускна здатність мережі - один з найважливіших параметрів для мережних додатків, особливо, як 1С у файловому режимі, що переміщують по мережі значні обсяги даних. Більшість мереж невеликих підприємств побудовано на базі недорогого 100 Мбіт/с обладнання, тому ми розпочали тестування саме з порівняння показників продуктивності 1С у мережах 100 Мбіт/с та 1 Гбіт/с.

Що відбувається під час запуску файлової бази 1С по мережі? Клієнт завантажує в тимчасові папки досить багато інформації, особливо якщо це перший, "холодний", запуск. На 100 Мбіт/с ми очікуємо впораємося в ширину каналу і завантаження може зайняти значний час, у нашому випадку близько 40 секунд (ціна поділу графіка - 4 сек).

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

Як можна помітити з графіків, Бухгалтерія 2.0 завантажується за будь-якої швидкості мережі вдвічі швидше, перехід зі 100 Мбіт/с на 1 Гбіт/с дозволяє прискорити час завантаження вчетверо. Різниці між оптимізованою та неоптимізованою базами "трійки" в даному режимі не спостерігається.

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

Тут уже цікавіше, що оптимізована база "трійки" в 100 Мбіт/с мережі працює з такою ж швидкістю, як і "двійка", а неоптимізована показує вдвічі гірший результат. На гігабіті співвідношення зберігаються, неоптимізована "трійка" також вдвічі повільніша за "двійку", а оптимізована відстає на третину. Також перехід на 1 Гбіт/с дозволяє скоротити час проведення втричі для редакції 2.0 та вдвічі для 3.0.

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

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

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

То чому ж 1С гальмує? Розбиратимемося далі.

Дискова підсистема сервера та SSD

У минулому матеріалі ми досягли збільшення продуктивності 1С розмістивши бази на SSD. Чи можливо недостатньо продуктивності дискової підсистеми сервера? Ми зробили виміри продуктивності дискового сервера під час групового проведення одразу у двох базах та отримали досить оптимістичний результат.

Незважаючи на відносно велику кількість операцій введення-виведення в секунду (IOPS) - 913, довжина черги не перевищила 1,84, що для дводискового масиву дуже добрий результат. Виходячи з нього можна припустити, що дзеркала зі звичайних дисків буде достатньо для нормальної роботи 8-10 мережевих клієнтів у важких режимах.

То чи потрібний SSD на сервері? Найкраще відповісти на це питання допоможе тестування, яке ми провели за аналогічною методикою, мережне підключення скрізь 1 Гбіт/с, результат також виражений у відносних значеннях.

Почнемо зі швидкості завантаження бази.

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

Перейдемо до перепроводу:

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

На повсякденних завданнях картина аналогічна:

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

Дискова підсистема клієнта та SSD

Вплив SSD на швидкість роботи локально встановленої 1С ми розбирали в попередньому матеріалі, багато зі сказаного справедливо і для роботи в мережевому режимі. Справді, 1С досить активно використовує дискові ресурси, зокрема й у фонових і регламентних завдань. На малюнку нижче можна побачити, як Бухгалтерія 3.0 досить активно звертається до диска протягом 40 секунд після завантаження.

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

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

Оперативна пам'ять

Незважаючи на те, що оперативність зараз непристойно дешева, багато робочих станцій продовжують працювати з тим обсягом пам'яті, який був встановлений при покупці. Ось тут і чатують на перші проблеми. Вже виходячи з того, що в середньому "трійці" потрібно близько 500 МБ пам'яті, можна припустити, що загального обсягу оперативної пам'яті в 1ГБ для роботи з програмою буде недостатньо.

Ми зменшили пам'ять системи до 1 Гб та запустили дві інформаційні бази.

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

До чого це призведе? Подивимося, як використовуються ресурси системи у важких операціях, наприклад, запустимо групове переведення відразу у двох базах. Спочатку на системі з 2 ГБ оперативної пам'яті:

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

Тепер зменшимо пам'ять до 1 ГБ:

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

При цьому навіть суб'єктивна робота з двома відкритими базами на системі з 1 ГБ пам'яті виявилася вкрай некомфортною, довідники та журнали відкривалися із значною затримкою та активним зверненням до диску. Наприклад, відкриття журналу Реалізація товарів та послуг зайняло близько 20 секунд і супроводжувалося весь цей час високою дисковою активністю (виділено червоною лінією).

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

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

Недолік оперативної пам'яті - основна причина через яку робота з новими конфігураціями 1С виявляється некомфортною. Мінімально відповідними слід вважати зміни з 2 ГБ пам'яті на борту. При цьому враховуйте, що в нашому випадку були створені "тепличні" умови: чиста система, запущено лише 1С та диспетчер завдань. У реальному житті на робочому комп'ютері зазвичай відкриті браузер, офісний пакет, працює антивірус і т.д., тому виходьте з потреби 500 МБ на одну базу плюс деякий запас, щоб при важких операціях ви не зіткнулися з недоліком пам'яті та різким зниженням продуктивності.

Процесор

Центральний процесор без перебільшення можна назвати серцем комп'ютера, оскільки саме він, зрештою, здійснює обробку всіх обчислень. Щоб оцінити його роль, ми провели ще один набір тестів, такий же, як і для оперативної пам'яті, зменшивши кількість доступних віртуальній машині ядер з двох до одного, при цьому тест виконувався двічі з об'ємами пам'яті в 1 ГБ та 2 ГБ.

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

Висновки

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

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

Потім слід звернути увагу на дискову, покупка SSD навряд чи буде гарним вкладенням грошей, а ось замінити диск більш сучасним буде не зайвим. Різницю між поколіннями жорстких дисків можна оцінити за таким матеріалом: Огляд двох недорогих дисків серії Western Digital Blue 500 ГБ та 1 ТБ.

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

Сподіваємося, цей матеріал допоможе вам швидше розібратися в питанні "чому гальмує 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С.

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

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

На Інфостарті подібні статті є, у відповідних розділах ставитиму на них посилання (якщо пропущу щось - прохання підказати у коментарях, додам). Отже, припустимо у вас гальмує 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с?

Множник

Core speed (частота), GHz

CPU-Z Single Thread

Тест Гільова Ramdisk

файловий варіант

Тест Гільова Ramdisk

клієнт-сервер

Без Turbo boost

C-state off, Turbo boost

53.19

40,32

C-state on, Turbo boost

1080

53,13

23,04

А в результаті виходить, що за тестами продуктивності ЦПУ варіант з множником 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с. Можна зробити \\server\share, можна \\192.168.0.1\share, можна net use z: \\192.168.0.1\share (і в деяких випадках такий спосіб теж спрацює, але далеко не завжди) і потім вказувати диск Z. Начебто всі ці шляхи вказують на те саме місце, але для 1С є тільки один спосіб, що досить стабільно дає нормальну продуктивність. Так ось, правильно робити треба так:

У командному рядку (або в політиках, або як Вам зручно) - робите net use DriveLetter:\server\share. Приклад: net use m: \\server\bases. Я спеціально наголошую, НЕ 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. Цифри наводжу не всі, а найцікавіші, щоб було з чим порівнювати.

Win 2008 - Win 2008

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

Win 2008 - Win 2008

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

Win 2008 - Win 2008

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

Win 2008 - Win 2008

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

Win 2008 - Win 7

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

Win 2008 - Debian

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

Win 2008 - Win 2008

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

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). Алгоритм за кроками:

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

1. Так само, як і у файловій версії, налаштовуємо роботу . Що стосується термінального сервера - процесор взагалі несе у собі основну роль (маю на увазі, що немає явних слабких місць, типу браку пам'яті чи величезної кількості непотрібного ПЗ).

2. Налаштування мережевих карток у разі термінального сервера мало впливає працювати 1с. Для забезпечення "особливого" комфорту, якщо у вас сервер видає більше 50 папуг можна погратися з новими версіями RDP протоколу, просто для комфорту роботи користувачів, швидшого відгуку та скролінгу.

3. При активній роботі великої кількості користувачів (а тут вже можна пробувати і 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 10k

Raid 10 4x SAS 15k

Поодинокий SSD

Ramdisk

Увімкнено кеш

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 все досить серйозно залежить від версії.

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

SQL: Xeon E5-2630

SQL: Xeon E5-2630

Fibre channel - SSD

SQL: Xeon E5-2630

Fibre channel - SAS

SQL: Xeon E5-2630

Local SSD

SQL: Xeon E5-2630

Fibre channel - SSD

SQL: Xeon E5-2630

Local SSD

1С: Xeon 5650 =

1С: Xeon 5650 =

Shared memory

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, а через ServerName\InstanceName, наприклад zz-test\zztest. (Інакше буде помилка СУБД: 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% я не назвав би значним ефектом.

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

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

Невелике дослідження російськомовних ресурсів по 1С показало, що це питання старанно обходиться стороною, у разі проблем зазвичай радиться перехід до клиент-серверному чи термінальному режиму. А також практично прийнятою стала думка, що зміни на керованому додатку працюють істотно повільніше стандартних. Як правило, аргументи наводяться "залізні": "ось Бухгалтерія 2.0 просто літала, а "трійка" ледве ворушиться, безумовно, частка істини в цих словах є, тому спробуємо розібратися.

Споживання ресурсів, перший погляд

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

Для тестування ми взяли дві віртуальні машини під керуванням Windows Server 2012 R2 та Windows 8.1 відповідно, виділивши їм по 2 ядра хостового Core i5-4670 та 2 ГБ оперативної пам'яті, що відповідає приблизно середній офісній машині. Сервер розмістили на RAID 0 масиві із двох, а клієнт на аналогічному масиві із дисків загального призначення.

Як піддослідні бази ми вибрали кілька конфігурацій Бухгалтерії 2.0, релізу 2.0.64.12 , яку потім оновили до 3.0.38.52 всі конфігурації запускалися на платформі 8.3.5.1443 .

Перше, що звертає на себе увагу, це розмір інформаційної бази "трійки", що виріс, причому істотно виріс, а також набагато більші апетити до оперативної пам'яті:

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

Тим часом інформаційна база 1С – це повноцінна СУБД свого формату, яка теж потребує обслуговування і для цього навіть є інструмент, який називається Тестування та виправлення інформаційної бази. Можливо злий жарт зіграла назва, яка начебто має на увазі, що це інструмент для усунення проблем, але низька продуктивність - теж проблема, а реструктуризація та реіндексація, разом зі стиском таблиць - добре відомі будь-якому адміністратору СУБД засоби оптимізації баз даних. Перевіримо?

Після застосування обраних дій база різко "схудла", ставши навіть меншою за "двійку", яку теж ніхто ніколи не оптимізував, також трохи зменшилося споживання ОЗУ.

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

Мережа

Пропускна здатність мережі - один з найважливіших параметрів для мережних додатків, особливо, як 1С у файловому режимі, що переміщують по мережі значні обсяги даних. Більшість мереж невеликих підприємств побудовано на базі недорогого 100 Мбіт/с обладнання, тому ми розпочали тестування саме з порівняння показників продуктивності 1С у мережах 100 Мбіт/с та 1 Гбіт/с.

Що відбувається під час запуску файлової бази 1С по мережі? Клієнт завантажує в тимчасові папки досить багато інформації, особливо якщо це перший, "холодний", запуск. На 100 Мбіт/с ми очікуємо впораємося в ширину каналу і завантаження може зайняти значний час, у нашому випадку близько 40 секунд (ціна поділу графіка - 4 сек).

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

Як можна помітити з графіків, Бухгалтерія 2.0 завантажується за будь-якої швидкості мережі вдвічі швидше, перехід зі 100 Мбіт/с на 1 Гбіт/с дозволяє прискорити час завантаження вчетверо. Різниці між оптимізованою та неоптимізованою базами "трійки" в даному режимі не спостерігається.

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

Тут уже цікавіше, що оптимізована база "трійки" в 100 Мбіт/с мережі працює з такою ж швидкістю, як і "двійка", а неоптимізована показує вдвічі гірший результат. На гігабіті співвідношення зберігаються, неоптимізована "трійка" також вдвічі повільніша за "двійку", а оптимізована відстає на третину. Також перехід на 1 Гбіт/с дозволяє скоротити час проведення втричі для редакції 2.0 та вдвічі для 3.0.

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

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

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

То чому ж 1С гальмує? Розбиратимемося далі.

Дискова підсистема сервера та SSD

У минулому матеріалі ми досягли збільшення продуктивності 1С розмістивши бази на SSD. Чи можливо недостатньо продуктивності дискової підсистеми сервера? Ми зробили виміри продуктивності дискового сервера під час групового проведення одразу у двох базах та отримали досить оптимістичний результат.

Незважаючи на відносно велику кількість операцій введення-виведення в секунду (IOPS) - 913, довжина черги не перевищила 1,84, що для дводискового масиву дуже добрий результат. Виходячи з нього можна припустити, що дзеркала зі звичайних дисків буде достатньо для нормальної роботи 8-10 мережевих клієнтів у важких режимах.

То чи потрібний SSD на сервері? Найкраще відповісти на це питання допоможе тестування, яке ми провели за аналогічною методикою, мережне підключення скрізь 1 Гбіт/с, результат також виражений у відносних значеннях.

Почнемо зі швидкості завантаження бази.

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

Перейдемо до перепроводу:

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

На повсякденних завданнях картина аналогічна:

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

Дискова підсистема клієнта та SSD

Вплив SSD на швидкість роботи локально встановленої 1С ми розбирали в , багато зі сказаного справедливо і для роботи в мережевому режимі. Справді, 1С досить активно використовує дискові ресурси, зокрема й у фонових і регламентних завдань. На малюнку нижче можна побачити, як Бухгалтерія 3.0 досить активно звертається до диска протягом 40 секунд після завантаження.

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

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

Оперативна пам'ять

Незважаючи на те, що оперативність зараз непристойно дешева, багато робочих станцій продовжують працювати з тим обсягом пам'яті, який був встановлений при покупці. Ось тут і чатують на перші проблеми. Вже виходячи з того, що в середньому "трійці" потрібно близько 500 МБ пам'яті, можна припустити, що загального обсягу оперативної пам'яті в 1ГБ для роботи з програмою буде недостатньо.

Ми зменшили пам'ять системи до 1 Гб та запустили дві інформаційні бази.

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

До чого це призведе? Подивимося, як використовуються ресурси системи у важких операціях, наприклад, запустимо групове переведення відразу у двох базах. Спочатку на системі з 2 ГБ оперативної пам'яті:

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

Тепер зменшимо пам'ять до 1 ГБ:

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

При цьому навіть суб'єктивна робота з двома відкритими базами на системі з 1 ГБ пам'яті виявилася вкрай некомфортною, довідники та журнали відкривалися із значною затримкою та активним зверненням до диску. Наприклад, відкриття журналу Реалізація товарів та послуг зайняло близько 20 секунд і супроводжувалося весь цей час високою дисковою активністю (виділено червоною лінією).

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

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

Недолік оперативної пам'яті - основна причина через яку робота з новими конфігураціями 1С виявляється некомфортною. Мінімально відповідними слід вважати зміни з 2 ГБ пам'яті на борту. При цьому враховуйте, що в нашому випадку були створені "тепличні" умови: чиста система, запущено лише 1С та диспетчер завдань. У реальному житті на робочому комп'ютері зазвичай відкриті браузер, офісний пакет, працює антивірус і т.д., тому виходьте з потреби 500 МБ на одну базу плюс деякий запас, щоб при важких операціях ви не зіткнулися з недоліком пам'яті та різким зниженням продуктивності.

Процесор

Центральний процесор без перебільшення можна назвати серцем комп'ютера, оскільки саме він, зрештою, здійснює обробку всіх обчислень. Щоб оцінити його роль, ми провели ще один набір тестів, такий же, як і для оперативної пам'яті, зменшивши кількість доступних віртуальній машині ядер з двох до одного, при цьому тест виконувався двічі з об'ємами пам'яті в 1 ГБ та 2 ГБ.

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

Висновки

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

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

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

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

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

  • Теги:

Please enable JavaScript to view the