これネットワークI/Oが悪いんじゃね?と自分のプログラム以外のせいにしたくなることがあると思います。
本当にそうなのか確認しましょう。
iperfでスループット計測
iperfを使います。yumでインストールできます。
サーバー2台間で通信することでスループットを計測しますので、iperfがインストールされている対向サーバーが必要になります。
※ 無料のテストサーバーとかがあったら教えて欲しいです
インストール方法
二台両方にインストールします。
sudo yum install iperf --enablerepo=epel
データを受け取る側(サーバー)
[ec2-user@serv1 ~]$ sudo iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
データを送る側(クライアント)
[ec2-user@serv2 ~]$ sudo iperf -c serv1
------------------------------------------------------------
Client connecting to xx.xx.xx.xx, TCP port 5001
TCP window size: 4.00 MByte (default)
------------------------------------------------------------
[ 3] local xx.xx.xx.xx port 52367 connected with xx.xx.xx.xx port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.1 sec 1.26 GBytes 1.07 Gbits/sec
・・・ec2同士すごく早いです(^q^)
さくらVPSに送ると91.4 Mbits/secでました。VPS側が恐らく100MなNICだと思いますので、十分性能が出ています。
ネットワークスループットには問題無いですね(^q^)