大访问量
大存储量
访问速度
服务器监控
将用户分流到不同的服务器
lvs三种负载均衡模式 1、lvs NAT(地址转换)技术 2、lvs ip-tun(ip隧道)技术 3、 lvs dr(直接路由)模式
避免单点故障
Cisco HSRP 热备份路由协议
oracle
mysql负载均衡技术:主从数据库,大表变小表(分区分表)
1)主服务器和从服务器最终数据会一致
增删改用主服务器,查询用从服务器
2)mysql分表分区
分表
如果一张表数据超过1千万,查询速度慢,cpu负载很高
mysql分区
mysql集群(目的:冗余备份)
Nosql
Squid代理缓存技术
用来做代理,将静态数据(javascript,css,flash,image)保存在缓存池中,用户访问页面直接从squid代理服务器获取静态数据。
普通代理
页面静态化缓存
Memcache
端口11211,内存中的数据极易丢失
Sphinx搜索加速
HTTP请求的生命周期:
用户请求->路由器->网关->域名服务器->web服务器(DNS)->web应用程序
响应是与请求相反的顺序
Apache压力测试工具 ab
ab提供在各种不同的模拟用户请求发生时有关web服务器响应的统计信息,允许我们模拟任意数量的请求web服务器上摸个特定web文档的用户,ab是默认的apache安装的一部分,能够通过模拟对特定URL的任意数量请求来对web服务器进行负载测试
一个实例:
E:\PHPnow-1.5.6\Apache-22\bin>ab -n 100 -c 10 http://localhost:81/
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 localhost (be patient).....done
服务器信息
Server Software: Apache/2.4.4
Server Hostname: localhost
Server Port: 81
文档信息
Document Path: /
Document Length: 52226 bytes
连接信息
Concurrency Level: 10 所进行的并行请求总数
Time taken for tests: 41.491 seconds 运行所花费的总时间
Complete requests: 100 模拟请求总数中已经完成的请求总数
Failed requests: 0 模拟请求中失败的请求总数
Write errors: 0 使用写入数据时遇到的错误总数
Total transferred: 5262700 bytes 整个模拟响应中传输的总数据量
HTML transferred: 5222600 bytes 整个模拟响应中传输的内容正文的大小
Requests per second: 2.41 [#/sec] (mean) 每一秒支持的请求总数
Time per request: 4149.137 [ms] (mean) 每一个请求所用的时间
Time per request: 414.914 [ms] (mean, across all concurrent requests) 最小请求时间
Transfer rate: 123.87 [Kbytes/sec] received 每秒钟收到的字节数
统计信息
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.6 0 3
Processing: 1756 4041 1466.9 3757 10308
Waiting: 1753 4035 1464.5 3737 10305
Total: 1756 4041 1467.0 3758 10309
Percentage of the requests served within a certain time (ms)
50% 3758
66% 4500
75% 4781
80% 5273
90% 5932
95% 6611
98% 7768
99% 10309
100% 10309 (longest request)
ab测试可选参数
-n
即requests,用于指定压力测试总共的执行次数。
-c
即concurrency,用于指定压力测试的并发数。
-t
即timelimit,等待响应的最大时间(单位:秒)。
-b
即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p
即postfile,发送POST请求时需要上传的文件,此外还必须设置-T
参数。
-u
即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T
参数。
-T
即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded
,默认值为text/plain
。
-v
即verbosity,指定打印帮助信息的冗余级别。
-w
以HTML表格形式打印结果。
-i
使用HEAD请求代替GET请求。
-x
插入字符串作为table标签的属性。
-y
插入字符串作为tr标签的属性。
-z
插入字符串作为td标签的属性。
-C
添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。
-H
添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A
添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P
添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
-X
指定使用的代理服务器和端口号,例如:"126.10.10.3:88"。
-V
打印版本号并退出。
-k
使用HTTP的KeepAlive特性。
-k
使用HTTP的KeepAlive特性。
-d
不显示百分比。
-S
不显示预估和警告信息。
-g
输出结果信息到gnuplot格式的文件中。
-e
输出结果信息到CSV格式的文件中。
-r
指定接收到错误信息时不退出程序。
-h
显示用法信息,其实就是ab -help
。
影响响应时间并影响基准测试数字的五个方面如下所示:
地理位置与网络问题
响应大小
代码处理
浏览器行为
web服务器配置