VNX:kernel.cpu.utilization.cpuutilが15分間>90
Summary: kernel.cpu.utilization.cpuutil は 15 分間で 90 に>されます。
Symptoms
CIFS、NFSのパフォーマンスが低下し、Data Moverの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 台のマシンのスナップショットが毎時作成されました。1台のマシンには1つのCVDファイルが必要で、スナップショットを完了するには1.5 IOPSが必要です。バックアップの実行中、パフォーマンスは低下し、Mirage側では626.78 KB/msの領域で大きなレイテンシが発生しました。
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
次の 2 つのオプションを使用できます。
オプション1:
変更を行わず、SMB通信の最大プロトコルをSMB3のままにし、CPU使用率が高くなり、パフォーマンスが低下するのに耐えられるようにします。
オプション2:
SMB3からSMB2へのSMB通信の最大プロトコルを削除する回避策を実装します。SMB3とSMB2の主な違いは「AES_Encrypt」です。最大プロトコルをSMB2にドロップすると、暗号化プロセスがドロップされ、CPUの利用率が低下し、パフォーマンスが向上します。
Data MoverでSMB2プロトコルを有効にするには、次の手順を実行します。
-
putty/SSHで「root」ユーザーとしてプライマリControl Stationにログインします。
-
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
Example:
[root@Bstorage]# server_cifs server_2 server_2 : 384 Cifs threads started Security mode = NT Max protocol = SMB2.1 < -----