flumeテスト
2171 ワード
flumeテスト拡張性flumeの拡張性はどのようにテストしますか?分からなかったので、どなたかご存知の方がいらっしゃいましたらメッセージをお願いします.同僚はtpsの性能をテストすると言った.ケース:nginxサーバ4台、ノードごとにflume agentがログをリスニングし、2番目のレイヤのflumeを送信します.このうち第1層のflume sinkはsinkgroupを用いてbalanceを作った.私の理解は、2番目のレイヤが1つのインスタンスを配置することと、2つのインスタンスを配置することの比較は、その拡張性をテストすることです.しかし、毎秒channelの経過を傍受するevent数.その数値差は大きくなく,規則的ではない.flume自体はシリアルであるべきで、まずsinkgroupは単一スレッドであり、第1層はいくらデータを受け取ってもsinkになると順番に流れ、並列度がない.
問題:tpsという指標は並列実行アーキテクチャ(mppアーキテクチャ)のテストにのみ適しているかどうか.複数のノードを増やすことで負荷能力を向上させるシステム?次のコードは、httpプロトコルを使用してflume内のchannelが流れるeventsの数をリスニングします.
問題:tpsという指標は並列実行アーキテクチャ(mppアーキテクチャ)のテストにのみ適しているかどうか.複数のノードを増やすことで負荷能力を向上させるシステム?次のコードは、httpプロトコルを使用してflume内のchannelが流れるeventsの数をリスニングします.
public class SingleMonitor {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
String channelName = args[args.length - 1];
StringBuilder sb = new StringBuilder();
for (int i = 0; i <= args.length - 2; i++) {
sb.append(args[i]).append(",");
}
System.out.println(" uri :[" + sb.toString() + "],channelName :[" + channelName + "]");
String[] tmp_array = new String[args.length-1];
try {
while (true) {
for (int i = 0; i <= args.length - 2; i++) {
String url = args[i];
String responseStr = HttpClientUtil.sendHttpGet(url);
HashMap> obMap = (HashMap>) objectMapper.readValue(responseStr, Map.class);
tmp_array[i] = obMap.get(channelName).get("EventTakeSuccessCount");
}
System.out.println(System.currentTimeMillis() / 1000 + array2Str(tmp_array));
Thread.sleep(1000);
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static String array2Str(String[] tmpArray) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < tmpArray.length; i++) {
sb.append(",").append(tmpArray[i]);
}
return sb.toString();
}
}