VNX: kernel.cpu.utilization.cpuutil이 15분 동안 90을 >함
Summary: kernel.cpu.utilization.cpuutil은 15분 동안 90을 >합니다.
Symptoms
CIFS, NFS 성능이 저하되고 날짜 이동자의 CPU 활용도가 장기간 과도하게 높음
/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
전체 시스템 구성 및 용량 분석을 완료하여 각 Data Mover에 적용되는 요구 유형(복제 수, 중복 제거, 체크포인트 스케줄 등)을 파악했습니다. Mirage라는 VMware 애플리케이션이 이미지 관리에 사용되고 있는 것으로 확인되었습니다. 이 소프트웨어는 여러 개의 작은 CVD 파일을 생성하여 고객 환경에 있는 수천 개의 워크스테이션을 CIFS, NFS 공유에 백업했습니다.
이 예에서는 200개의 VMware Mirage 세션이 구성되어 4,000개 시스템의 시간별 스냅샷을 생성했습니다. 시스템 하나에 CVD 파일 하나가 필요하며, 스냅샷을 완료하려면 1.5 IOPS가 필요합니다. 백업이 실행 중일 때 성능이 느려지고 Mirage 측에서 초당 626.78KB의 엄청난 지연 시간이 발생했습니다.
CPU 활용도가 과도하게 높고 VMware Mirage 애플리케이션이 실행 중일 때 server_2의 Data Mover 프로파일이 캡처되었습니다. 프로필이 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.
Data Mover 프로파일을 분석한 결과, CPU의 대부분을 차지하는 주요 병목 현상이 "AES_encrypt"라는 SMB 보안 암호화 프로세스라는 것을 알 수 있었습니다. 이 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으로 유지되도록 허용하고 높은 CPU와 낮은 성능을 감안하십시오.
옵션 2:
SMB3에서 SMB2로의 SMB 통신에 대한 max 프로토콜을 삭제하는 해결 방법을 구현합니다. SMB3와 SMB2의 주요 차이점은 "AES_Encrypt"입니다. 최대 프로토콜을 SMB2로 삭제하면 암호화 프로세스가 종료되고 CPU 사용률이 떨어지며 성능이 향상됩니다.
Data Mover에서 SMB2 프로토콜을 설정하려면 다음을 수행합니다.
-
putty/SSH에서 Primary Control Station에 'root' 사용자로 로그인합니다.
-
고객에게 Data Mover에서 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 < -----