This commit is contained in:
Administrator
2025-04-24 10:16:38 +08:00
parent 6de65562be
commit 7267aec1fd
108 changed files with 7621 additions and 1890 deletions
+29 -27
View File
@@ -24,7 +24,6 @@ import org.kne.cloud.network.klalb.KLALBPacketLink;
import org.kne.cloud.network.klalb.KLALBUtils;
import org.kne.cloud.network.klalb.PINGPacket;
import org.kne.cloud.network.klalb.PONGPacket;
import org.kne.cloud.network.klalb.TESTPacket;
import org.kne.cloud.network.klalb.VADDRACKPacket;
import org.kne.cloud.network.klalb.VADDRPacket;
import org.kne.cloud.network.klalb.VADDRREQPacket;
@@ -74,12 +73,13 @@ public class Kperf implements Runnable{
private SpeedLimiter test = new SpeedLimiter(MIN_SPEED,10000000L);
private static long MIN_SPEED=64*1024L;
private SpeedLimiter congress = new SpeedLimiter(0,10000000L);
private SpeedLimiter congress = new SpeedLimiter(10000000L);
private long congressSpeed = 0;
private double loadPercent = 1.01;
private volatile int testSize=0;
//kperf {KLALB_Stream}[2486:1:34de:4abd:98c1:abd1:fc7a:401]:4564
KLALBPacket testPacket=null;
//kperf {KLALB_Stream}[2486:1:f189:7589:f1f7:6f5e:b2eb:1]:4564
//kperf {KLALB_Stream}[2486:1::8888]:4564
@Override
public void run() {
Thread tc = ThreadTool.makeVDaemonThreadIfSupport("测速控制线程", () -> {
@@ -100,14 +100,14 @@ public class Kperf implements Runnable{
System.out.printf("下载延迟 最小:%.3fms 平均:%.3fms 抖动:%.3fms\n",monitor.getInDelayMin()/1000000.0,monitor.getInDelayAvg()/1000000.0,monitor.getInJitter()/1000000.0);
System.out.println("等待时间"+wtimes+"s");
Thread.sleep(wtimes*1000);*/
Thread.sleep(wtimes*1000);
*/
startTime=System.nanoTime();
if(targetAddress!=null) {
System.out.println("测试2/4:下载带宽测试");
test.setLimitspeed(0);
testSize=60000;
testPacket=new TESTNPacket(60000);
for (int i = 0; i < 30; i++) {
System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0);
System.out.printf("下载带宽:%s/s\n", KLALBUtils.bytesUnit(monitor.getInSpeedAvg()));
@@ -118,7 +118,7 @@ public class Kperf implements Runnable{
}else {
System.out.println("测试2/4:上传带宽测试");
test.setLimitspeed(1000L*1024L*1024L*1024L);
testSize=60000;
testPacket=new TESTNPacket(60000);
for (int i = 0; i < 30; i++) {
System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0);
System.out.printf("上传带宽:%s/s\n", KLALBUtils.bytesUnit(monitor.getOutSpeedAvg()));
@@ -135,7 +135,7 @@ public class Kperf implements Runnable{
if(targetAddress!=null) {
System.out.println("测试3/4:上传带宽测试");
test.setLimitspeed(1000L*1024L*1024L*1024L);
testSize=60000;
testPacket=new TESTNPacket(60000);
for (int i = 0; i < 30; i++) {
System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0);
System.out.printf("上传带宽:%s/s\n", KLALBUtils.bytesUnit(monitor.getOutSpeedAvg()));
@@ -146,7 +146,7 @@ public class Kperf implements Runnable{
}else {
System.out.println("测试3/4:下载带宽测试");
test.setLimitspeed(0);
testSize=60000;
testPacket=new TESTNPacket(60000);
for (int i = 0; i < 30; i++) {
System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0);
System.out.printf("下载带宽:%s/s\n", KLALBUtils.bytesUnit(monitor.getInSpeedAvg()));
@@ -162,7 +162,7 @@ public class Kperf implements Runnable{
if(targetAddress!=null) {
System.out.println("测试2/4:下载包转发率测试");
test.setLimitspeed(0);
testSize=0;
testPacket=new TEST1Packet();
for (int i = 0; i < 30; i++) {
System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0);
System.out.printf("下载包转发率:%sPPS\n", KLALBUtils.defaultUnit(monitor.getInPPS()));
@@ -171,7 +171,7 @@ public class Kperf implements Runnable{
}else {
System.out.println("测试2/4:上传包转发率测试");
test.setLimitspeed(1000L*1024L*1024L*1024L);
testSize=0;
testPacket=new TEST1Packet();
for (int i = 0; i < 30; i++) {
System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0);
System.out.printf("上传包转发率:%sPPS\n", KLALBUtils.defaultUnit(monitor.getOutPPS()));
@@ -186,7 +186,7 @@ public class Kperf implements Runnable{
if(targetAddress!=null) {
System.out.println("测试3/4:上传包转发率测试");
test.setLimitspeed(1000L*1024L*1024L*1024L);
testSize=0;
testPacket=new TEST1Packet();
for (int i = 0; i < 30; i++) {
System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0);
System.out.printf("上传包转发率:%sPPS\n", KLALBUtils.defaultUnit(monitor.getOutPPS()));
@@ -196,7 +196,7 @@ public class Kperf implements Runnable{
}else {
System.out.println("测试3/4:下载包转发率测试");
test.setLimitspeed(0);
testSize=0;
testPacket=new TEST1Packet();
for (int i = 0; i < 30; i++) {
System.out.printf("%.2fs\t", (System.nanoTime()- startTime)/1000000000.0);
System.out.printf("下载包转发率:%sPPS\n", KLALBUtils.defaultUnit(monitor.getInPPS()));
@@ -206,17 +206,19 @@ public class Kperf implements Runnable{
}
System.out.println("等待时间"+wtimes+"s");
Thread.sleep(wtimes*1000);
System.out.println("测速结束!");
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("测速结束!");
System.out.println("测速被中断!");
}finally {
close();
}
});
try {
monitor.setState(MonitorData.CONNECTING);
if(link==null)
link=KLALBUtils.createKLALBPacketLink(bindAddress, targetAddress,20000);
link=KLALBUtils.createKLALBPacketLink(bindAddress, targetAddress,false,20000);
link.setSoTimeout(20000);
@@ -243,10 +245,9 @@ public class Kperf implements Runnable{
}else {
if (test.checkTransmit(testSize+3)) {
TESTPacket tp=new TESTPacket(testSize);
writePacketToKPL(tp);
KLALBPacket testp=testPacket;
if (testp!=null&&test.checkTransmit(testp.getLength())) {
writePacketToKPL(testp);
@@ -351,7 +352,7 @@ public class Kperf implements Runnable{
congress.setLimitspeed(Math.max(MIN_SPEED,(long) (congressSpeed * loadPercent)) );
// System.out.println(congressSpeed);
break;
case KLALBPacket.TEST:
case KLALBPacket.TESTN:
break;
}
Thread.yield();
@@ -371,6 +372,7 @@ public class Kperf implements Runnable{
e.printStackTrace();
}
}
tc.interrupt();
}
}
private volatile long time = System.nanoTime();
@@ -441,7 +443,7 @@ public class Kperf implements Runnable{
private KLALBPacket readPacketFromKPL() throws IOException {
KLALBPacket packet = link.readPacket();
KLALBPacket packet = link.readKLALBPacket();
if (showpacket) {
System.out.println("RX:" + packet);
@@ -459,7 +461,7 @@ public class Kperf implements Runnable{
long length=packet.getLength();
monitor.getOutTrafficAL().addAndGet(length);
monitor.getOutPacketCounterAL().incrementAndGet();
link.writePacket(packet);
link.writeKLALBPacket(packet);
link.flush();
packet.putTimePassport("sended");
packet.printPassport();