Когда я пытаюсь загрузить файл огромного размера (около 2 ГБ), использование процессора сервера становится очень высоким. Что мне делать, чтобы это исправить?
Я просто использую стандартную форму html и php для загрузки файлов.
Извините, если я разместил сообщение не на том форуме. Пожалуйста, укажите мне правильное направление
вот результат команды "top" при загрузке 4 файлов (18mb, 38mb, 60mb, 33mb)
1904 apache 20 0 33504 5740 1952 R 28.3 0.2 0:02.19 httpd
1905 apache 20 0 33504 5740 1952 R 28.3 0.2 0:01.99 httpd
1903 apache 20 0 33232 6968 3060 R 28.0 0.2 0:01.98 httpd
1910 apache 20 0 33240 6020 2248 S 11.5 0.2 0:02.85 httpd
2133 root 20 0 2656 1124 896 R 1.6 0.0 0:00.71 top
1 root 20 0 2864 1404 1188 S 0.0 0.0 0:03.99 init
код для фрагментации, хотя, хотя я и не использую этот код (просто загрузка файлов), он все равно вызывает высокую загрузку процессора
function sendRequest() {
//clean the screen
//bars.innerHTML = '';
var file = document.getElementById('fileToUpload');
for(var i = 0; i < file.files.length; i++) {
var blob = file.files[i];
var originalFileName = blob.name;
var filePart = 0
const BYTES_PER_CHUNK = 100 * 1024 * 1024; // 10MB chunk sizes.
var realFileSize = blob.size;
var start = 0;
var end = BYTES_PER_CHUNK;
totalChunks = Math.ceil(realFileSize / BYTES_PER_CHUNK);
alert(realFileSize);
while( start < realFileSize ) {
if (blob.webkitSlice) {
//for Google Chrome
var chunk = blob.webkitSlice(start, end);
} else if (blob.mozSlice) {
//for Mozilla Firefox
var chunk = blob.mozSlice(start, end);
}
uploadFile(chunk, originalFileName, filePart, totalChunks, i);
filePart++;
start = end;
end = start + BYTES_PER_CHUNK;
}
}
}
Если вы выполняете много файловых операций, это имеет смысл. Вы должны опубликовать код операций по разделению файлов.