2.CPU、IO性能的相关知识

CPU:需要关注一下几个点。
时钟周期速度。
核心和线程数量
Cache大小和类型。
指令集。

CPU的能力通过:时钟速率(GHZ),cache大小(MB),核心数,槽数。

1.缓存。
CPU有多级缓存,第一级L1是最低延时,但是存储容量最少;二级缓存L2延时相对高一些,
但是容量也相对更高;最后一级,也就是三级缓存L3,延时最高,容量也最大。
现代CPU的L3通常被多个核心共享。

当处理器需要执行指令或者处理数据时,会按照下面的顺序查询所需要的数据:

CPU寄存器->L1->L2->L3->内存->磁盘中存在的cache->实际磁盘。

SQLSERVER及其他关系数据库严重依赖于L2和L3的cache大小,如果条件允许,应选择L2/L3更大的CPU;
如果预算不高,宁愿减少RAM的开销,也尽量不要降低CPU的性能,性能问题经常反应在CPU中。

2.时钟速率。
时钟速率是衡量一个CPU性能的重要指标之一,这个速率的衡量比较简单,速率越大性能越好。

3.多核心处理器和超线程。
对于OLTP系统,并行操作效果并不好。不应购买简单的双槽单核系统,尽可能购买双核系统。

4.高CPU消耗的操作:数据和备份压缩。
这两种操作都是高CPU开销的操作,他们是通过增加CPU的使用率来降低IO子系统和磁盘空间压力的。
数据压缩除了消耗CPU,对于DML操作也会带来一定的影响。

5.超线程。
超线程直接影响SQLSERVER性能的一个情况是使用并行计划,如果启用了超线程,当处理器中的其他
线程未完成任务时,当前没有执行的进程都将挂起。
DBA一般会禁用超线程。
对于OLAP系统不建议开启,OLTP系统也是非必要不开启。

6.NUMA;
在numa系统中,每4个处理器为一组,每组都有自己的本地内存池,这种架构的优势在于,只要访问的数据
在本地内存池中,每个处理器最多只需要经过4个处理器的总线距离就可以访问到。但是数据在另外一个NUMA
节点的内存中,那么访问成本会偏高。使用NUMA系统的目标之一是尽可能从本地内存池获得数据,
而不用访问另外一个节点。
这种架构实际是将内存和CPU绑定分组,来减少一些访问的开销。

7.CPU配置。
高CPU消耗的操作有:
数据库备份。
索引重建和重组。
并发查询,特别是全文检索。

建议使用多核心的CPU;
对于OLTP系统,也可以选择单线程性能优秀的处理器。


8.存储系统;
磁盘寻道时间和旋转延时。
传统磁盘还是SSD 
存储阵列类型:SAN,DAS 
RAID配置。

9.有高IO操作的行为:
日志备份。
索引维护 
全文目录和全文索引
数据库checkpoint 
高可用。
应该将数据文件,日志文件,TempDB的文件存放在不同物理磁盘存放。从而分摊对文件的IO争用。


10.高CPU的操作。
缺失索引 
统计信息过时
非SARG查询:where中没有用到索引字段。使用了标量函数:YEAR,UPPER,LTRIM,ISNULL,LIKE '%%';
隐式转换 
非参数化Ad-hoc查询
非必要的并行查询。
编译和优化。


隐式转换 :SQLSERVER不支持类型不相同的值比较或管理,就会发送隐式转换,全表扫描。
参数嗅探 :是SQLSERVER创建针对存储过程,函数或者参数化查询的执行计划时,根据传入的参数进行预估并生成
执行计划的一个功能。参数嗅探可以重用执行计划。仅出现在执行计划的编译或者重编译过程中。

11.IO性能。
<10ms =没有性能问题。
10~20ms=存在问题
20~50ms=性能很低 
>50ms=性能问题严重。

PAGEIOLATCH_*,ASYNC_IO_COMPETION,IO_COMPLETION,WRITELOG等待类型都是IO瓶颈的潜在指标。
低效查询:主要的是返回过多的数据,一般是因为缺失合适的索引,导致全表扫。过多的扫描引起内存不足,
使得缓存中的数据及其他缓存内容先是被移动到磁盘,然后又从磁盘加载到内存。理想清空下,常用的
数据应该尽可能驻留在内存中,避免不必要的磁盘活动。
配置不当:相对与CPU和内存,磁盘配置的选择度比较大。数据文件和日志文件放在不同的磁盘,TempDB
和其他数据文件存放在不同的磁盘较好。
TempDB不能文件过小,数据过少。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值