高手进,如何提高大并发量的系统性能

abcyzq 2009-06-21 06:15:55
需求如下:
做个网上个人所得税申报系统,需要申报个人所得税的用户约300万人,申报的时候每个用户需要上传附件。如此大的用户访问量和附件,会对系统性能造成巨大威胁,请问有什么策略能提高系统性能,谢谢。
...全文
433 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
hchxxzx 2009-06-22
  • 打赏
  • 举报
回复
不说访问量,光说附件

附件的最大问题在于上传及下载.还有下载之前的查找.
1.上传:
1)上级组件的选择:ASP.NET自带的上传,速度很快,但消耗内存也很快.这方面,应该找找看有没有更好的上传组件.按2个标准看,一是CPU占用率,一是内存消耗.
2)需要专门的文件服务器,可能需要多台(需要多少看情况而定).当然硬盘要大.利用多台文件服务器缓解下载的压力.
3)文件夹的规划,根据上传数据仔细分析,重点是,实现每个文件夹下,预计将来不能产生太多的文件数量(或文件夹数量),一般来说,一个文件夹下允许几百个子文件夹,各文件夹下允许几百个文件,不能出现一个文件夹下上万个文件的情况.
4)应从数据库文件上传表及文件夹存储设计方面入手,设计成有弹性的,可迁移的.以便万一无法应对访问时,可随时增加更多的服务器或硬盘来解决问题.

2.下载:
1)一般上传的文件,变化的较少,应有效采取缓存的方式.(但我不知道对于二进制文件缓存会不会生效?)
2)采用代码手段,限制下载流量.一般情况下,服务器对于下载,都是网络有多快就给多快,但对于大批量的,应设计成类似流模式的形式,保持一定流量的输出,削平下载高峰,填平下载低谷,输出要平缓.
3)有一个说法,输出附件的时候,如果预先告知浏览器该文件的大小,则速度会更快(我没有测试过),如果测试可靠的话,请在数据库中设计这个字段.

暂时想到这么多.后面有实际经验的再补充一下.
laolaixuebiancheng 2009-06-22
  • 打赏
  • 举报
回复
关注
mb_1985 2009-06-22
  • 打赏
  • 举报
回复
没办法,除非砸钱进去,先压缩并分类文件保存也是好办法
jzywh 2009-06-22
  • 打赏
  • 举报
回复
尽量使处理每个请求的时间降到最小
分布式
windinwing 2009-06-22
  • 打赏
  • 举报
回复
一台服务器很困难,主要看并发有多少人。如果报税就集中在那么几天,那就够呛
abcyzq 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 windinwing 的回复:]
瓶颈主要是上传啊,把上传做成控件,文件分发到多台服务器上.
用户也分配到不同的服务器 server1 ,server2, ... 后台连同一个数据库
[/Quote]

是啊,这部分是瓶颈,附件压缩下再上传能起点作用不.文件存在一台服务器.
加油馒头 2009-06-22
  • 打赏
  • 举报
回复
呵呵
高难度的

全是看经验

就算这样说出 也不定能很好的体会出来

不过楼主还是可以去试试
goutou12 2009-06-22
  • 打赏
  • 举报
回复
学习
mbh0210 2009-06-22
  • 打赏
  • 举报
回复
操作的时候使用缓存吧,这样减少数据库服务器的压力,数据库操作特多的表你分几个区吧
peng_weida 2009-06-22
  • 打赏
  • 举报
回复
学习
Pig23 2009-06-22
  • 打赏
  • 举报
回复
还要注意,通知用户申办的时间最好错开,不然300万人在同一时间段请求是非常可怕的……
wss1801 2009-06-22
  • 打赏
  • 举报
回复
学习,顺便接点分!
HDNGO 2009-06-22
  • 打赏
  • 举报
回复
花钱。。。买32cpu的服务器。。。。
windinwing 2009-06-22
  • 打赏
  • 举报
回复
瓶颈主要是上传啊,把上传做成控件,文件分发到多台服务器上.
用户也分配到不同的服务器 server1 ,server2, ... 后台连同一个数据库
Walf_ghoul 2009-06-21
  • 打赏
  • 举报
回复
数据优化存储(使用频度,重要程度,类别等分类)
查询优化
要做到数据库信息及时更新,代价较大,可使用缓存机制,但要注意逻辑上的统一
只能更写建议了。。。。
最后顶一下楼主
yagebu1983 2009-06-21
  • 打赏
  • 举报
回复
安省划分数据库。。。。
fengjian_428 2009-06-21
  • 打赏
  • 举报
回复
队列消息
多服务器 负载均衡
wuyq11 2009-06-21
  • 打赏
  • 举报
回复
常用的数据库数据通过数据库缓存依赖实现
缓存策略要常用
wuyq11 2009-06-21
  • 打赏
  • 举报
回复
数据库要通过事务和锁处理,优化查询语句
附件上传要按照文件夹分类存放,保存路径到数据库,同时使用多线程策略。
nosuchtracter 2009-06-21
  • 打赏
  • 举报
回复
把不是很及时性的东西统一处理
用MSMQ
利用缓存
服务器缓存(硬件缓存)
数据如果不是ORACLE的话可以分几个库
加载更多回复(9)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