CLOSE-WAITを出現させたい【AWS】

リソースのテストを行うため、CLOSE-WAITを大量に出現させる必要があったので、サンプル的にCLOSE-WAIT を出現させるコードを作ってみました。
・サーバー間のソケット通信でCLOSE-WAITを大量発生させたい。
記事の目次
前提条件
こちらのソースコードはサーバー間疎通が必要なため、CLOSE-WAITを発生させたいサーバーと
繋ぎ先のサーバー2台が必要です。

・javaはすでにインストール済み
・接続先EC2のSGを修正しポート80からのアクセスを許可済み
ソースコードの作成
CLOSE-WAITを起こしたいサーバーにログインし、下記コマンドでjavaファイルを作成します。
※実行するディレクトリはどこでも構いません。
vi CloseWaitTest.java
CloseWaitTest.javaの中身
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
public class CloseWaitTest {
public static void main(String[] args) {
String host = "サーバーのIPアドレス";
int port = 80;
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(host, port));
socket.setKeepAlive(true);
if (socket.isConnected()) {
System.out.println("TCP KeepAliveを有効");
} else {
System.out.println("TCP KeepAlive有効化失敗");
}
while (true) {
System.out.println("スレッドスリープ");
Thread.sleep(10000);
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
作成しましたら、コンパイルを行います。
javac CloseWaitTest.java
javaの実行
java CloseWaitTest
1~2分ほど置いて、新規ターミナルを開き、下記コマンドを実行すればCLOSE_WAITが発生されているのを確認できます。
netstat -nat

辞める時はCtrl + Cでプロセスを強制終了してください。

以上です。何かの参考になれば幸いです。
- タグ:
- EC2