O que causa o alto uso da CPU no servidor durante o upload do arquivo

2

Quando tento carregar um tamanho de arquivo enorme (aproximadamente 2 GB), o uso da CPU do servidor fica muito alto. O que devo fazer para corrigir isso?

Eu uso apenas o formulário padrão html e php, para o upload de arquivos.

Sinto muito se eu postar no fórum errado. Por favor, me aponte para a direção certa

aqui é o resultado do comando "top" durante o upload de 4 arquivos (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

o código para chunking, apesar de eu não usar esse código (apenas o upload de um arquivo simples), ele ainda causa esse alto uso cpu

        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;
                }
            }                
        }
    
por bosiang 28.06.2012 / 21:13

1 resposta

1

Se você está fazendo muitas operações de arquivo, isso faz sentido. Você deve postar algum código das operações de divisão de arquivos.

    
por 28.06.2012 / 22:36