使用上の注意点
性能に関する注意点(共通)
下記の様な要因により、アプリケーションレベルで影響が生じます。
ファイルサイズ
小さいサイズのファイルが多い場合に性能低下が起き易くなります。 均一のファイルサイズで測定すると128KB付近から低下します。
※弊社特定環境及び測定方法に基づく
暗号、圧縮もしくはダイジェストによるデータ検査
CPU負荷の増加に伴い性能が低下する場合があります。 (暗号の処理性能がボトルネックになる場合、など)
また、暗号についてはハードウェアアクセラレーション(AES-NI)が機能しない場合は性能が低下する場合があります。
1Gbpsを超える環境では、暗号方式にCBCやHMACを使用するとAES-NIが機能していても、暗号処理がボトルネックになることがあります。
ブロックサイズ
通信の多重化を使用して10Gbpsを超える帯域で通信を行う場合は、次のデータブロックを設定するパラメータを1MB~4MB程度に設定します。
- InitContentBlockSize
- MaxContentBlockSize
数十KB程度の設定の場合、多重化のために行われる通信データを束ねる処理(同期処理の負荷)の影響で期待する性能(TCP多重 60Gbps~70Gbps程度)が発揮されない場合があります。
また、暗号を利用している場合は、1MBを超える設定をすると、AES-NIモジュールのバッファとメモリ間のデータ転送(キャッシュイン・アウト)の影響で性能が低下する場合があります。設定値を小さい値に変更してお試しください。
通信多重化の接続数
通信の多重化を使用する場合、多重化する接続の数は8から16程度が概ね最適値です。この範囲を超えて接続の数を増やすと、処理オーバヘッドなどの影響により通信性能が低下する傾向となります。
参考(弊社測定):
- TCP平文 単一 14Gbps 8並列 61Gbps 12並列 68Gbps 16並列 62Gbps
- TCP暗号 単一 5Gbps 8並列 28Gbps 12並列 26Gbps 16並列 25Gbps
ディスク広帯域I/O利用(Linux環境)
40Gbps~100Gbpsのディスク読み書き性能をもつ環境において通常の利用方法で性能が制限される場合は、Direct I/Oまたは非同期I/Oオプションを使用すると改善する場合があります。
既定の設定で非同期I/Oを使用して100Gbpsを達成できない場合は、--fio-direct-reuse-aligned(Direct I/O用バッファメモリ領域の再利用・キャッシング。メモリ確保負荷の低減)を使用する、--fio-async-max-eventsの設定値 を引き上げる、などを試します。
メモリ利用制限
MaxTotalBufferSizeは複数のセッションで制限を共有するため、広帯域環境での同時接続で性能のボトルネックになる場合があります。
ログレベルもしくは調査ログ
次のログレベルをDEBUGに変更した場合もしくは調査ログを有効にした場合、性能が低下する恐れがあります。
対象ファイル・コマンド 設定項目・オプション名 hcpd.conf SystemLogLevel hcp.conf、その他クライアント設定ファイル DiagnosticLogLevel 各コマンド --investigation オプション アンチウイルスソフトウェア
Windows版のWindows Defenderでリアルタイム保護を有効に設定するとディスクアクセス速度が低下し、ファイル転送の性能が低下する場合があります。Symantec社のNorton Internet Securityでは確認されていません。
性能に関する注意点(HpFP2)
下記の様な要因により、トランスポート(HpFP)レベルで影響が生じます。
MTUサイズ
MTUサイズが1.5KB程度の場合、10Gbps程度の性能を出せない場合があります。
数Gbpsを超える帯域を使用する場合は、ジャンボフレーム(9KB程度)の使用が推奨されます。
IPソケットのバッファサイズ
次のOSパラメータが小さい場合(例:CentOS 122KB)、パケットロスが生じるなどの原因で10Gbps程度の性能が発揮できない場合があります。
- net.core.rmem_max
- net.core.wmem_max
CPUの省電力モード
各OSの次の設定の影響で広帯域に必要なCPU性能よりも低い性能で動作してしまう場合に、性能低下が生じる場合があります。
Windows
プロセッサの電源管理
Linux
/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
中継機器のパケットキューサイズ
キューサイズが極小さい中継機器が存在する場合(もしくはこれに相当する条件下)、RTTの増加がなくロスが発生することで、輻輳制御が適正に動作できず性能や公平性の低下が生じる場合があります。
輻輳制御モード
輻輳制御モードのAggressiveモードは実験的機能です。10Gbps以上の帯域での通信など、処理負荷が大きくなる状況において、パケットロスが発生して性能低下が生じる場合があります。特に、マルチチャネル機能を使用している場合は、NIC(Network Interface Card)のRSS(Receive Side Scaling)機能によるCPUコアの割り当ての偏りによって、スループットが不安定になることがあります。そのような環境ではFairモードを使用するようにしてください。
機能に関する注意点
hcpdを同一のUDPポートを指定して複数起動する場合
クライアントからの接続時に通信タイムアウトなどが発生して期待通りに動作しない場合があります。
※HPFPListenAdressではなくUDPListenAddress(廃止予定)を使用した場合の注意点です。
例:
--
hcpd1
UDPListenAddress 0.0.0.0:884
※UDPはデフォルトで65520ポートを使用する。特権ポート(884)指定。
systemctl start hcpd
※サービス起動
--
--
hcpd2
UDPListenAddress 0.0.0.0:1884
※UDPはデフォルトで65520ポートを使用する。非特権ポート指定。
hcpd -f -c ~/hcpd.conf -p ~/hcpd.pid
※一般ユーザによる起動
※実際に通信で使用されるUDPポート番号が同一の構成で2つhcpdを起動した状態。
--
上記構成で稼働中のホストに対して、下記の様にクライアントから接続する。
--
hcp --udp=D:D:D:D:D my_src.txt 192.168.100.100:884:my_dst.txt
--対応例:hcpd2のUDPポート番号を変更します(デフォルト値以外を指定)。
UDPListenAddress 0.0.0.0:1884:65519
LinuxのOOM(Out Of Memory) Killerが動作する場合の対処
Linuxでは、プロセスのメモリ消費の傾向を監視してOSの機能としてプロセスを強制終了(KILLシグナル)する機構が備わっています。
次の上限バッファサイズの設定をシステムのメモリサイズに対して大きく取った場合(同メモリサイズ未満の場合を含む)、この機構による強制終了の対象となる場合があります。
設定ファイル 設定項目 hcp.conf MaxBufferSize hcpd.conf MaxTotalBufferSize 本症状が発生する場合は、より小さい値に変更する、システムメモリを拡張するなどの対処を行います。
ログレベルもしくは調査ログ
次のログレベルをDEBUGに変更した場合もしくは調査ログを有効にした場合、ファイル送信の終了に時間が掛かり、環境(NATなど)によってはタイムアウトが発生することがあります。
対象ファイル・コマンド 設定項目・オプション名 hcpd.conf SystemLogLevel hcp.conf、その他クライアント設定ファイル DiagnosticLogLevel 各コマンド --investigation オプション