Онлайн-курс Data Engineer - для розробників, адміністраторів СУБД і всіх, хто прагне підвищити професійний рівень, освоїти нові інструменти і займатися цікавими завданнями в сфері роботи з великими даними. Курс не для новачків - потрібно пройти.
Є у мене в господарстві 2 сервера терміналів Windows Server 2008 R2, на кожному з яких активно працюють 25-30 чоловік. Займаються звичайному офісному роботою: створення і редагування документів в Microsoft Office 2010, робота з поштою в Microsoft Outlook 2010 серфінг в інтернеті, робота з 1С: Підприємство 8.3 та інша офісна дрібнота. Забезпечують їх роботу 2 досить потужних сервера з двома Xeon на кожному борту, 32 Гб оперативної пам'яті, RAID SAS контролер c дисками 10k і 15k.
Поки кількість користувачів не наблизилося до 30-ти на кожному сервері, якихось відчутних гальмувань, що заважають нормальній роботі, не було. Коли ж підійшли до цієї цифри, сервера стали відчутно гальмувати, дратуючи користувачів. Гальмування виражалися в затримках звичайних операцій редагування, створення, переміщення файлів, навігації по папках. Все ніби працює, але якось повільно, дратує, іноді картинка завмирає на 1-2-3 секунди, потім триває робота.
Почав розбиратися, в чому ж справа. В першу чергу подумав на дискову підсистему, яка просто перестала справлятися з навантаженням. Щоб переконатися в цьому, відкрив оснащення "Продуктивність», додав лічильник «Середня довжина черги диска» (Average Disk Length Queue / sec), примірник «_Total» і став стежити. Мої підтвердження виправдалися. Середнє значення було в районі 2-4, що погано. Гальма починають відчуватися при значеннях від 1.5 і вище. Рекомендації в інтернеті говорять про те, що при значенні вище 1 дискова підсистема не справляється з навантаженням і треба щось робити зі збільшення продуктивності. У моєму випадку покращувати продуктивність це означає купувати нові, досить дорогі серверні SSD диски, так як зараз і так стоять дорогі і швидкі SAS диски зі швидкістю обертання 15к.
Я вирішив провести ще трохи тестів. Вибрав той же лічильник, але в якості примірника взяв 2 логічних диска окремо. Ось тут мене чекав сюрприз. Виявляється, навантаження було не на всі диски, а тільки на логічний системний розділ C :, де встановлена операційна система. Всі призначені для користувача дані зберігаються на диску D :, навантаження на нього була в межах 0.2-0.5. Я ж спочатку припускав зворотне. Думав, що навантажений розділ з одними даними, де зберігаються багатогігабайтні PST файли Outlook, які постійно завантажуються під час роботи поштового клієнта.
Варто розповісти про рівні рейд, які я використовував. Тепер стало ясно, що розбивав диски я не правильно, чекаючи підвищене навантаження на розділи з одними даними. Система Windows Server 2008 R2 встановлена на RAID-1, що складається з двох дисків. Призначені для користувача дані лежать на RAID-5, що складається з 4-х дисків. Чим я керувався, коли розбивав диски саме так, зараз вже не пам'ятаю, але це явно неправильно. Думаю, треба було зробити один загальний RAID-10 або RAID-6 розділ, розбити його на 2 логічних і розмістити систему окремо від призначених для користувача даних. Таким чином була б більш рівномірне навантаження на всі диски.
Головним завданням стало зниження навантаження на системний диск. В першу чергу переніс файл підкачки з системного диска на призначений для користувача розділ. Допомогло це не сильно, так як оперативної пам'яті досить, використання файлу підкачки було мінімальним. Я став дивитися за допомогою монітора ресурсів, що ж навантажує найбільше дискову підсистему. Виявилося, що браузери, в моєму випадку Internet Explorer і Google Chrome, а конкретно, їх кеші. Став думати, як перенести кеш. З Хромом виявилося все просто. Для нього існують ADM файли для управління настройками через групові політики домену windows. Завантажити їх можна тут https://support.google.com/chrome/a/answer/187202?hl=ru
Далі створюємо нову політику, додаємо ADM шаблон, знаходимо настройку «Вказати каталог для призначених для користувача даних«, ставимо значення «D: \ $ {user_name} \ Application Data \ Chrome». Після застосування цієї настройки профіль користувача з диска С: буде переміщений за вказаним шляхом. Там же в налаштуваннях вкажемо максимальний розмір папки кешу: «Встановити кеш диска в байтах» рівний 50 мб, ставимо значення в байтах «52428800».
З Internet Explorer все виявилося складніше. Налаштування в груповій політиці, що дозволяє перемістити папку Temporary Internet Files в інше місце я знайти не зміг. Тут був варіант використовувати переміщуваний профіль, але мені не захотілося з цим зв'язуватися заради такого завдання. Я знайшов одну настройку, яка мені частково могла допомогти в моєму питанні: «Empty Temporary Internet Files folder when browser is closed». Включив її, щоб тимчасові файли інтернету автоматично очищалися при закритті браузера. Хоча у мене налаштоване в GPO переміщення папки (Folder Redirection) «AppData (Roaming)» на інший диск, не системний, частина налаштувань все одно не переносяться і залишаються на системному диску, в тому числі і папка з тимчасовими файлами інтернету.
Ці настройки дозволили знизити навантаження на системний розділ. Далі було вирішено відмовитися від серверного антивіруса Касперського, необхідність в якому відпала. Раніше я налаштував на терміналах Applocker для заборони запуску довільних виконуваних файлів. Користувачі могли запускати тільки строго обмежений набір програм, так що віруси при всьому бажанні вони запустити б не змогли. Відключення антивіруса ще знизило навантаження.
Спостерігаючи далі за навантаженням на диск, зауважив, що постійно йде запис в файл логу агента системи моніторингу Zabbix. Виявилося, що після установки, під час налагодження, я вказав максимальний рівень логування, що призводило до безперервного запису всілякої інформації в лог. Це створювало пристойну навантаження на диск, так як записуваної інформації в секунду було дуже багато. Відключив логи, так як система давно налаштована і налагоджена, необхідності в логах немає.
Після всіх моїх дій навантаження на диск знизилася до прийнятних значень середньої довжини черги 1-1.5. Користувачі відчули поліпшення швидкодії, так що питання апгрейда відкладений на деякий термін. Швидше належить заміна повністю серверів, ніж окремо дисків.
Онлайн-курс Data Engineer - для розробників, адміністраторів СУБД і всіх, хто прагне підвищити професійний рівень, освоїти нові інструменти і займатися цікавими завданнями в сфері роботи з великими даними. Курс не для новачків - потрібно пройти вступний тест. Випускники курсу зможуть:
- розгортати, налагоджувати і оптимізувати інструменти обробки даних;
- адаптувати датасета для подальшої роботи і аналітики;
- створювати сервіси, які використовують результати обробки великих обсягів даних;
- відповідати за архітектуру даних в компанії.
Перевірте себе на вступний тест і дивіться програму детальніше по.
Допомогла стаття? Є можливість віддячити автора
Com/chrome/a/answer/187202?Допомогла стаття?