网站性能优化整理笔记

优化网站响应时间方法

1、减少http请求

可以降低网站的响应时间和减少传输的数据,主要方法:

    1)将多个图片合并成一个文件,减少图片下载的请求

    2)合并js脚本和css样式文件

    3)利用浏览器的缓存功能,避免重复下载相同的文件

2、动态内容静态化

针对一些内容不经常改变,可以将动态内容静态化,从而降低服务器的响应时间

3、优化数据库

4、使用负载均衡

单台web服务器处理能力有限,单台服务器承受压力达到极限时,需要更多的服务器分担工作。实现负载均衡的方法:http重定向、基于DNS的轮询解析、反向代理服务器。目的是把流量分配到更多的服务器,从而降低单台服务器的压力

5、使用缓存

缓存把需要花费昂贵开销的计算结果保存起来,在以后需要时直接取出,从而避免重复计算

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返回处理结果而直接返回,从而实现异步计算

需要了解并掌握的知识

1、吞吐率:单位时间内服务器处理的请求数

2、压力测试:测试工具LoadRunner、Jmeter、ab

ab是apache附带的压力测试软件,容易使用,ab常用的参数:

1)-n:在测试会话中执行的请求个数,默认执行一个请求

2)-c:要创建的并发用户数,默认创建一个用户数

3)-t:等待web服务器响应的最大时间(秒),默认没有时间限制

4)-k:使用Keep-Alive特性

5)-c:对请求附加一个Cookie

3、持久连接:又称为长连接,指tcp连接中持续发送多分数据而不断开的连接,与之对应的称为短连接,就是连接后发送一次数据便断开连接。

转载于:https://my.oschina.net/u/863367/blog/864995

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值