我正在使用HTML / Javascript / PHP / mysql构建动态网站和应用程序。我有 完成了网站,我现在的主要重点是确保它在推出时是 没有被我希望收到的交通所取消。 (我预计在发布日会有大约5000-7000次独立访问)。
该网站目前正在播放,您可以在此处查看:http://www.nightmapper.com/
我的托管是由bhost提供的,我在那里有银色的VPS包:
1024MB保证内存, 1536MB Burst Memory, 4个虚拟核心, 40GB磁盘空间, 750GB数据传输, 1个IPv4地址
我自己管理服务器,但我对它很新。
无论如何,计算成本最高的页面就是索引/主页 页面我有10个mySql查询,这些查询(大部分)用于获取本周的会场 列表。列表结果每个都显示缩略图图像。
首次访问的主页大小是:2.7mb,我已经完成了 我能想到的一切,以尽量减少这一点,包括生成缩略图 减少图像大小并利用浏览器缓存。
我尝试了几种方法对网站进行压力测试,包括负载影响:http://imgur.com/4UCGobf
终端中的和ab测试。我很担心结果(主要是 结果是每秒5.26个请求,这看起来相当低:
ab -n 100 -c 10 http://www.nightmapper.com/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.nightmapper.com (be patient).....done
Server Software: Apache/2.2.22
Server Hostname: www.nightmapper.com
Server Port: 80
Document Path: /
Document Length: 44808 bytes
Concurrency Level: 10
Time taken for tests: 19.012 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 4519300 bytes
HTML transferred: 4480800 bytes
Requests per second: 5.26 [#/sec] (mean)
Time per request: 1901.199 [ms] (mean)
Time per request: 190.120 [ms] (mean, across all concurrent requests)
Transfer rate: 232.14 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 26 38 17.9 32 107
Processing: 933 1828 510.2 1782 3495
Waiting: 22 116 303.4 28 1601
Total: 967 1867 518.8 1813 3591
Percentage of the requests served within a certain time (ms)
50% 1813
66% 1983
75% 2032
80% 2184
90% 2412
95% 3124
98% 3568
99% 3591
100% 3591 (longest request)
使用这些结果,我如何计算每天唯一访问者的数量以及我可以处理的并发用户数,以及我可以使用哪些方法来识别问题并改进这些结果?
我应该借此机会要求任何好的资源; 在哪里我可以了解更多有关此类优化,负载测试和可伸缩性的信息?
答案 0 :(得分:1)
这是一个复杂的问题,因为涉及很多因素。以下是我要调查的一些事情:
估计您可以处理的用户数量应该很容易理解。我写了一本名为Software Pipelines的书,讨论了这样做的方法(http://www.amazon.com/Software-Pipelines-SOA-Multi-Core-Processing/dp/0137137974)。基本思路是确定处理过程中每个步骤的持续时间,并根据您预期的峰值流量进行计算。即使你当前的实施,你现在还有粗略的数据。例如,如果您可以执行5次主页/秒的加载,并且您希望每天有7000个用户,那么只需计算峰值流量。平均每天7000个用户(每个主页加载1个)仅约5页请求/分钟。因此,即使您的峰值负载是该数字的10倍,您也应该能够处理负载。
关键是要了解并分析您的应用程序以查看花费的时间,然后应用上述一种或多种方法。
祝你的网站好运!