VNX: kernel.cpu.utilization.cpuutil > 90 протягом 15 хвилин
Summary: kernel.cpuutil має > 90 протягом 15 хвилин.
Symptoms
Погіршення продуктивності CIFS, NFS та надмірно високе завантаження ЦП під час зміни дати протягом тривалого періоду часу
Файли /nas/log/sys_log переповнені такими сповіщеннями:
Oct 20 10:19:21 2016:CS_PLATFORM:PERFSTATS:NOTICE:3:::::nas_alerterd: Clearing event for policy: default:server_2:kernel.cpu.utilization.cpuutil is > 90 for 15 minutes due to value = 88 Oct 20 10:20:26 2016:CS_PLATFORM:PERFSTATS:NOTICE:3:::::nas_alerterd: Clearing event for policy: default:server_3:kernel.cpu.utilization.cpuutil is > 90 for 15 minutes due to value = 89 Oct 20 10:35:21 2016:CS_PLATFORM:PERFSTATS:WARNING:2:::::nas_alerterd: Raising event for policy: default:server_2:kernel.cpu.utilization.cpuutil is > 90 for 15 minutes. The last sample value was 94 Oct 20 10:48:26 2016:CS_PLATFORM:PERFSTATS:WARNING:2:::::nas_alerterd: Raising event for policy: default:server_3:kernel.cpu.utilization.cpuutil is > 90 for 15 minutes. The last sample value was 95 Oct 20 11:01:26 2016:CS_PLATFORM:PERFSTATS:NOTICE:3:::::nas_alerterd: Clearing event for policy: default:server_3:kernel.cpu.utilization.cpuutil is > 90 for 15 minutes due to value = 87 Oct 20 11:17:21 2016:CS_PLATFORM:PERFSTATS:NOTICE:3:::::nas_alerterd: Clearing event for policy: default:server_2:kernel.cpu.utilization.cpuutil is > 90 for 15 minutes due to value = 89 Oct 20 11:21:26 2016:CS_PLATFORM:PERFSTATS:WARNING:2:::::nas_alerterd: Raising event for policy: default:server_3:kernel.cpu.utilization.cpuutil is > 90 for 15 minutes. The last sample value was 96
[nasadmin@storage ~]$ server_sysstat server_2 server_2 : threads runnable = 216 threads blocked = 6859 threads I/J/Z = 1 memory free(kB) = 6925375 cpu idle_% = 2 < ------- 98% utilized [nasadmin@storage ~]$ server_sysstat server_3 server_3 : threads runnable = 61 threads blocked = 6940 threads I/J/Z = 1 memory free(kB) = 6683987 cpu idle_% = 1 < ------- 99% utilized
Cause
Було проведено загальну конфігурацію системи та аналіз пропускної здатності, щоб визначити, які типи вимог (кількість реплікацій, дедуплікація, графіки контрольних точок тощо) висуваються до кожного переміщувача даних. Було встановлено, що для управління зображеннями використовувався додаток VMware під назвою Mirage. Це програмне забезпечення здійснювало резервне копіювання тисяч робочих станцій у середовищі клієнтів на CIFS, NFS, створюючи кілька невеликих CVD-файлів.
У цьому прикладі було налаштовано 200 сеансів VMware Mirage, роблячи щогодинні знімки 4 000 машин. На одну машину потрібен один CVD-файл, який, у свою чергу, потребує 1,5 IOPS для завершення знімка. Коли резервні копії працювали, продуктивність була повільною, і на стороні Mirage спостерігалася величезна затримка в районі 626,78 КБ на мс.
Профіль перейменовувача даних server_2 був записаний, коли завантаження процесора було надмірно високим і працювала програма VMware Mirage. Профіль був налаштований на роботу протягом 60 секунд:
Приклад:
[nasadmin@storage ~]$ /nas/tools/profile_slot -slot 2 -method function -seconds 60 -output /root_vdm_3/FS_Backup_01/profile_slot2.out Starting profile on slot 2 with the following params... Slot = 2 Method = function Seconds = 60 Ignorebounds = no Frequency = 256 Outfile = /root_vdm_3/FS_Backup_01/profile_slot2.out Profile started. Waiting for 60 seconds... Profile stopped. Profile output has been written to /root_vdm_3/FS_Backup_01/profile_slot2.out on server in slot 2.
Аналіз профілю перейменника даних був завершений, і було виявлено, що основним вузьким місцем, яке поглинає більшу частину процесора, був процес шифрування безпеки SMB під назвою «AES_encrypt». Цей процес SMB використовується для забезпечення наскрізного шифрування даних SMB і захисту даних від прослуховування в ненадійних мережах.
[nasadmin@storage ~]$ more profile_slot2.out | grep -i aes 0.0% ( 1 ) EVP_aes_128_cbc 0.0% ( 2 ) aes_init_key 1.0% ( 631 ) aes_cbc_cipher 0.0% ( 16 ) private_AES_set_encrypt_key 44.8% ( 27454 ) AES_encrypt < --------------------- 0.9% ( 581 ) AES_cbc_encrypt 0.0% ( 1 ) EVP_aes_128_cbc 0.8% ( 123 ) aes_cbc_cipher 0.0% ( 1 ) private_AES_set_encrypt_key 37.0% ( 5676 ) AES_encrypt < --------------------- 0.8% ( 128 ) AES_cbc_encrypt 0.0% ( 1 ) aes_init_key 0.9% ( 140 ) aes_cbc_cipher 0.0% ( 3 ) private_AES_set_encrypt_key 47.1% ( 7219 ) AES_encrypt < --------------------- 0.9% ( 146 ) AES_cbc_encrypt 0.0% ( 1 ) aes_init_key 1.3% ( 204 ) aes_cbc_cipher 0.0% ( 7 ) private_AES_set_encrypt_key 48.2% ( 7388 ) AES_encrypt < --------------------- 0.9% ( 151 ) AES_cbc_encrypt 1.0% ( 164 ) aes_cbc_cipher 0.0% ( 5 ) private_AES_set_encrypt_key 46.8% ( 7171 ) AES_encrypt < --------------------- 1.0% ( 156 ) AES_cbc_encrypt
Resolution
Доступні два варіанти:
Варіант 1:
Не вносьте жодних змін, дозвольте максимальному протоколу для зв'язку SMB залишатися на рівні SMB3, терпіти високий процесор і низьку продуктивність.
Варіант 2:
Впровадити обхідний шлях, щоб перенести протокол max для зв'язку SMB з SMB3 на SMB2. Основна відмінність між SMB3 і SMB2 полягає в «AES_Encrypt». Зниження максимального протоколу до SMB2 призведе до зниження процесу шифрування, використання процесора знизиться, а продуктивність має покращитися.
Щоб увімкнути протокол SMB2 на перейменовувачі даних:
-
Увійдіть на первинну станцію керування як користувач 'root' у putty/SSH
-
Запросіть у клієнта дозвіл на тимчасову зупинку послуги CIFS на перейменовувачі даних. Це спричиняє невелике перебої в доступі до CIFS під час зупинки послуги CIFS, тому його необхідно запланувати відповідно до клієнта.
server_setup server_x -P cifs -o stop
-
Змініть максимальний протокол для зв'язку SMB з SMB3 на SMB2:
server_cifs server_x -add security=NT,dialect=SMB2
-
Перезапустіть послугу CIFS:
server_setup server_x -P cifs -o start
-
Переконайтеся, що служба CIFS успішно перезапустилася, а максимальний протокол встановлено на SMB2:
server_cifs server_x
Приклад:
[root@Bstorage]# server_cifs server_2 server_2 : 384 Cifs threads started Security mode = NT Max protocol = SMB2.1 < -----