VNX: kernel.cpu.utilization.cpuutil wordt gedurende 15 minuten > 90
Summary: kernel.cpu.utilization.cpuutil wordt gedurende 15 minuten > 90.
Symptoms
Verslechterde CIFS- en NFS-prestaties en overmatig hoog CPU-gebruik op de data movers gedurende langere perioden
De /nas/log/sys_log-bestanden worden overspoeld met de volgende waarschuwingen:
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
Er is een algehele systeemconfiguratie en capaciteitsanalyse uitgevoerd om te bepalen welke soorten eisen (aantal replicatie, deduplicatie, checkpointschema's, enz.) aan elke datamover worden gesteld. Er werd vastgesteld dat een VMware-applicatie genaamd Mirage werd gebruikt voor imagebeheer. Deze software maakte een back-up van duizenden werkstations in de omgeving van de klant naar de CIFS- en NFS-shares door meerdere kleine CVD-bestanden te maken.
In dit voorbeeld zijn 200 VMware Mirage-sessies geconfigureerd die elk uur snapshots maken van 4000 machines. Voor één machine is één CVD-bestand nodig, dat op zijn beurt 1,5 IOPS nodig heeft om de snapshot te voltooien. Wanneer de back-ups werden uitgevoerd, waren de prestaties traag en werd aan de Mirage-kant een enorme latentie van ongeveer 626,78 KB per ms ervaren.
Er werd een datamoverprofiel van server_2 vastgelegd toen het CPU-gebruik te hoog was en de VMware Mirage-applicatie actief was. Het profiel is geconfigureerd om 60 seconden te worden uitgevoerd:
Voorbeeld:
[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.
Een analyse van het profiel van de dataverhuizer werd voltooid en er werd vastgesteld dat het belangrijkste knelpunt dat het grootste deel van de CPU verbruikte, een SMB-beveiligingsversleutelingsproces was met de naam 'AES_encrypt. Dit SMB-proces wordt gebruikt om end-to-end versleuteling van SMB-data te bieden en data te beschermen tegen afluisteren op niet-vertrouwde netwerken.
[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
Er zijn twee opties beschikbaar:
Optie 1:
Breng geen wijzigingen aan, laat het maximale protocol voor SMB-communicatie op SMB3 blijven, ondersteun de hoge CPU en slechte prestaties.
Optie 2:
Implementeer een tijdelijke oplossing om het max-protocol voor SMB-communicatie van SMB3 naar SMB2 te verlagen. Het belangrijkste verschil tussen SMB3 en SMB2 is 'AES_Encrypt'. Door het maximale protocol te verlagen naar SMB2, daalt het versleutelingsproces, daalt het CPU-gebruik en zouden de prestaties moeten verbeteren.
Het SMB2-protocol op de datamover inschakelen:
-
Log in op het Primary Control Station als 'root'-gebruiker in putty/SSH
-
Vraag de klant om toestemming om de CIFS-service op de data mover tijdelijk te stoppen. Dit veroorzaakt een kleine storing van de CIFS-toegang terwijl de CIFS-service is gestopt, dus deze moet dienovereenkomstig worden gepland met de klant.
server_setup server_x -P cifs -o stop
-
Wijzig het maximale protocol voor SMB-communicatie van SMB3 naar SMB2:
server_cifs server_x -add security=NT,dialect=SMB2
-
Start de CIFS-service opnieuw:
server_setup server_x -P cifs -o start
-
Zorg ervoor dat de CIFS-service opnieuw is gestart en het maximale protocol is ingesteld op SMB2:
server_cifs server_x
Voorbeeld:
[root@Bstorage]# server_cifs server_2 server_2 : 384 Cifs threads started Security mode = NT Max protocol = SMB2.1 < -----