系统性能调优总结
2012-12-16 11:41
274 查看
在项目中处理了不少系统性能调优的问题,下面做一些记录以备今后随时回顾。
2、减少js和css。js和css的加载比较耗时,所以应当适当减少他们。
3、压缩js、css、压缩图片。如果js和css已经精简的不能再减,可以进一步进行压缩。图片也进行gzip压缩。提供啊传输速率。
4、js放在页面的下部。css要放在页面上部。css放在顶部能够保证用户体验,js的内容如果不急着用就放在底吧。
5、在html页面header加入缓存标签。
6、减少http请求。将css使用的图片集中在一张图片中。
7、页面校验,表单中的内容,最好在客户端有一次校验,不能全部交给服务器端校验,减少一次通讯。验证码也是这样。
8、验证码。不要在页面加载是就载入验证码,应该留下链接“显示验证码”,当用户需要提交时在请求,可有效减少验证码的请求。
2、图片的输出要经过apache的压缩,提高图片传输速度。
3、调整机器的系统参数/ect/sysctl.conf中的内容,减少各种time_wait。
4、每个squid和apache的最佳访问效率在1000~2000个链接左右,而tomcat的最佳在200个连接左右。如果超出了这个连接,系统还能撑住,说明应用程序编写的比较好,但是在这种情况下就该适当增加机器数量了。
5、独立部署机器,如果条件允许,那么每个服务器尽量能够独立部署一个应用。
2、使用缓存MemCache、ehcache。将频繁访问的数据放在缓存中,如系统首页的内容,排行内容等。也可将用户查询的内容放在缓存中,可将查询的条件作为key,适用于查询组合条件比较单一的系统。
3、写缓存。减少系统像数据库中写操作的频率,将需要写在数据库中内容,缓存起来,达到一定数目时或者定时,进行批量写入。适用于,不需要马上显示结果的应用,如投票系统,也适用于内容需要审核的功能。
5、使用读写分离。
6、使用较少的filter。尽量减少filter的个数,或将filter的功能集中在一个filter中实现。
7、验证码。验证码的生成不要使用及时请求及时生成的办法,使用对象池,将验证码初始化好,请求的使用从池子里取即可。另外验证码如果能够使用单独的应用来控制也可以。
如果没有F5,可以使用apache+tomcat的负载均衡和集群功能。这个功能旨在将进入的连接平均分配。
2、使用虚地址。使用虚地址能够保证在一台应用挂掉以后,请求能够分发到其他应用上,配合集群的功能,可保证用户不会平凡掉线。
对于数据库来说,使用虚地址能够保证快速的切换,防止大规模系统错误。
客户端
1、使用外部的js和css。浏览器会将的Javascript和CSS文件缓存,提交二次访问的速度。2、减少js和css。js和css的加载比较耗时,所以应当适当减少他们。
3、压缩js、css、压缩图片。如果js和css已经精简的不能再减,可以进一步进行压缩。图片也进行gzip压缩。提供啊传输速率。
4、js放在页面的下部。css要放在页面上部。css放在顶部能够保证用户体验,js的内容如果不急着用就放在底吧。
5、在html页面header加入缓存标签。
6、减少http请求。将css使用的图片集中在一张图片中。
7、页面校验,表单中的内容,最好在客户端有一次校验,不能全部交给服务器端校验,减少一次通讯。验证码也是这样。
8、验证码。不要在页面加载是就载入验证码,应该留下链接“显示验证码”,当用户需要提交时在请求,可有效减少验证码的请求。
服务器端
机器
1、请求的处理使用squid、apache来处理全部的静态请求如js、css和图片。还要squid处理部分页面不经常发生改变的动态请求。2、图片的输出要经过apache的压缩,提高图片传输速度。
3、调整机器的系统参数/ect/sysctl.conf中的内容,减少各种time_wait。
4、每个squid和apache的最佳访问效率在1000~2000个链接左右,而tomcat的最佳在200个连接左右。如果超出了这个连接,系统还能撑住,说明应用程序编写的比较好,但是在这种情况下就该适当增加机器数量了。
5、独立部署机器,如果条件允许,那么每个服务器尽量能够独立部署一个应用。
应用
1、减少数据库访问。如用户信息在登陆时就获取一次放在session中,以后使用的时候就用这次获取的内容进行操作,不要重复从数据库中获取了,这也是良好编写风格的体现。2、使用缓存MemCache、ehcache。将频繁访问的数据放在缓存中,如系统首页的内容,排行内容等。也可将用户查询的内容放在缓存中,可将查询的条件作为key,适用于查询组合条件比较单一的系统。
3、写缓存。减少系统像数据库中写操作的频率,将需要写在数据库中内容,缓存起来,达到一定数目时或者定时,进行批量写入。适用于,不需要马上显示结果的应用,如投票系统,也适用于内容需要审核的功能。
5、使用读写分离。
6、使用较少的filter。尽量减少filter的个数,或将filter的功能集中在一个filter中实现。
7、验证码。验证码的生成不要使用及时请求及时生成的办法,使用对象池,将验证码初始化好,请求的使用从池子里取即可。另外验证码如果能够使用单独的应用来控制也可以。
网络结构
1、使用负载均衡。F5能够帮我们完成负载、会话粘连、集群等功能,并能够监控网络整体状况。如果没有F5,可以使用apache+tomcat的负载均衡和集群功能。这个功能旨在将进入的连接平均分配。
2、使用虚地址。使用虚地址能够保证在一台应用挂掉以后,请求能够分发到其他应用上,配合集群的功能,可保证用户不会平凡掉线。
对于数据库来说,使用虚地址能够保证快速的切换,防止大规模系统错误。
相关文章推荐
- 系统性能调优吐血总结分享:转载
- Web应用系统性能调优吐血总结分享
- 系统性能调优思路总结
- Web系统性能调优吐血总结分享
- 系统性能调优吐血总结分享:原创
- 系统性能调优吐血总结分享
- 【转】系统性能调优总结
- Linux 性能调优,网络开发,系统诊断常用命令总结
- 【转载】系统性能调优吐血总结分享
- Mysql Tomcat C3p0系统性能调优个人总结(赞!)
- 系统性能调优吐血总结分享
- Mysql Tomcat C3p0 系统性能调优个人总结
- 系统性能调优总结2
- 【转】系统性能调优吐血总结分享
- [转]系统性能调优吐血总结分享
- Mysql Tomcat C3p0 系统性能调优个人总结
- 系统性能调优吐血总结分享:转载
- Perf -- Linux下的系统性能调优工具介绍
- 性能总结一----缓存调优
- Android系统性能调优工具介绍