我在LAMP新。 我用Mysql,Apache安装Ubuntu-Server。 每个事情都是好的,直到一天在Web服务器上请求10000。 之后,服务器下来,不能正常工作。 估计硬件需求是否有任何作用? 我应该configurationApache还是Mysql?
你并没有真正给我们提供很多信息。 10000个请求/天是每9秒1个请求。 几乎任何硬件/ VPS今天(甚至TomTom的智能手机)应该能够处理。 无论你的问题是不是硬件。 如果你看看屏幕右侧—>相关,你会发现一堆问题的答案,应该可以帮助你缩小问题的地方。
直接回答:在3K并发请求,它不再是儿童游乐场。 找一个好的系统pipe理员来追踪瓶颈和问题。 通常这会转化为一个经过修改的系统devise/体系结构,但如果幸运的话,它只是一个写得很差的(可能是php)应用程序,缺lessmysql索引,configuration不当的apache。
漫长而远离完整的答案,一味地试图把你放在正确的道路上:
更重要的是,一个系统pipe理员可以写一本关于将虚拟LAMP Ubuntu安装程序转换为生产就绪,快速,可扩展的path的书籍。
您需要调整以下三点: 硬件要求:确实,硬件是您应该关注的第一件事情。 有两种types的内容,由Apache,静态和dynamic服务。 在静态的情况下,Apache可以容易地服务于超过2000-3000个请求,在具有以下规格的硬件上调整Apache的性能:Corei3 2.13Ghz处理器,4GB RAM。 但在dynamic内容的情况下,真正的游戏开始。 基于PHP的dynamic页面需要大量的内存和CPU资源,我将在下面各自的章节解释。
Apache:通过改变许多参数,可以轻松地调整Apache的性能。 例如,这些是我的WordPress的一些运行参数在它的巨大交通。
Timeout 30 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 6 ####Maximum Client Connections <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 512 MaxClients 512 MaxRequestsPerChild 4000 </IfModule>
每个apache进程需要大约10-30MB(可以是庞大的php页面的情况下)来提供php请求。 查找maxclients的公式是:
MaxClients≈(RAM-size_all_processes)/(size_apache_process)详细的一步一步的调整Apache的PHP的过程,请按照这篇文章: Apache的性能调整
MySQL的:
对于mySQL:将以下内容添加到my.cnf
query_cache_type = 1
query_cache_size = 26214400
这在性能上有了戏剧性的提升。 另请参阅本文,其中解释了“安装后要在MySQL服务器中调整什么” http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/