你看看前面的帖吧 我转了一个
发表于:2009-03-08 14:23:4953楼 得分:0
CSDN曾经是伪静态,现在长时间不来看了,所以并不知道是否已经做过改进,这里简单的针对。NET下的发容量来说下吧,其实这个不是只针对。NET,毕竟架构不分语言
一般情况下,架构分两种来讨论的,一种是开发架构,一种是部署架构
部署架构,就是开发完的程序在实际运行环境下,通过负载均衡,DNS轮询,SquID等等来减轻单台服务器负载,达到性能优化的目的
这里大家估计更想了解的是开发上的架构
我对这个的观点是,所有的架构都是死的,而性能优化策略是活的,我在开发中,所有的东西都不是一定要按照什么固定的模式,去死开发,更多的是针对需要优化的信息进行针对处理,下面说说我的优化策略
1、数据库优化,这个是所有的优化策略中中重要的,可以说数据库设计的好坏,直接影响了一个系统的承受力。普通的数据库细节优化,网上已经有大笔文章了,没什么好说的,想了解的自己去找。而我要说的就是在数据库设计中的一个思路,分库、分表、缓存表。
1)分库指的是在设计中,要考虑到后期数据量大的情况下,你的数据库能够随着应用随时拆分,这个拆分并不是只是针对功能模块对应的数据拆分。举个例子,就用这个CSDN论坛吧,比如里面有很多类,C#版,JAVA版,系统设计版等等,拆分的目的是可以把任何一个版的数据拆分到单独的一个数据库中去。
2)分表相对的就好理解了,就是说同类型的数据,你可以为了性能优化,进行拆分到多个表中去,拆分规则可以有多种,按照类型、按照时间、按照姓名等等。同样以这个CSDN论坛来说,我要设计的话,我会按照里面的大版面进行数据库拆分,而按照小版,进行表拆分。
3)而对于缓存表,网上我还很少看到有人来说这个东西,这个的目的就是针对一个大的数据表中,一般中有死数据库和活动数据,比如用户表,里面有很多基本不来的用户,那么针对这样的情况,当表数据上了千万的时候,我就会采用缓存表的模式来进行了,就是在实际表和用户之间在搭建一个临时表,访问用户数据时,首先访问临时表,如果不存在,则进入实际表中获取,然后放入缓存表中,同时会通过后台线程,定时将缓存表数据同步到实际数据库中,同步时间可以针对系统要求来进行。
如果理解了上面的东西,那么在数据承载上,可以上升一个很大的层次。。。。。
2、程序优化。这个对我来说相对的就不是那么的看中了,程序的优化,我更多的认为是个技巧,而不是架构了,包括现在经常见到的那些各种设计模式,另外这里提下,很多设计模式,他的出发点并不是性能优化,而是考虑的系统扩展性,所以在单个技术细节上,很多人也发现了,并不如直接的写代码来的快,但是就是推荐那样,是因为采用了那些模式的程序,扩展性比你的强,那么一旦系统要求变动,或者是要求进行拆分的时候要比你方便的多,在分担到多个服务器上时,性能相对的就起到了优化也。废话了通,继续说我对程序部分经常采用的方式吧
1) 首推静态化,这个的优化效果不用多说,直接减轻了服务器负担,不过如果用上了Squid,那么有第三放来做静态,也可以达到同样的效果
2) 合适的数据缓存,缓存很多人都用到了,但是在使用前,是否认真思考过为这个这个要进行Cache,Cache他的标准是什么?我说下我的标准:小数据量、大访问量、更新尽量少的数据,全部可以进行缓存。另外我提到的缓存,并不只是说。NET本身提供的Cache,我说的缓存还包括了使用Static来进行的数据
3) 活用线程,很多人的观念中感觉线程好象在B/S中是用不到的,或者是没有必要。其实这个观念完全错,在特定情况下使用线程,可以提高的局部性能不是一点两点
4) 功能模块拆分,这个一般人基本都在做,我要补充的是,不只是在单个项目中进行功能模块的拆分,而是为了进行分步式开发而进行拆分
在其它的基本都是细节优化了,这个没有太多兴趣写了,网上资料应该不少,可以自己搜索查阅
上面的这几部分如果能在开发中,灵活运用上,可以说,你开发个CSDN这样规模的站点,绝对不是难事。
我曾经开发的过的站点中,也有过社区,一个WEB 服务器,一个DB服务器,主题帖千万,回复帖有6000W左右吧,其它数据不算,运行过程中没出过任何问题,日访问在100W PV情况下,还没有达到性能瓶颈
分享到:
相关推荐
### Eclipse 开发性能优化与 Java 代码性能优化 在日常的软件开发过程中,尤其是在使用 Eclipse 进行 Android 开发时,经常会遇到 IDE 运行缓慢的情况。为了提高开发效率,本文将详细介绍 Eclipse 开发环境及 Java ...
《高性能PHP应用开发》是一本广受好评的PHP性能优化方面的图书,通过介绍PHP的原理和相关的工具集来实现调优性能的目的。它分析和研究了Web应用程序的前端和后端,并系统地提升了其性能和运行效率。《高性能PHP应用...
在高性能iOS应用开发领域,要确保应用的流畅运行和良好用户体验,需要对应用性能进行全面的优化。性能优化是影响用户对应用整体满意度的关键因素之一,涉及到应用的响应速度、资源消耗、稳定性等多个方面。本书《高...
高性能PHP应用开发 完整版带书签.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除! 《高性能PHP应用开发》是一本广受好评的PHP性能优化方面的图书,通过介绍PHP的原理和相关的工具...
《高性能PHP应用开发》是一本广受好评的PHP性能优化方面的图书,通过介绍PHP的原理和相关的工具集来实现调优性能的目的。它分析和研究了Web应用程序的前端和后端,并系统地提升了其性能和运行效率。《高性能PHP应用...
汽车底盘系统性能开发; 底盘工程Chassis Engineering •制动系统性能Brake System •传向系统性能Steering System Performance •悬架系统参数设计 Suspension System Parameter Design •车轮系统 Wheel & Tire ...
基于qt+c++实现ddos小工具可用于网站压测等性能测试+源码,适合期末大作业、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于qt+c++实现ddos小工具可用于网站压测等性能测试+...
JAVA开发高性能IM即时通信系统源码,JAVA语言开发的轻量、高性能、单机支持几十万至百万在线用户IM,主要目标降低即时通讯门槛,快速打造低成本接入在线IM系统,通过极简洁的消息格式就可以实现多端不同协议间的消息...
【VB开发的性能测试软件】 VB,全称Visual Basic,是由微软公司开发的一种可视化的、面向对象的编程语言,主要用于Windows应用程序的开发。VB以其易学易用的特点,深受初级和中级程序员的喜爱,也是许多企业级应用...
滑动轴承性能计算工具开发的背景: 滑动轴承作为旋转机械的核心支撑部件,其性能参数对旋转机械系统的稳定性和安全性有着直接的影响。在以往的性能分析中,由于分析过程复杂、专业要求高,以及现有分析工具的计算...
本书以剖析性能优异的Cordova App—馋口街为主线,带你快速进入Corodva/Phonegap App开发的大门!然后讲解“馋口街App”中所使用的各种性能优化技术和填坑经验!带你快速开发出性能与“馋口街App”相媲美的Cordova ...
本文旨在全面阐述整车性能开发的过程,这些过程包括根据市场需求和项目制定性能开发目标,构建性能开发团队,确立开发目标,组织VPIT(Vehicle Performance Integration Team,整车性能整合团队)会议,跟踪性能开发...
《阿里+Java+开发手册、阿里巴巴Java性能调优实战》是两本专注于Java开发和性能优化的专业书籍,分别以嵩山版和华山版的形式呈现,由阿里巴巴集团编写。这两本书籍结合了阿里巴巴在实际业务场景中的丰富经验,旨在...
基于Excel的水泵性能试验数据处理的VBA开发 摘要:本文介绍了基于Excel的水泵性能试验数据处理的VBA开发方法,旨在提高Excel中水泵性能试验数据的插值计算和性能判别功能。通过增加水泵试验容差等级选择和试验结果...
基于C语言开发的高性能大量的几何图形求交算法+源码+项目文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于C语言开发的高性能大量的几何图形求交...
基于java的开发源码-高性能的JSON处理 Jackson.zip 基于java的开发源码-高性能的JSON处理 Jackson.zip 基于java的开发源码-高性能的JSON处理 Jackson.zip 基于java的开发源码-高性能的JSON处理 Jackson.zip 基于java...
基于java的开发源码-mina高性能Java网络框架.zip 基于java的开发源码-mina高性能Java网络框架.zip 基于java的开发源码-mina高性能Java网络框架.zip 基于java的开发源码-mina高性能Java网络框架.zip 基于java的开发...
随着多核处理器的发展,对高性能计算的需求日益增加,尤其是在科学计算、大数据分析等领域。 - **并行编程技术**:为了充分利用多核处理器的能力,必须掌握并行编程技术,如OpenMP、MPI等。 - **硬件架构**:理解...
基于java的开发源码-高性能RPC框架 nfs-rpc.zip 基于java的开发源码-高性能RPC框架 nfs-rpc.zip 基于java的开发源码-高性能RPC框架 nfs-rpc.zip 基于java的开发源码-高性能RPC框架 nfs-rpc.zip 基于java的开发源码-...