У меня есть сервер Tomcat с 250 потоками соединений.Когда я имитирую одновременную загрузку файлов для 30 файлов (каждый по 100 МБ), загрузка ЦП и ОЗУ серверного компьютера достигает пика, т.е. 95% использования.
Я использую следующий блок кода для чтения данных файла из HTTP Post.
// request is instance of HTTPServletRequest
int nDataLength = request.getContentLength();
byte dataBytes[] = new byte[nDataLength];
int bytesRead = 0;
int totalBytesRead = 0;
int bytesLimit = 1024;
InputStream in = new InputStream(request.getInputStream());
try
{
while(totalBytesRead < nDataLength)
{
bytesRead = in.read(dataBytes, totalBytesRead, bytesLimit);
totalBytesRead += bytesRead;
}
}
catch(Exception ex)
{
throw ex;
}
finally
{
in.close();
}
Мои сомнения:
- Какое максимальное число может бытьОдновременная загрузка файлов (каждые 100 МБ файлов), которые может обрабатывать сервер Tomcat?
- Требуется ли какая-либо оптимизация в моем коде для использования всех 250 потоков соединений?
- Представление
sleep
можетвызвать длительные загрузки.Как написать эффективный код?
Заранее спасибо.
С уважением, Kingsley Reuben J
ПРИМЕЧАНИЕ. Я не смогу использовать сторонние приложения для решения этой проблемы.проблема