From 3fb192b673699167ad4f1d044ebf1fdd3bce1483 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 28 Aug 2015 18:12:33 +0200 Subject: [server] Tweak calculation of transfer count limits --- .../src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java | 4 ++-- .../main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java | 2 +- .../main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java | 2 +- .../src/main/java/org/openslx/bwlp/sat/util/Constants.java | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java index f821813f..a08d4e15 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java @@ -135,7 +135,7 @@ public class FileServer implements IncomingEvent { it.remove(); continue; } - activeUploads++; + activeUploads += Math.max(1, upload.getActiveConnectionCount()); } if (activeUploads > Constants.MAX_UPLOADS) { throw new TTransferRejectedException("Server busy. Too many running uploads (" + activeUploads @@ -185,7 +185,7 @@ public class FileServer implements IncomingEvent { it.remove(); continue; } - activeDownloads++; + activeDownloads += Math.max(1, download.getActiveConnectionCount()); } if (activeDownloads > Constants.MAX_DOWNLOADS) { throw new TTransferRejectedException("Server busy. Too many running uploads (" + activeDownloads diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java index 0ca5d9b6..e4e3349e 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java @@ -46,7 +46,7 @@ public class IncomingDataTransfer extends AbstractTransfer implements HashCheckC /** * How many concurrent connections per upload */ - private static final int MAX_CONNECTIONS = Math.max(Constants.MAX_UPLOADS / 4, 1); + private static final int MAX_CONNECTIONS = Math.min(4, Math.max(Constants.MAX_UPLOADS / 4, 1)); /** * Self reference for inner classes. diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java index e7c6715f..b01a627f 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/OutgoingDataTransfer.java @@ -16,7 +16,7 @@ public class OutgoingDataTransfer extends AbstractTransfer { /** * How many concurrent connections per download */ - private static final int MAX_CONNECTIONS = Math.max(Constants.MAX_DOWNLOADS / 4, 1); + private static final int MAX_CONNECTIONS = Math.min(4, Math.max(Constants.MAX_DOWNLOADS / 4, 1)); /** * Remote peer is downloading, so we have Uploaders diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Constants.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Constants.java index 0af135ac..55a87b5f 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Constants.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Constants.java @@ -46,7 +46,7 @@ public class Constants { // Now maxMem is the amount of memory in MiB LOGGER.debug("Maximum JVM memory: " + maxMem + "MiB"); - MAX_UPLOADS = (int) Math.max(1, (maxMem - 64) / (FileChunk.CHUNK_SIZE_MIB + 1)); + MAX_UPLOADS = (int) Math.max(1, (maxMem - 64) / (FileChunk.CHUNK_SIZE_MIB * 2)); MAX_DOWNLOADS = MAX_UPLOADS * 2; } } -- cgit v1.2.3-55-g7522