资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
黑夜路人2010.12.19http:/blog.csdn.net/heiyeshuwu网站架构的迭代开源软件选型网站基础优化Q&A没有通用的架构,只有适合自己网站特点的架构没有一成不变不用升级的架构,架构一定是迭代、迭代、再迭代实践,实践,再实践最简单的单台Web+DB架构多Web服务器缓存服务器DB服务器 (主从)CDN/代理服务器:缓存静态资源,比如Squid负载均衡服务器:解决服务器定位和服务器存活检查,比如LVS、HAProxyWeb服务器:提供主要的Web业务服务器,比如Apache、Nginx资源服务器:持久存储静态资源的服务器,比如存储JS、CSS、图片等数据,一般构建也是Web系统缓存服务器:减少数据库查询,缓存查多改少的数据,比如MemcachedDB连接池:解决数据库并发连接数(长连接)、数据库读写分离,比如 MySQL Proxy数据库:采用双主,多从的架构模式,保证冗余和高可用性(标配MySQL)内容检索服务器:为减轻数据库的压力,解决中型站点经常的排序和关键字检索需求 ,比如 Shpinx,Xapian其他:按照网站需要的服务,比如 消息队列系统、可持久化缓存系统、分布式文件系统等达到高可用性(High Availability)是架构的重点之一 资源定位、健康检查、负载均衡 关键服务的主备冗余:Web、DB 及时有效的监控和报警达到高可扩展性 (High Scalability)是架构的重点之二 数据库的切片(Sharding):水平切分、垂直切分 减少模块耦合度,基础模块独立服务:比如用户系统(Passport)达到高可维护性(High Maintainability)是架构的重点之三 架构模块和服务可以容易替换 架构可升级负载均衡Web服务PHP缓存服务DB连接池数据库其他LVS工作在四层,内核态,性能极高,有VIP功能,配合 keepalived 做有效的 心跳检查和负载均衡安装配置麻烦,HAProxy工作在四层到七层,功能强大,有VIP功能,配置简单,CPU占用高Nginx工作在七层,应用层功能多,配置简单,无法支持VIP功能负载均衡器测试数据机器足够并且应用重要建议独立使用LVS或HAProxy,机器不足使用 Nginx软件软件每秒并发量每秒并发量CPU占用占用结论结论LVS (DR模式)1.6W25%性能综合比最好,配置复杂HAProxy2.3W95%转发快,CPU占用高,配置简单Nginx2W80%转发没有haproxy快,CPU比haproxy占用低Apache2.2版本非常稳定强大Preworker模式取消了进程创建开销,性能很高Nginx基于异步IO模型,性能强悍,能够支持数万并发对小文件支持很好,性能很高代码优美,扩展库必须编译进主程序Lighttpd基于异步IO模型,性能Nginx没有差别扩展库是SO模式,比Nginx要灵活全球使用率比以前低,安全性没有上面两个好Web服务器静态内容测试数据处理静态文件Apache 性能比 nginx和lighttpd要差Nginx在处理小文件优势明显Web服务器动态内容测试数据处理动态内容三者相差不大(测试环境差异),主要是取决于PHP和数据库的处理性能版本选择版本选择PHP 4:马上抛弃它吧,低下的性能,不完整的面向对象支持PHP 5.2.x:成熟稳定,各种扩展都支持,性能卓越,建议使用PHP 5.3.x:有一些包括Unicode、命名空间之类的新功能,看个人喜好工作模式选择工作模式选择Mod_php5.so:如果使用Apache的话,简单配置,可以使用本模式,挺稳定,性能不错FastCGI模式:推荐结合 php-fpm 的 fastcgi模式,性能很高,工作稳定,而且可以跟 Apache、Nginx、Lighttpd 完美结合其他其他注意安全配置,注意 safe_mode、open_base_dir 等选项停掉不需要使用的PHP扩展毋庸置疑,选择 Memcached 吧Memcached注意点32位机上开辟内存不要超过2G,建议可以多开几个进程如果没有富余的机器可以跟Web一起部署它单个数据值长度不能超过1M数据存储最长有效期是30天MySQL Proxy性能不是太好,目前功能不完善无法进行读写分离,需要自己写Lua脚本实现SQL Relay业内普遍反映不好用您有推荐的吗?毋庸置疑,选择MySQLMySQL特点开放式存储引擎,可以编制自己的引擎安装部署简单,运维对比其他数据库简洁标配MyISAM 和 InnoDB引擎,各有所长MySQL缺点没有好的热备工具(收费)目前Cluster支持不太完善Orache收购后,前途未卜替代品MariaDB:创始人Monty构建,Maria引擎、XtraDB引擎Drizzle:精简版MySQL,云计算目标反向代理服务器SquidVarnish数据检索服务SphinxXapian消息队列MemcacheQMySQL优化前端优化服务优化服务优化选择合适的版本:MySQL 5.x选择合适的存储引擎:MyISAM、InnoDBMyISAM:表级锁、查询快(500W),可以countInnodb:行级锁、事务支持(隔离级别),不要count,要设置主键重要的配置:Max_connections、Query_cache、key_buffer、sort_bufferInnodb_buffer_pool_size、 innodb_flush_log_at_trx_commit硬件硬件SSD SAS SCSI,随机存取内存,多核CPU应用优化应用优化对数据进行Sharding:分表,分库垂直切分:按照业务或产品切分水平切分:按照数据拆分,比如mod或div尽量减少查询可以缓存的就不要查数据库部分数据可以借助比如 Shpinx解决要注意的查询给需要的字段加上索引,比如需要 WHERE 或者 ORDER BY 的字段不要LIKE %key%,不使用索引,可以 LIKE key%如果可以,少使用 SELECT * FROM XX,尽量查询自己需要的字段避免使用 JOIN/GROUP BY/DISTINCKINNODB表不要count雅虎十四条前端优化规则减少HTTP请求把JS文件 和CSS文件合并压缩把页面图标类大图做成一个,使用CSS进行调用雅虎十四条前端优化规则对静态资源进行处理静态资源修改过期时间为未来给静态资源独立的域名,比如 img.abc.com其他http:/www.keephelp.com/qianduan/yahoo-14/http:/zh.linuxvirtualserver.org/node/1394谷歌搜索
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号