2016-04-01 71 views
5

我有一个EC2实例运行基本的LAMP堆栈作为网络服务器。用户可以通过我的Web应用程序上传照片,然后将照片存储在一个目录中并记录在MySQL中。通常,这些上传速度与用户的互联网上传速度一样快。在Apache(EC2)上文件上传速度比用户的网络上传速度慢

不幸的是,多个用户报告称,有时照片上传速度正在放缓 - 每张照片最多需要2分钟,而其他网站上的用户可以更快上传。

如何优化Apache(我假设它是Apache?)不​​会成为瓶颈? MPM预压缩可以解决这个问题吗?或者它可能是数据库锁定问题?


此设置的一些附加统计数据(这是相当香草):

Instance Type: t2.small EBS-optimized: False PHP v5.4 Server version: Apache/2.4.18 (Amazon)

唯一的,我正在考虑相关的另一件事是,当照片被上传,它是通过Imagick调整缩略图大小(这显然是CPU密集型的,但通常速度很快)。

+0

是照片大小相同? –

+0

是的,他们是照片来自iPhones/Android手机 - 通常只有几MB - 并且可以一次上传多个文件。 –

+0

如果他们通过蜂窝网络上传,则永远不会听到这些投诉的结束。可能有些东西你可以做,但是你应该为用户/利益相关者设定一些预期,总是会有一些速度的变化,尤其是上传速度。 –

回答

0

这种问题可能是因为很多原因。但是,在您可以控制的变量中,您可以从网络调节开始。基本上假设您的应用程序中有十个用户。所有相同的上传速度。当他们都同时尝试上传图像时。假设九个会得到很好的速度。但是因为你的服务器只能有固定的传输速率,所有这九个人都在使用,即使第十个人的网络性能相同,他也会上传图像的速度较慢。为了解决这个问题,你需要限制服务器每个连接的速度,这也称为网络节流。 在apache中配置相同可以找到here。但这只是一种猜测,在现实生活中可能有很多因素。

+0

感谢您的回复。所以如果我理解你的观点,你就会说如果有多个用户一次上传所有内容,那么有人可以获得最后一棒。但是,当只有一个用户上传时,这似乎正在发生。任何想法可能导致单个用户体验从多张照片上传缓慢上传? –

+0

@JeremyPenrod正如我指出的那样,答案只是众多可能性中的一个。如果它持续与单个用户,它可能是网络问题或可能在程序中的一些错误 – georoot

1

很多遗漏的信息,比如你在跑什么,你的规格是什么。 我会做的第一件事是通过php.ini文件增加你的记忆。

set('memory_limit','64M'); (我的设置为256m 或在php.ini中全局更改(在位于'\ lampp \ php \ php.ini'中的Lampp中):

memory_limit = 8M //搜索此“memory_limit”并调整它通过 是重启Apache之后...您的需求。

是指PIC。设置在黄应如下。

enter image description here