VNX: kernel.cpu.utilization.cpuutil er > 90 i 15 minutter
Summary: kernel.cpu.utilization.cpuutil er > 90 i 15 minutter.
Symptoms
Degradert CIFS, NFS-ytelse og overdrevent høy CPU-utnyttelse på flyttedatoer i lengre perioder
/nas/log/sys_log-filene oversvømmes med følgende varsler:
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
En overordnet systemkonfigurasjon og kapasitetsanalyse ble fullført for å avgjøre hvilke typer krav (antall replikering, deduplisering, sjekkpunktplaner og så videre) som blir plassert på hver datamover. Det ble fastslått at et VMware-program kalt Mirage ble brukt til bildebehandling. Denne programvaren sikkerhetskopierte tusenvis av arbeidsstasjoner i kundemiljøet til CIFS, NFS-delinger ved å opprette flere små CVD-filer.
I dette eksempelet ble 200 VMware Mirage-økter konfigurert til å ta øyeblikksbilder hver time av 4000 maskiner. En maskin krever en CVD-fil som igjen trenger 1,5 IOPS for at øyeblikksbildet skal fullføres. Når sikkerhetskopieringene kjørte, var ytelsen treg, og enorm ventetid i området 626,78 kB per ms ble opplevd på Mirage-siden.
En dataflytterprofil på server_2 ble registrert når CPU-utnyttelsen var for høy og VMware Mirage-applikasjonen kjørte. Profilen ble konfigurert til å kjøre i 60 sekunder:
Eksempel:
[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.
En analyse av dataflytterprofilen ble fullført, og det ble funnet at den primære flaskehalsen som brukte mesteparten av CPU-en, var en SMB-sikkerhetskrypteringsprosess kalt "AES_encrypt". Denne SMB-prosessen brukes til å gi ende-til-ende-kryptering av SMB-data og beskytter data mot avlytting på upålitelige nettverk.
[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
To alternativer er tilgjengelige:
Alternativ 1:
Gjør ingen endringer, la den maksimale protokollen for SMB-kommunikasjon forbli på SMB3, tåle høy CPU og dårlig ytelse.
Alternativ 2:
Implementer en midlertidig løsning for å droppe maks. protokollen for SMB-kommunikasjon fra SMB3 til SMB2. Hovedforskjellen mellom SMB3 og SMB2 er "AES_Encrypt." Ved å slippe den maksimale protokollen til SMB2, slipper dette krypteringsprosessen, CPU-utnyttelsen synker, og ytelsen bør forbedres.
Slik aktiverer du SMB2-protokollen på dataflytteren:
-
Logg på den primære kontrollstasjonen som 'root' bruker i putty / SSH
-
Be om tillatelse fra kunden til midlertidig å stoppe CIFS-tjenesten på dataflytteren. Dette fører til et lite avbrudd for CIFS-tilgangen mens CIFS-tjenesten stoppes, så den må planlegges i samsvar med kunden.
server_setup server_x -P cifs -o stop
-
Endre maks. protokoll for SMB-kommunikasjon fra SMB3 til SMB2:
server_cifs server_x -add security=NT,dialect=SMB2
-
Start CIFS-tjenesten på nytt:
server_setup server_x -P cifs -o start
-
Kontroller at CIFS-tjenesten har startet på nytt, og at max-protokollen er satt til SMB2:
server_cifs server_x
Eksempel:
[root@Bstorage]# server_cifs server_2 server_2 : 384 Cifs threads started Security mode = NT Max protocol = SMB2.1 < -----