楼主: kelsoncong

[精华] 如何让SQL Server支持高并发环境

[复制链接]
论坛徽章:
6
2014年新春福章
日期:2014-02-18 16:49:31马上有钱
日期:2014-02-18 16:49:31itpub13周年纪念徽章
日期:2014-10-08 15:15:25itpub13周年纪念徽章
日期:2014-10-08 15:15:25喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47
211#
发表于 2014-3-12 10:22 | 只看该作者
edwardking888 发表于 2012-9-13 10:25
你服务器的CPU也要跟上喔,不然拖后退,哈哈

是的,,,高并发下,,,CPU非常重要,,,就像有很多路可以同时走,,,但是没有人来走,,,路多了也没有用

使用道具 举报

回复
论坛徽章:
3
2013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09
212#
发表于 2014-3-12 11:32 | 只看该作者
z2chen 发表于 2012-9-24 09:25
根据我做开发的经验,发现很多很多的问题其实都能用很少的资源就能完成,可惜大家写程序的时候都不愿花时间 ...

学习。

使用道具 举报

回复
论坛徽章:
6
2014年新春福章
日期:2014-02-18 16:49:31马上有钱
日期:2014-02-18 16:49:31itpub13周年纪念徽章
日期:2014-10-08 15:15:25itpub13周年纪念徽章
日期:2014-10-08 15:15:25喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47
213#
发表于 2014-3-12 16:38 | 只看该作者
zaorv 发表于 2012-9-17 16:29
週日(一天) DBA重整 INDEX ,今天效率高了一倍多。
有很多低效率的SQL需要修改的。
自定義函數、系統函數 ...

感觉老是重建索引不是个办法,,,重建索引消耗很大,,,而且过了一段时间,,,碎片又很多了

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
0
214#
发表于 2014-3-13 16:23
大家好!
我是携程旅行网的HR Tina,我们目前在招聘高级SQL Server数据库工程师/高级Mysql数据库工程师,如最近有求职意愿或有朋友在求职,可以通过如下联系方式联系我。
邮箱:ychen@ctrip.com
QQ:1489948037

论坛徽章:
0
215#
发表于 2014-8-21 08:28 | 只看该作者
为了在有限的时间解决问题,甲方IT部门的老大亲自挂帅,组织了一支全球性的技术团队,成员包括甲方自己的IT人员,软件供应商,系统集成商,专业数据库服务商,专业压力测试商等等,人员更加是五花八门,很跨亚欧美澳各大洲,技术人员,业务人员,管理人员都有。每天的工作几乎就是不停的开会,英语好的,不好的,懂技术的,不懂技术的都啪啦啪啦的上来讲一堆,由于人数众多,且彼此不熟悉,效率可想而知。

DBA面对的不仅仅是数据库。从上例看技术人员和项目管理人员角色非常完备。首先DBA要找出能帮助自己的人。我个人喜欢找出以下人员合作。(1)项目经理,他帮助你跟进其他人进度和获取你所需要人员和资源。 (2) 服务器管理人员,帮助你了解虚拟层和SAN层面的架构,排查IO瓶颈。是否虚拟层配置正确? (3)网络管理人员,帮助你大致了解网络每日的吞吐量,是否有其他大型应用同时占用网络资源,数据是否可以在网络上缓存?(4)软件供应商,询问类似状况是否发生在其他的客户身上?

目前的硬件,架构的基础上,并发性能已经最大化了,不能进一步提升
这个是真的吗?我们公司用的是VM,可以很快的提升CPU 和 Memory的大小。作为最快的解决方案。我会优先将发生问题的性能测试作为Baseline, 然后要求服务器管理人员将vMemory, vCPU全部增加两倍,并且将虚拟cpu, memory全部lock,不允许共享。再去看性能提高了多少。这么做能快速排查内存和cpu瓶颈。遇到过真实案例,VM memory 应为VM host 物理内存不够,每个VM client被要求balloon memory, 而SQL Buffer Pool特性是占用了就不放,这造成VM host从客户端的操作系统回收memory, 操作系统不开心了,SQL也别想跑的快。

你的硬件是否真的配合了SQL? 我这里不谈物理机,因为已经不是趋势了。要知道企业级的Server , Virutal Host, SAN,Network 的设计不是单单针对SQL的。DBA所能做的是,努力告诉服务器管理人员,这样配置更有利于SQL。什么事情都是有利弊的。我们的一个案例是,SAN 的switch端口是有限的,同一时间的吞吐量太大,造成IO 慢。 另外的案例是VM 虚拟网卡版本太低,造成cluter disk 偶发的吊线。 你用了SAN却再SQL上设置了auto grow, auto shrink ,造成大量磁盘碎片。 你部署了VM SQL,确不知到SQL文件放在了哪个VM Pool里,这个VM Host 怎么分配了LUN 给SQL 这些不知情,都可能造成DBA的误判。存储和服务器管理人员是没有义务告诉你这些的。他们的目标和DBA 不一样。他们的目标是努力共享一切物理资源,少买硬件。而DBA的目标是努力抓一切物理资源不放,被SQL独占。所以遇到问题多和他们交流,不要去不明就里就说什么VM架构或存储架构不好。它们的设计不是针对SQL的。

