权限管理、用户权限系统、开源用户权限系统、信息化建设标准基础数据管理平台
代码改变世界

优化杭州某著名电子商务网站高并发千万级大型数据库经验之- 内存性能

2013-04-17 08:47  通用C#系统架构  阅读(6197)  评论(42编辑  收藏  举报

     好久没写博客了,一方面是日常工作繁忙,另外一方面是想更多的时间陪陪家里人,享受春天的美好时光,同时还在写一本《程序员,你伤不起》的一本书要由人民邮电出版社出版;我的性格可能也跟大多数程序员类似吧,没什么兴趣爱好、不擅长与人交流,平时话也少,也不够幽默,就是一个实实在在的人。很多漂亮的女人都无法理解我们干程序员的,大多都嫁给了做业务啊或者做销售的,只有很朴实的、想是实实在在过日子的女人才能理解我们这些技术码工出身的程序员。

     其实事实证明你当个优秀的码工比很多做业务的日子过得都滋润。人死了后几乎留不下什么东东,所以我趁着活着的时候把生活工作的点点滴滴都写在网上,给需要的人分享经验、同时也能得到高人的指点。写文章一方面证明的实力、另一方面也给社会分享,而不只是索取也讲分享。将来可以看到自己每一年的提高升华的点滴足迹。

下图命名为:孤独的程序员

      由于服务器是超级强大,所以内存也非常强大,我们的核心数据库大小是100G不到,所以几乎把所有的数据库都能装到内存里也可以了,真是强筋的服务器,有钱真好,可以购买最最强大的服务器玩玩。

 

   在侦测服务器性能时,内存总是停留在165G的一个直线上,从来不会突破,也不会变好,经过3天的思索,感觉是数据库分配的内存更没没有用光,就分配了165G后,一直是够用了,所以内存表现出一条直线,也没什么波动;刚开始以为是内存不够,还增加了不少sqlserver分配的内存,但是都是一直是直线。

 

  

   由于服务器的磁盘I/O非常高,几乎到了瓶颈了,所以设置了恢复间隔后,磁盘的I/O有了明显的下降,甚至是一度接近到正常值,由于机房有UPS电源保护,就是电网断电了、网络断了,5分钟内主机还是不会停机,所以数据库足够可以写入到硬盘了;所以这里冒险设置了恢复间隔,也没能深入研究这个参数是干什么的,但是设置了后感觉数据库的读写频率降低了很多,能更有效的利用了内存一样的错觉,或者是真有关系,希望高手读了本文章能指点几下。

  参考资料上写并行的开销阀值建议设置大一些,原来的值是5,我修改为10,希望能提升系统的效率,不知道这个阀值具体起什么作用,希望有高手能指点。

 

由于本服务器的功能比较单一,只处理数据库,所以把数据库服务的优先级都进行了提升,虽然会影响操作系统的稳定性,但是没有其他更多的服务在跑所以就冒险提升了数据库服务程序的优先级别。

 

     由于内存相对便宜,所以这部分的瓶颈不是大问题,就怕服务器没地方插内存条了。很多设置都是在深夜12点过后进行设置、然后凌晨5点开始最终系统的整个稳定性,一直检测到上午12点,若都运行稳定,再看下午的高峰期3-6点服务的表现是否良好。

     其实自己的电脑上怎么设置怎么测试都是很简单的事情,在天天在跑,停一个小时就损失巨大,停一天就可能会面临下岗、停几个小时就几十个人来找你麻烦的服务器上进行优化操作心里压力就很大,1周通宵了3个晚上,每个晚上平均睡觉可能不到6小时。神经高度紧张下持续优化了一周见效了,接着可以休息一段时间了。

     祝大家早上有个好心情、美好的一天有开始了,杭州又雾霾天气了,可能还有几个小时天气就晴朗了。希望大家都能健康快乐活到老,希望我的文章能给你带来一点儿快乐,或者下面的图能让你心情愉悦。

   

 



C# ASP.NET 通用权限设计、通用权限管理、通用权限组件、单点登录、集中式权限管理、统一授权体系、分级管理分级授权


微信扫一扫加好友