| Установка процесорних квот 1C (і не тільки) з використанням програми ThreadMaster |
|
|
|
|
Олександр Маляев Вступ Напевно, всі власники терміналів-серверів рано або пізно зіштовхуються із проблемою постійного й повного завантаження процесора (процесорів) і істотного вповільнення роботи всіх користувачів. Причин цьому може бути кілька. Це й велика кількість користувачів у цілому, і недосконалість 1С у частини механізму транзакцій, і "важкі" звіти. Рішень проблеми теж може бути кілька. Оптимізація сервера в цілому (апгрейд, настроювання ОС), рознесення окремих баз на різні термінала-сервера, оптимізація алгоритмів звітів і модулів, зберігання баз на SQL-сервері. Як виявилося, є ще один спосіб продовжити життя вашій техніці - завдання квот на використання процесорного часу. Пошуки істини Думка ця мені прийшла давно. Півроку я мучився питанням: чому не можна зробити квотування процесорного часу на Windows 2000 Server у той час, коли на UNIX-системах це робиться без проблем? Копав інтернет, запитував системних адміністраторів. У відповідь одне - не можна цього зробити принципово, можна лише задавати пріоритети процесам. Один раз наткнувся на статтю, де обмовлялося, що можливо завдання процесорних квот з використанням продуктів сторонніх виробників. Більше ніякої інформації не давалося, вказувався лише перелік програмних продуктів, що справляються із цим завданням, і пропонувалося випробувати кожного з них, щоб вибрати для себе підходящий. Про всякий випадок приведу цей перелік:
Особисто я випробував всі програми із цього списку. Одні з них були надто важкими пакетами-монстрами типу MS Office, досить складними в освоєнні й настроюванні, інші вирішували узконаправленную завдання й не дозволяли вирішити проблему "на корені". А саме головне - всі вони були платними, без підтримки вітчизняними дилерами й без російської документації. Дуже жаль, що та програма, що дійсно виявилася потрібної, стояла в самому кінці списку. Інакше б я зумів заощадити багато часу. Ну що ж, сподіваюся, ця стаття допоможе заощадити час вам. Період удивлений Отже, у підсумку я зупинився на програмі ThreadMaster. Скачивание програми із сайту розроблювача ввело мене спочатку в стан ступору. Уже звиклий до дистрибутивів розміром кілька десятків мегабайт, я не міг повірити в ефективність програми, чий архів займав 27 кілобайт. Я навіть не помітив, як вона скачала - дуже вуж швидко промайнуло віконце завантаження. Але нічого, глянувши на диск, я виявив, що там дійсно лежить маленький архів, а в ньому - бажаний плід. Друга стадія подиву настала після розгляду фрази "Freeware License". Як виявилося, не все, що безкоштовно - погано. Linux і матеріали сайту 1c.proclub.ru яскравий тому приклад. Ну й нарешті, третя стадія настала тоді, коли я зрозумів, що інсталятора й GUI-інтерфейсу в цієї програми немає й не предвидется. Установка Програма ThreadMaster установлюється після розпакування архіву запуском командного файлу "Install.cmd". При цьому створюється папка програми в каталозі "System32", створюються ключі реєстру й відразу ж запускається служба "ThreadMast.exe". Ніякого перезавантаження комп'ютера при цьому не потрібно. Для того, щоб припинити роботу програми, досить зупинити відповідну службу. Для деінсталяції програми необхідно запустити командний файл "Uninst.cmd", якому можна скачати із сайту розроблювача. Настроювання Тому що ThreadMaster не має GUI-інтерфейсу, всі настроювання виробляються зміною тих або інших ключів реєстру в гілці "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesThreadMaster" . Всі зміни набувають чинності тільки після перезапуску служби. Розглянемо найбільш важливі настроювання.
Глобальні настроювання. "HKEY_LOCAL_" Цей ключ задає відрізок часу, протягом якого буде вироблятися усереднений аналіз завантаження процесора процесом.орого буде вироблятися усереднений аналіз завантаження процесора процесом. Значення параметра визначається в інтервалі від 10 до 100 (секунди). "HKEY_LOCAL_" Цей ключ задає команду (додаток, командний файл), що буде виконуватися у випадку примусового зниження відсотка завантаження процесом.орая буде виконуватися у випадку примусового зниження відсотка завантаження процесом. Можна застосовувати для створення своїх систем статистики, для настроювання оповіщень, для примусового зняття або перезавантаження процесу й в інших випадках. Приклад створення командних файлів з використанням змінних контексту ThreadMaster (простите за такий виклад понять - по іншому не можу, занадто довго з 1С працюю) можна подивитися у файлах "ThreadSaveLog.cmd" і "ThreadLog.cmd". "HKEY_LOCAL_" Цей ключ задає команду (додаток, командний файл), що буде виконуватися у випадку зняття процесу із примусового зниження відсотка завантаження.т виконуватися у випадку зняття процесу із примусового зниження відсотка завантаження. Локальні настроювання. Виключення. Статистика При своїй роботі програма ThreadMaster збирає статистичну інформацію про кількість застосованих до кожного процесу обмежень, а також про час, що процес провів у стані обмеження. Цю інформацію можна використати для того, щоб розібратися, які користувачі і які процеси найбільше вантажать сервер, і вжити відповідних заходів. Опишу ті гілки реєстру, де ця статистика зберігається. "HKEY_LOCAL_" У цій гілці зберігаються лічильники обмежень для кожного процесу.>У цій гілці зберігаються лічильники обмежень для кожного процесу. "HKEY_LOCAL_" У цій гілці зберігаються лічильники часу, що процес провів у стані обмеження.четчики часу, що процес провів у стані обмеження. Хитрості От чого немає в програмі ThreadMaster, так цей поділ настроювань на різні категорії користувачів. Можливість класичного визначення настроювань для конкретного користувача теж відсутній. Виникає питання: як бути? Я все-таки знайшов спосіб здійснити цю операцію. І нехай мене назвуть збоченцем, нехай повторюють, що це неправильно й криво, але всі таки це СПОСІБ. А ті незручності, які виникають внаслідок використання цього методу, це лише мала плата за безкоштовність і унікального функціонала програми. Поясню суть. Завдання: Установити користувачеві "П1" , що активно користуються "важкими" звітами, квоту 10%, користувачеві "П2", що інтенсивно проводить документи, квоту 50%, а користувачеві "П3", що займається конфігуруванням 1С, скасувати квоту на 1С. Рішення: Створюємо 3 копії файлу "1cv7.exe" для кожного користувача в тім же каталозі, де перебувають програмні файли 1С. Першу копію перейменуємо в "1cv7_П1.exe", другу - в "1cv7_П2.exe", третю - в "1cv7_П3.exe". При необхідності встановимо відповідні права на доступ користувачів до цих файлів. Ярлики запуску 1С настроїмо для кожного користувача свої, ведучі до того або іншого файлу. А далі все просто - у гілці "Applications" додаємо ключі для першої й другої копій, установлюємо їм значення 10 і 50 відповідно, а в гілку "Exceptions" додаємо ключ для третьої копії. У такий спосіб можна встановлювати квоти як для конкретного користувача, так і для груп користувачів. Висновок Використання процесорних квот, на жаль, не є універсальним і єдино правильним способом стабілізувати роботу термінала-сервера. Як я вже говорив у вступі, існує цілий ряд методів збільшити швидкодію 1С и вирішити проблему "вузьких місць". Але квотування процесорного часу допоможе спочатку тим, хто вже почав замислюватися про вкладення коштів в апгрейд техніки й програмного забезпечення, і тим самим забезпечити більшу віддачу капітальним вкладенням в інформаційні технології. Також ця методика практично у всіх ситуаціях вирішить проблему завантаження процесора "важкими" звітами, забезпечивши більше оперативне проведення документів і роботу з обліковими даними. Грамотно підібрані й протестированние параметри ThreadMaster дозволять збільшити число одночасних користувальницьких сеансів, справедливо розділити ресурси між працівниками й програмами залежно від їхніх реальних потреб і ступеня важливості оперативного одержання й уведення інформації. Крім того, ця стаття є практично унікальною у своєму роді, корисної для адміністраторів серверних операційних систем, тому що доводить, що використання процесорних квот можливо й в Windows 2000 Server, а не тільки в Linux. Використані матеріали й технічні засоби Програма ThreadMaster версії 1.12 зборки 182 для операційних систем Windows 2000/2003 Server ( http://threadmaster.tripod.com/ ). Стаття "Настроювання продуктивності термінального сервера" ( http://citrix.pp.ru/madden.html ). Сервер P4 2400 / 1 Гб / 2*80 Гб IDE / 1*18 Гб SCSI / Windows 2000 Server / TSE / 20 users. |
| « Пред. | След. » |
|---|


