优化网站响应时间方法css
一、减小http请求mysql
能够下降网站的响应时间和减小传输的数据,主要方法:web
1)将多个图片合并成一个文件,减小图片下载的请求sql
2)合并js脚本和css样式文件数据库
3)利用浏览器的缓存功能,避免重复下载相同的文件apache
二、动态内容静态化浏览器
针对一些内容不常常改变,能够将动态内容静态化,从而下降服务器的响应时间缓存
三、优化数据库安全
四、使用负载均衡服务器
单台web服务器处理能力有限,单台服务器承受压力达到极限时,须要更多的服务器分担工做。实现负载均衡的方法:http重定向、基于DNS的轮询解析、反向代理服务器。目的是把流量分配到更多的服务器,从而下降单台服务器的压力
五、使用缓存
缓存把须要花费昂贵开销的计算结果保存起来,在之后须要时直接取出,从而避免重复计算
Mysql响应速度提升方案:HandlerSocket
HandlerSocket概述:HandlerSocket是mysql的一个插件,集成在mysqld进程中,经过合并写入、简单协议等手段提升数据访问性能
HandlerSocket工做原理:HandlerSocket绕过mysql的sql解析层,直接访问mysql存储层
Mysq稳定性提升方案:主从复制
mysq主从复制的优势:
1)增长健壮性。主服务器出现问题时,切换到从服务器做为备份
2)优化响应时间。不要同时在主从服务器上进行更新,这样可能引发冲突
3)在从服务器备份过程当中,主服务器继续处理更新
主从复制工做原理:经过3个实现过程,一个过程发生在主服务器上,两个过程发生在从服务器上
1)主服务器将用户对数据库更新的操做以二进制格式保存在binlog日志文件中,而后由binlog dump线程将日志文件传输给从服务器
2)从服务器经过一个I/O线程将主服务器的二进制文件更新操做复制到一个relay log的中继日志文件中
3)从服务器经过另外一个sql线程将relay log中继日志文件的操做依次在本地执行,从而实现了主从之间的数据同步
主从复制配置:
1)确认主从服务器的Mysql版本
2)在主服务上为从服务器设置一个链接帐户,授予REPLICATION SLAVE权限:GRANT REPLICATION SLAVE ON *.* TO 'username'@'%.mydomain.com' IDENTIFIED BY 'password';
3)配置主服务器:打开二进制文件,指定惟一Server ID
4)重启主服务器
5)配置从服务器:提供一个惟一Server ID,不能跟主服务器的server id一致,重启mysql服务器
6)启动从服务器
7)指定主服务器信息:不须要中止服务器,能够为从服务器指定不一样的主服务器,CHANGE MASTER TO MASTER_HOST='主服务器的ip地址',
-> MASTER_USER='主服务器帐户名',
-> MASTER_PASSWORD='主服务帐户密码',
-> MASTER_LOG_FILE='二进制文件名'
-> MASTER_LOG_POS=0(从日志的开始位置开始读)
8)查看从服务器的设置是否正确:show slave status\G
web应用加速方案(反向代理)
代理服务器概述:介于客户端和web服务器之间的另外一台服务器称为代理服务器。具备缓存功能,有很大的存储空间,不断将新取得的数据存到本地的存储器上,若是已经存在用户请求的数据会直接将数据发送给用户,从而显著提升浏览速度和效率
代理服务器工做流程:浏览器不直接到web服务器取回网页,而向代理服务器发出请求,信号先送到代理服务器,由代理度武器取回浏览器锁须要信息并传送给浏览器
代理服务器做用:
1)利用反向代理服务器的安全特性处理事务
2)利用高速缓存特性在高并发量的服务器上加速
反向代理服务器:Nginx(也是高性能web服务器)、Squid(功能很是强大,能够作传统代理、访问控制、身份验证、流量管理。squid体积很是庞大,配置过于复杂)、Varnish(专一于反向代理,更简单、效率更高)
异步计算方案:Gearman
web应用比较耗时的操做:
1)剪裁用户上传的图片,或者生成缩略图
2)用户上传文件分发到多台服务器上
3)对上传视频进行转码
Geraman概述:Gearman是一个分发任务的程序框架。包含3部分:Client(建立并发起一个Job请求)、Job Server(找到合适的worker,并把job交给worker)、Worker(执行job,全部job都是由worker完成)。可使用Gearman异步发送邮件
Geraman工做流程:Client负责把一个job发送给job server,job server从worker群中找到合适的worker并发送job。worker负责处理job,完成后把结果发送给job server,接着job server 把worker发送的结果返回给client。另外gearman支持异步模式,client没必要等待worker返回处理结果而直接返回,从而实现异步计算
须要了解并掌握的知识:
一、吞吐率:单位时间内服务器处理的请求数
二、压力测试:测试工具LoadRunner、Jmeter、ab
ab是apache附带的压力测试软件,容易使用,ab经常使用的参数:
1)-n:在测试会话中执行的请求个数,默认执行一个请求
2)-c:要建立的并发用户数,默认建立一个用户数
3)-t:等待web服务器响应的最大时间(秒),默认没有时间限制
4)-k:使用Keep-Alive特性
5)-c:对请求附加一个Cookie
三、持久链接:又称为长链接,指tcp链接中持续发送多分数据而不断开的链接,与之对应的称为短链接,就是链接后发送一次数据便断开链接。