提高服务器上传速度的技巧

提高服务器上传速度的技巧
  • 服务器:IBM X3630
  • CPU:2x Intel 四核 E5620(8265 点)
  • 内存:16GB DDR3
  • 硬盘:4x300GB SAS 15k
  • 带宽:10 TB 上行链路端口
  • 速度:1 x 1000Mbps 全双工

有了上述功能,我的服务器的下载速度很好。但是当我尝试上传文件时,速度非常慢。我尝试了 2 种方法,上传的是 10 MB 的图像文件。

第一种方法是使用file_get_contents():

<?php

$link = 'http://www.domain.com/testfile.jpg';
$start = time();
$size = filesize($link);
$file = file_get_contents($link);
$end = time();
$time = $end - $start;
$size = $size / 1048576;
$speed = $size / $time;
echo "Server's speed is: $speed MB/s";

?>

结果是:服务器速度为:4.8631234169 MB/s,2-3 秒后完成。我觉得这对我来说很棒!

第二种方式,使用 php 进行普通文件上传:

<?php
if(isset($_FILES['uploadedfile']['tmp_name']))
{
    $target_path = "upload/";

    $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
        echo "The file ".$target_path.basename( $_FILES['uploadedfile']['name']). 
        " has been uploaded";
    } else{
        echo "There was an error uploading the file, please try again!";
    }
}
?>

<!DOCTYPE html>
<html>
<body>

    <form enctype="multipart/form-data" action="" method="POST">
    Choose a file to upload: <input name="uploadedfile" type="file" /><br />
    <input type="submit" value="Upload File" />
    </form>

</body>
</html>

这种方式对我很重要,因为我的客户用这种方式上传文件。应该很快!

这种方式的结果:上传完毕53 秒。速度太可恶了!

我在网上搜索如何提高上传速度,但没有找到任何内容。我该怎么办?

答案1

可能有很多原因,所以我几乎是评论而不是回答。我会查看磁盘速度和 php 配置。具体来说,内存限制应该大于 php 配置中的最大上传大小。 此链接是 drupal 特有的,但可能会有帮助。

相关内容