你的网络缓存了吗。我遇到过的一个案例是,大型的内容发布,造成了SQL的高访问,十分缓慢。提出的解决方案就是在网络层面缓存内容。应为几千个用户都访问基本一致的内容。没有必要再次访问数据库了。还遇到一个其他的大型第三方应用在白天定期的复制数据,造成网络缓慢,影响其他应用。

软件供应商,系统集成商
这里我要说一下DBA偏见。不要去责怪什么软件开发糟糕。作为一个从事过JAVA开发转DBA的人,我深有感触地是,软件开发是讲Scope的。当初说好针对同时在线300人的应用,你现在变成3000人,不在当初的scope里。这就需要再设计,再开发。那可是钱啊。再想想SQL都要更新版本打补丁,何况应用软件呢,总会有BUG的。

作为DBA,我常和第三方软件供应商打交道。遇到性能问题我会第一时间联系他们,报告问题。看看是不是他们知道类似的案例,有没有解决方案。有时候你会无奈的接受一个回答:目前版本不能解决,耐性等待下个结果。有时候,你通过exec plan 发现missing index, overhead index 或者 不适合的server side trigger ,说不定他们会帮你解决。 总结第三方软件供应商的最大作用是让DBA了解应用数据的特性。例如,我们一个大型应用,部署了7台distributed SQL. 这个软件挂着20多个数据库,分散在这些SQL Server 上。你把自己想成application DBA, 软件供应商能让你很好的理解这些数据库是干嘛的。尤其是一些配置数据库和日志数据库。有时候看看日志数据的日志和改改配置的事情,不需要大动干戈排查内存拉,cpu拉,IO.

我就想谈一下DBA根不同人打交道的方式。理解他们的角色定位,目标和工作性质很重要。和他们一起工作能让你成长为资深的SYSTEM DBA 或者Application DBA. DBA绝对不是一个独立的世界。
当然作为DBA 性能排查的方法很多,我也不是大师, 多看书,多遇事,多想想,建立排查问题的思维模式 (俗语:套路)。总抛砖引玉

使用道具 举报

回复
论坛徽章:
0
216#
发表于 2014-8-21 08:55 | 只看该作者
jieyancai 发表于 2012-9-13 13:58
最关键的一点:
考虑读写分离,实时更新的关键数据表尽量少数据,比如只存1天的数据,用分区表实现实时表和 ...

赞赞赞赞赞

使用道具 举报

回复
论坛徽章:
0
217#
发表于 2014-8-21 09:01 | 只看该作者
limin4506 发表于 2012-9-14 10:58
可以尝试一下虚拟化技术,使用VM搭建一个基于共享存储的集群,Sql Server部署在一台虚拟机上。

这1台虚拟 ...

实践告诉我,集群建在VMWare环境里需要很好的规划,不然问题多多。 我们的一些大型应用最后都从虚拟集群上撤下来转物理集群了。现在找了第三方咨询公司重新规划存储网络和VMWare架构,服务于SQL集群,准备再上虚拟集群,折腾

使用道具 举报

回复
论坛徽章:
0
218#
发表于 2014-8-21 09:18 | 只看该作者
kelsoncong 发表于 2012-9-14 11:10
一个物理主机挂接多台虚拟机很常见,一台虚拟主机可以挂接多台物理机吗?

VM host 可以分配出N台VM,  vCPU, vMemory都是从VM Pool里分配的,且可以over provision的分配资源。 VMDK也是从disk pool LUN里分配的. 让冉也可以直接挂RDM. VM想的简单点,后面就一台物理Host (Client - Host)。 VM+SAN瓶颈多在于vsphere host over provision和 network HBA, SAN switch port. 当然有利有弊,好处也多多,vMotion, snapshot ,资源分配等都给与了dba更多选项。EMC/NetApp SAN现在都是raid 10, 而且也可以将vsphere , SAN的特性作为备份策略之一 。

当然用了vSphere 就要注意以下SQL licensing (根据host phsyical cpu收费的)

使用道具 举报

回复
论坛徽章:
0
219#
发表于 2014-8-21 09:23 | 只看该作者
edwardking888 发表于 2012-9-14 14:12
貌似不可行的,还有就是如果多台虚拟机同时做备份, 你的虚拟主机,会卡死的

实践下来,SQL备份操作都很快,瓶颈在网络和磁盘写。压缩技术,de-deplication技术可以一定程度缓解。

使用道具 举报

回复
论坛徽章:
0
220#
发表于 2014-8-21 09:25 | 只看该作者
kelsoncong 发表于 2012-9-14 14:56
恩,只能说明SQL Server的集群还没有得到大家的广泛认同

我们公司很认同。现在准备上2012 always on.  还在做cluster P2V 项目。 另外把很多很多小的SQL数据库迁移到到一个大的cluster 里。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表