大型Web网站数据存储与性能调优开题报告.docx
《大型Web网站数据存储与性能调优开题报告.docx》由会员分享,可在线阅读,更多相关《大型Web网站数据存储与性能调优开题报告.docx(17页珍藏版)》请在冰豆网上搜索。
大型Web网站数据存储与性能调优开题报告
学科分类号:
520.6070
湖南xxxxx学院
本科生毕业设计档案材料
论文题目:
大型Web网站数据存储与性能调优
DataStorageandOptimizationforLargeWebSite
学生姓名:
xx
学号
xx
系部:
计算机科学技术系
专业年级:
xx级计算机科学与技术
指导教师:
xx
职称:
教授
xx学院教务处2011制
一、毕业设计开题报告书
(一)选题的根据
1、本选题的理论、实际意义
现在我们所处的时代是一个信息大爆炸的时代,由于信息技术发展,特别是互联网的出现,产生并要处理的数据已经达到了PB(1PB=1024TB)级、EB(1EB=1024PB)级、甚至更多,势必要求Web服务器的性能也越来越高。
所以在网站的建设中必须对服务的要求做好做全,对于一些突发的事件也要考虑到网站的建设中。
在网站建设中有可能遇到千万人同时访问某个网站,所以一个Web服务器网站就得需要多个数据库同时工作,就是网上所说的数据库集群和并发控制。
同时在空间上我们可以将数据分布在地理位置不同的数据中心,这样不仅可以有效的避免断电事故,而且也减小了对主数据库的负载,提高了Web服务器的性能。
对于产品宣传,日常管理,售后服务以及电子商务等服务企业来说,Web服务器的性能直接影响着他们的效益,对于这些企业都希望自己的Web服务器能满足不间断的应用服务需求,但是处于成本的考虑,很多企业会选择使用MySQL软件来管理网站的后台数据。
同时还要考虑到系统的稳定,不能使系统处于宕机的状态,在系统稳定方面来说,个人觉得Linux已经做得比较好了,而且这个系统是开源的,熟悉Linux的技术人员比较多利于系统管理、优化,出现的问题很多可以在网上找到相应的解决方法。
仔细分析了以上服务业对网站的需求后,本次课题研究了基于Linux平台的大型Web网站服务器集群与架构。
使用稳定性较好的Linux系统来做服务器系统。
在LinuxWeb数据库中选取了目前被广泛使用的,成本低廉的数据库软件MySQL进行设计改进。
在数据库软件中MySQL是一款非常优秀的开源数据库管理软件,非常适合用多台PCServer组成多点的存储借点阵列(这里指的不是MySQL自身提供的集群功能),每单位的数据存储非常低廉。
用多台PCServer安装MySQL组成一个存储节点阵列,通过MySQL自身的Replication或者应用自身的处理,可以很好的保证容错(允许部分节点失效),保证应用的健壮性和可靠性。
而且MySQL数据库服务器的Master-Slave模式,利用数据库服务器在主从服务器间进行同步,应用只把数据写到主服务器,而读数据时则根据负载选择一台从服务器或者主服务器来读取,将数据按不同策略划分到不同的服务器(组)上,分散了数据库的压力,也保证了Web服务数据能够不间断的被客户访问。
2、综述国内外有关本选题的研究动态和自己的见解
很长一段时间,人们只能通过传统的媒体(如电视、报纸、杂志和广播等)来获得信息。
但是随着计算机技术的发展,人们获取信息的方式已不再满足于传统媒体那种单方面的传输和获取,而希望有一种主观的选择性。
当今,网络已经提供各种类型的数据库系统,如文献期刊、气象信息、论文检索等等。
在计算机网络发展的推动下,信息的获取变得非常及时、迅速和便捷。
1993年,WWW的技术有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得WWW成为Internet上最为流行的信息传播方式。
现在,Web服务器成为Internet上最大的计算机群,Web文档之多、链接的网络之广,令人难以想象。
可以说,Web为Internet的普及迈出了开创性的一步,是近年来Internet上取得的最激动人心的成就。
Web应用是Internet上一种最重要、最广泛的应用形式,现在越来越多的应用采用基于Web服务器的B/S计算模式。
随着应用复杂性和使用者的增加,Web服务器的系统容量正面临着巨大的挑战。
采用大容量的服务器替代原有系统会导致巨大的开销,无法保护原来的投资,而且这种办法也不是一种真正的解决之道。
Web服务器集群技术为Web服务器系统容量的不断扩展提供了良好的途径,它将一组Web服务器通过一定的形式组织在一起,构成单一的服务器映像,以提供强大的服务能力。
这种系统具有较高的性能价格比和良好的系统可靠性,并且能够通过添加服务器的方式来不断扩充系统的容量,因此,Web服务器集群技术已经成为构建大型Web网站系统的关键技术之一。
目前国内许多网站自身的确存在不少问题,主要表现在:
第一,规模小、联系不紧密,处于各自为政的分散状态;第二,国内网站在首页页面上通常会放置太多内容,也存在很多广告,使整体版面过于杂乱;第三,安全性低。
国内只有交易、银行等网站才会注意到安全连接的问题。
正是由于中国商业网站现存在的种种问题和不足,在面对外来强大竞争对手时,不免产生担忧和底气不足,对未来的发展心存疑虑和困惑。
但这并不能从根本上解决问题,也不是商业网站发展壮大的长远之计。
对本土商业企业资源的整合、共享、利用是大势所趋,引进先进的设计理念迫在眉睫。
由于经济方面的关系,国外网站的建设要比国内的乐观。
国外网站的规模比较大,而且渐渐趋向于多元化。
在网站的稳定性方面也高于国内的许多网站。
(二)研究内容
本课题研究的主要内容包括MySQL主从复制,MySQL代理Proxy与MySQL读写分离。
1、MySQL主从复制
MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。
当从服务器连接主服务器时,主服务器上开启一个IO线程将主服务器上更新的二进制日志文件传输给从服务器,从服务器开启两个线程,一个线程用于I/O,主要用来处理客户端对该服务器网站的请求,另外一个线程执行Master的Binlog中SQL语句,按照读取的主服务器二进制日志文件,将主服务器上发生的任何更新,在从服务器上再执行一遍,以达到与主服务器同步的要求。
2、MySQL代理Proxy
MSQL代理是一个介于MySQL客户端和MySQL服务器之间的简单程序,可用来监视、分析或者传输他们之间的通讯。
它在客户端和服务器端建立一个数据库连接池,当MySQL客户端访问MySQL服务器时,先把请求放在这个数据库连接池中,通过分析判断客户端发来的是什么类型的请求,来决定MySQL客户端与哪个MySQL服务器进行连接。
可以看出它在逻辑上可以区分开各个MySQL数据库的职责,能够更高效的处理客户端发来的请求,保证了充足的打开的连接,完成事务的处理和查询处理,降低了单个MySQL数据库的负担。
3、MySQL读写分离
MySQL服务器中主数据库主要负责写入和查询数据,而从数据库只负责查询数据。
当
客户端向该网站发送请求时,MySQLProxy会在客户端和服务器端建立一个连接池,通过分析客户端发出的请求来把连接分配给服务器。
当客户端用户对这个网站执行查询操作时,MySQLProxy会把客户端发来的请求分配给从数据库,让从数据库来完成客户端查询数据的请求。
当客户端用户在网站上执行写操作时(如:
注册用户),MySQLProxy就会把客户端发来的请求分配给主服务器,在主服务器上先进行更新,然后通过主从复制将服务器上主数据库的更新同步到从数据库中。
客户端用户用MySQL客户端程序如MySQL登陆到MySQL代理,可以执行读写操作,客户端对数据的读写由MySQLProxy程序来调度实现读写分离。
(三)研究方法、拟解决的关键技术、实验方案及可行性分析
1、研究方法
①文献检索法:
通过查阅相关文献资料并对其进行研究分析;通过查阅书籍,网络和向指导老师请教的方法进行知识准备,由浅入深,由易到难,由简到繁的进行研究。
查看各文献了解别人的研究内容,全面了解掌握其核心技术,指导本系统分析设计与实现。
②案例分析法:
通过案例分析借鉴成功项目的经验,使项目做起来更加得心应手。
③面向对象软件工程法:
世界万物都可以抽化成对象,以人的思维在计算机中展现现实世界。
按照面向对象方法学首先进行面向对象的分析,结合名词抽取法的分析理念,识别出系统的使用者,系统大体的架构与功能模块。
然后进行面向对象的设计,结合以用例为驱动的设计思想,逐一的分析系统的功能模块,识别出系统的各个用例。
④模块的重用与复用法:
根据面向对象的分析与设计后得到的网站的模型,再结合以前网站设计的经验,进行网站的设计。
重用以前项目的相同功能模块,从而大大的缩短开发的时间,提高了网站设计的效率。
2、拟解决的关键技术
Oracle对服务器的要求相对较高,相同配置下对于数据处理要求不大的应用比如网站,论坛;MySQL不论是从安装,管理配置上都比Oracle更合适,但是对于大型的网站,单个MySQL数据库又满足不了日常需求,比如备份,数据同步等等高可用。
所以这个时候就要启用MySQL的AB主机复制功能,也就是俗称的数据同步。
MySQL作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。
但在实际的生产环境中,由单台MySQL作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。
因此,一般来说都是通过主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力这样的方案来进行部署与实施的。
如下图1所示:
图1主从复制方式
MySQL主从复制的主要原理是Slave请求连接Master;Master开启1个线程(IO线程)将自己的二进制文件传输给Slave;Slave开启两个线程,1个线程用于I/O,另外一个线程执行Master的Binlog中SQL语句,对库进行同样的操作;从而达到同步的目的。
MySQL代理Proxy主要原理如图2所示:
图2MySQL代理
MySQL代理是一个介于MySQL客户端和MySQL服务器之间的简单程序,可用来监视、分析或者传输他们之间的通讯。
他的灵活性允许你最大限度的使用它,这些包括负载平衡、容错、分析查询和修正等等,其最大用处就是实现MySQL的读写分离,降低单个MySQL数据库的负担,在逻辑上区分开各个MySQL数据库的职责。
MySQLProxy真正意义上实现了读写分离。
(其实如果你手动做读写分离,MYSQL主从复制架构就可以实现)它是在客户端和服务器端建立了一个数据库连接池,它通过分析客户端发出的请求来把连接分配给服务器以达到负载均衡的目的。
有了这个连接池,我们就可以保证充足的打开的连接,完成事务的处理和查询处理。
我们可以用MySQL客户端程序如MySQL登陆到MySQL代理,然后执行读写操作,以测试读写分离的正确性。
3、实验方案
MySQL主从复制
1IP规划:
2安装相关系统包
3安装MySQL
4拷贝配置文件
5修改用户远程登录权限
6修改配置文件(/etc/f)
主服务器
server-id=1
从服务器
server-id=2..3..4依次增加
7启动服务(主从相同)
#serviceMySQLstart
8授权(仅主服务器)
9查询主数据库状态(主服务器上)
10配置从服务器
11测试
MySQL代理Proxy
1IP地址规划:
给MySQL读、写服务器,MySQL-Proxy代理服务器各分配一个IP
2安装过程中所要用到的包如:
libevent,lua,MySQL和MySQLProxy
3配置MySQL-Proxy
4测试:
建议开3个以上的线程来测试,开启多个连接后通过netstat–anp查看MySQL进程连接不同的MySQL数据库
MySQL读写分离
1硬件需求:
两台已安装完成的MySQL主从服务器,一台MySQL代理,一台客户机。
2编译环境:
3安装读写分离需要的包:
MySQL客户机所要安装的包有:
pkg-config,libevent,glib,lua,check,MySQL-devel,MySQL-Proxy。
4编写MySQL-Proxy启动脚本:
使MySQL-Proxy开机启动。
5安装MySQL客户机:
#rpm-ivhMySQL-client-community-5.1.46-1.rhel4.i386.rpm
6测试:
使用客户机连接MySQL代理:
然后使用从服务器查看:
->showprocesslist;
主机连接成功;则代理成功
->select*fromhelp;
->select*frombackends;
主服务器上进行的操作:
启动MySQL服务
通过命令行登录管理MySQL服务器
授权给从数据库服务器
配置从服务器:
修改从服务器的配置文件/opt/MySQL/etc/f将server-id=1修改为server-id=10,并确保这个ID没有被别的MySQL服务所使用。
启动MySQL服务:
通过命令行登录管理MySQL服务器执行同步SQL语句正确执行后启动Slave同步进程
编译安装lua:
MySQL-Proxy的读写分离主要是通过rw-splitting.lua脚本实现的,因此需要安装lua。
这里建议采用源码包进行安装
安装配置MySQL-Proxy,推荐采用已经编译好的二进制版本,因为采用源码包进行编译时,最新版的MySQL-Proxy对automake,glib以及libevent的版本都有很高的要求,而这些软件包都是系统的基础套件,不建议强行进行更新。
并且这些已经编译好的二进制版本在解压后都在统一的目录内
创建MySQL-Proxy服务管理脚本
4、可行性分析
①技术可行性:
由于Linux和MySQL都是开源的,每个人都可以深入的了解它们,使得这两个软件发展很迅速,很多技术也发展很得很成熟。
同时这两个软件所涵盖的功能也特别全面。
Linux操作系统作为Web服务器操作系统,具有明显比其他操作系统的优势。
由于Linux本身是一种开放式系统,因此,在Linux中,可用的集群软件非常多。
Linux的服务性能比较高,网络服务明显优于windows网络服务,而且Linux内核本身就对Web服务不断优化,更甚的是Linux系统下的集群容易构建。
MySQL数据库软件对于其他数据库软件来说易学易用,对于现在也比较普及。
对于MySQL数据库无论是在开发方面,还是支持方面都有强大的工具可以选择。
而且这个软件非常适合用多台PCServer组成多点的存储节点阵列(这里我所指的不是MySQL自身提供的集群功能)。
②社会效益可行性:
一个高可用性的网络,肯定不能频频出现故障。
只要发生故障,即使是很短时间的中断,都会影响业务运营,特别在当前适时性强、对丢包和时延敏感的业务,如语音和视频等业务在网络上广泛部署的情况下更是如此。
为了提高数据的高可用性,不间断性本文提出了基于Linux平台的大型Web网站服务集群与架构。
利用MySQL数据库软件在后台搭建多个数据中心,可以有效的避免单个数据库故障发生用户不能访问网站的情形,同时能够缓解数据对单一数据库的负荷,能够使网站持续不间断为用户提供高质量的服务。
③经济可行性:
MySQL数据库归MySQL(和PHP搭配之最佳组合)AB公司所有,但是这个软件是开源的,有一个社区版可以免费下载。
稍俱常识的新入门者都可以轻松实现在一个常见硬件上安装和配置MySQL(和PHP搭配之最佳组合),而不需要公司投入资金培训。
MySQL(和PHP搭配之最佳组合)对硬件的要求较低,不需要花钱购置昂贵的硬件。
MySQL(和PHP搭配之最佳组合)易学、易部署、易管理和易维护。
每单位的数据存储成本也非常的低廉。
LinuxOS作为Web服务器操作系统最大的优势是其出众的性价比。
基于X86的体系构架价格比RISC小型机和工作站低出几倍甚至十几倍,于此同时Linux的操作系统系统软件也可以在网上免费,或者通过很少的花费来获得良好的资产保护。
Linux对服务器要求不高,因此,企业同样可以将淘汰不用的计算机作为Web服务器加入集群。
(四)进度安排和采取的主要措施
1、进度安排
阶段
工作内容
起止时间
备注
1
查阅文献资料,选题,撰写开题报告,开题答辩
2011年09月20日—
2011年11月21日
2
系统规划、需求分析、概要设计、详细设计、编写代码、系统测试
2011年11月22日—
2012年03月20日
3
完成并上交毕业设计的第一稿
2012年03月21日—
2012年03月30日
4
毕业设计中期检查,交第二稿
2012年04月01日—
2012年04月15日
5
修改毕业设计文档并交第三稿和最终稿
2012年04月16日—
2012年04月30日
6
本科生毕业设计答辩(第一次、第二次)
2012年05月04日—
2012年05月23日
2、主要措施
①大量查阅相关图书和资料,包括与此论文相近的论文、期刊,从而更好的理解研究的课题,同时提取他们的优点结合自己的需要开发本系统。
②积极与指导老师进行沟通,明确自己设计的缺陷和不足,多听取指导老师的意见和建议,在开发过程中,结合指导老师的指导与实际情况合理的那篇各个阶段的任务,逐步对系统进行完善。
③与同学经常性的交流,互相学习。
在探讨后不能解决的问题再向指导老师寻求技术上和其他需要的帮助,或者向有项目经验的开发人员或技术人员寻求意见和技术指导来保证系统的高质量完成。
④在系统测试通过后,结合之前的分析、设计与测试等多个阶段的文档,开始论文的撰写工作。
(五)主要参考文献
[1]胡凯.集群计算.计算机世界,2001,
(2):
43-61.
[2]朱文涛,洪佩琳,李津生.基于LINUX虚拟服务器的负载均衡.计算机工程,2002,27(12):
55-57.
[3]应吉康,赵书钦,等.LINUX集群技术.微型电脑应用,2001,17
(1):
24-37.
[4]张帆,袁道华,叶振,刘郊,王萍,等.基于Linux的服务器集群系统设计及实现.计算机工程与应用,2006,14(8):
22-45.
[5]李春青.Linux服务器集群系统在高校办公环境中的应用[J].广西民族师范学院学报,2011,(3):
32-59.
[6]薛正华,刘伟哲,董小社,伍卫国,等.基于思维进化的集群作业调度方法研究[J].西安交通大学学报,2008,(06):
32-52.
[7]赛迪顾问计算机产业研究中心.中低端市场争夺升级[N].中国计算机报,2007.2
(1):
12-45.
[8]刘波.刀片服务器迈向主流[N].计算机世界,2006,(4):
21-62.
[9]清水.省钱的服务器集群[N].计算机世界,2011,(4):
54-87.
[10]刘芳.服务器集群技术助力网络游戏[N].中国计算机报,2003,2(3):
15-41.
[11]杨勇.基于DFS的构建服务器集群技术的研究与实现[D].成都:
成都理工大学硕士学位论文,2011.05.
[12]王昭.合作式Web集群缓存系统的研究与实现[D].武汉:
武汉大学硕士学位论文,2004.06.
[13]郑伟.服务器集群系统高可用性研究及管理软件的实现[D].武汉:
武汉大学硕士学位论文,2004.11.
[14]吕其元.基于LINUX平台的服务器集群的架构和实现性研究[D].西安:
电子科技大学硕士学位论文,2001.10.
[15]胡军.基于Linux集群的可伸缩电子邮件系统的研究[D].昆明:
昆明理工大学硕士学位论文,2003.7.
[16]李定锁.利用文件优化分配实现Web服务器集群负载均衡的研究[D].武汉:
武汉大学硕士学位论文,2004.6.
[17]刘兆明.基于随机高级Petri网模型的服务器均衡集群研究[D].西安:
西安建筑科技大学工程硕士学位论文,2006.5.
[18]朱平,朱建涛,高剑刚,蒋金虎,等.高性能计算存储关键技术研究[A].2010年第16届全国信息存储技术大会(IST2010)论文集[C],2010.12.
(六)、毕业设计开题指导意见:
(对选题的评价、研究方案的设计及开题指导意见)
课题
基于Linux平台的大型Web网站服务器集群与架构
作者姓名
xx
所属系、专业、年级
计算机科学技术系
xx级计算机科学与技术
开题时间
2011年11月15日
预计字数
约2万字
指导教师意见:
1.本课题研究设计开发基于本体的科技信息语义检索系统,有一定研究和应用价值;
2.选题符合专业培养目标,体现了综合训练基本要求;
3.本研究设计具备了一定相关理论技术储备,收集查阅了系列相关的文献资料;
4.研究内容明确、技术方案可行。
具备开题条件,同意开题答辩。
指导教师(签名):
年月日
系指导小组意见:
计算机科学技术系(盖章)组长(签名):
年月日
二、毕业设计成绩评审表
(一)指导教师评审用表
评价
项目
评价内容
满分
指导教师
评分
选题质量20%
01
选题符合专业培养目标,体现综合训练基本要求
5
02
题目的难易度
5
03
题目工作量
5
04
题目与生产、科研、实验室建设等实际的结合程度
5
能力水平80%
05
综合运用知识的能力(学科范围,内容深广度及问题难易度)
10
06
应用文献资料的能力
5
07
实验(设计)能力
10
08
计算能力(数据运算与处理能力等)
5
09
外文应用能力
5
10
计算机应用能力
5
11
对实验结果的分析能力(或综合分析能力、技术经济分析能力)
10
12
插图(或图纸)质量
5
13
撰写水平
10
14
实用性与科学性
5
15
规范化程度(设计栏目合理、SI制的使用等)
5
16
创见性(只分“有”或“无”)
5
总评分:
______________成绩等级:
__________
指导教师评定意见:
指导教师签名:
年月日
注:
1.评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分90~100为优秀,80~89为良好,70~79为中等,60~69为及格,60分以下为不及格;2.此表用于指导教师对毕业设计成绩的评定。
(二)评阅教师评审用表
评价
项目
评价内容
满分
评阅教师
评分
选题质量20%
01
选题符合专业培养目标,体现综合训练基本要求
5
02
题目的难易度
5
03
题目工作量
5
04
题目与生产、科研、实验室建设等实际的结合程度
5
能力水平80%
05
综合运用知识的能力(学科范围,内容深广度及问题难易度)
10
06
应用文献资料的能力
5
07
实验(设计)能力
10
08
计算能力(数据运算与处理能力等)
5
09
外文应用能力
5
10
计算机应用能力
5
11
对实验结果的分析能力(或综合分析能力、技术经济分析能力)
10
12
插图(或图纸)质量
5
13
撰写水平
10
14
实用性与科学性
5
15
规范化程度(设计栏目合理、SI制的使