● 上传的各类二进制文件,建议不要存储进数据库,而只存储档案路径,否则大量的硬盘 I/O 会拖累数据库的系统性能。
虽然您要上传至数据库也是可以,但强烈不建议:
http://www.cnblogs.com/WizardWu/archive/2008/11/19/1336411.html
● Silverlight 2 已有很多人在网络分享「FTP 上传」的代码。漂亮的操作界面,当然是让客户端有友好的感受的最直接做法。
● VS 2003 任一种版本的 ACT (Application Center Test),或 VS 2005 / 2008 的 Team System(Suite) 版本开发工具,有内建「压力/性能测试工具」,创建一个新项目时,可选择「测试项目」,接着在「测试(S)」菜单中,选择「创建→负载测试」,其它细节您可参考 MSDN Library 或相关文档。
此种「负载 / 性能测试」项目,可模拟「同时间内大量用户同时连上网站」的情况,并可配置随着时间逐步增加用户数量。
当然还有其它更专业的性能测试工具,不过是要钱的。
● 至少要让 DB Server、Web Server / IIS 分在两台机器上,不要为了省一点硬件的钱,而牺牲这方面的性能。
● SQL statement 一定要写得好,数据库中数据表的规划亦为关键。若此两点就做不好,应用程序再怎么优化也没用了。
坊间亦有 Oracle 或 SQL Server 性能优化的英文或中文书籍,亦有 SQL statement 的性能探讨书籍或文件。
http://www.cnblogs.com/WizardWu/archive/2008/10/27/1320055.html
● Oracle 联机方式,若是搭配 .NET 开发,应使用「原生(native)」的 OracleClient 联机方式,不要用通用的 OleDb。
● 若使用的数据库不确定是否为 Oracle,可参考 PetShop4 示例、Design Patterns 里的 Abstract Factory Pattern、「大话设计模式」等书籍。
● 若用的是 ASP.NET,千万注意「数据分页」的问题,GridView / DataList 控件绝对不能用 SqlDataSource,至少要用 ObjectDataSource 搭配自定义的「分页」做法。
● 砸钱加装 AP Server,或加装硬件 Switch,或加装硬件、机器做 Loading Balance (一些 Server OS 如 Windows Server 亦有提供此种设定):
http://www.cnblogs.com/WizardWu/archive/2009/01/03/1367527.html
以下为引用文:
由于原本使用的 L4 Switch 较为老旧,负载量比较差,因此陈xx选择将它汰换新的设备,加强负载量;恰好那时正好准备将应用服务器的架构上线,就藉此机会将网络架构更新。
陈xx说,这样的架构搭配负载较强的 L4 交换器,强化网站的处理性能,并凭借此抵御网络攻击。在此之后,网站依然会受到零星攻击,但都不会对造成太大影响。
全盛时期,来自美国 blog 的流量每天达 80 万次。这个数字其实不高,对程序高手来说是小菜一碟,但笔者是半吊子工程师,知识有限也因此可能程序写得不好,频频被主机供货商发信警告,要求改善网站系统性能。最后,我决定开发 cache system。
cache system 缓存系统上线后,将数据库读写,从每天 80 万次降低到每天 16 万次。这期间也请高手朋友帮忙进行数据库结构优化,帮助很大。笔者在过程中学习到,一个良好的「缓存系统 (cache system)」对于提供 Widget 功能的网站来说非常重要。
…中间略…
能够做到随时搬迁整个网站到另一家主机供货商,除了程序本身的调整外,还要归功于网站管理软件的盛行。在此要推荐的一套称为 Plesk 的网站管理软件。有的主机供货商会直接帮你安装 Plesk ,免费或另外付费。 Plesk 的所有管理功能都是透过 Web 界面,方便到无以复加,大大降低对技术能力的要求。
除了 Plesk 以外,网站管理软件还有其它选择。还有 WHM 加上 cPanel 的组合,也是常见的网站管理解决方案。不过笔者还是比较偏好使用 Plesk,毕竟使用起来容易,也难怪他们的市场占有率一直是独大。只是,功力高的工程师可能会喜欢 WHM + cPanel,因为弹性比较大。不论选择哪一种,都可以帮助你节省许多时间。
一点一点设计。
这样的需求,200个客户端应该算是小项目吧。
200个用户这应该是个小项目,不能说是大项目吧!
至于你说得2M,不知道是指你服务器用的是2M独享带宽吗?如果是的话,哪么这个需要考虑你客户使用的带宽了,如果客户的带宽是1M ADSL的话,你这个并发的连接也就8~16个用户吧!不过如果用户的操作行为不是非常的集中化的话,应该够用吧!但如果用户行为一旦集中化你这个带宽环境应该是不够的!
因为你这个加入200个用户同时连接也才200个并发,因此这主要的问题是带宽。至于其他的我想应该一般的程序就可以完成你的需求。