ユーザ用ツール

サイト用ツール


Sidebar

ミドルウェア系:openfire:使用するcipherを変更

Openfireで使用するCipherをクライアント側から変更

Openfireのログイン時に使われるCipherを変更すると、どれだけ早くなるか測定してみた。

cipher変更の実装はこの通り

libjingleで作ったXMPPクライアントを利用。修正箇所はここの通り。

バックグラウンドで同時接続100でログインさせるようなシェルを書いて、100ログインが完了した時点で、ログインにかかった時間の最大値・最小値・平均値・標準偏差を計測。

結果

  • OpenfireデフォルトのCipher(ECDHE-RSA-AES256-SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1)の場合
ログイン時間(msec)
最大値 87458(msec)
最小値 84012
平均値 85654.7
標準偏差 830.117
  • 一方、高速化するために適応したCipher(Cipher: RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1)の場合
ログイン時間(msec)
最大値 10428(msec)
最小値 4166
平均値 8742.08
標準偏差 1469.31

デフォルトのCipherよりも、最大値で8倍、最小値では20倍、平均値では約10倍、とかなり高速化できた。

ちなみに標準偏差の計測は以下のようなawkで実装したスクリプトを使用

cat > max.awk <<EOF
NR == 1{
  max = $ 1
}
{
  if($ 1 > max) max = $ 1
}
END{
  if(NR == 0) exit
 
  print max
}
EOF
 
cat > min.awk << EOF
NR == 1{
  min = $ 1
}
{
  if($ 1 < min) min = $ 1
}
END{
  if(NR == 0) exit
 
  print min
}
EOF
 
cat > age.awk <<EOF
{
  sum += $ 1
}
END{
  if(NR == 0) exit
 
  print sum / NR
}
EOF
 
cat > stdev.awk <<EOF
{
  x[NR] = $ 1
}
END{
  if(NR == 0) exit
 
  for(i in x){
    sum_x += x[i]
  }
 
  m_x = sum_x / NR
 
  for(i in x){
    sum_dx2 += (x[i] - m_x) ^ 2
  }
 
  print sqrt(sum_dx2 / NR)
}
EOF
ミドルウェア系/openfire/使用するcipherを変更.txt · 最終更新: 2013/05/19 18:21 by matsumoto_r