- 服务器: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 特有的,但可能会有帮助。