• 请不要在回答技术问题时复制粘贴 AI 生成的内容
care
V2EX  ›  程序员

服务器阵列卡是不是不适合使用 SSD 组建硬阵列 RAID?

  •  
  •   care · Oct 10, 2019 · 9071 views
    This topic created in 2405 days ago, the information mentioned may be changed or developed.

    公司服务器用的 IBM x3650-M5 跑的金蝶 K3cloud Sqlserver 服务,每天下午一些部门在金蝶客户端执行批量表单审核操作的时候(大约一次 300 条审核操作),客户端需要等待大概 6 分钟左右才能处理完成,执行数据量大的搜索时候也会卡(数据库是存放在服务器阵列卡 M5210 组建的硬 RAID1 上,intel S4510x2 ),卡的时候通过 PING 大包到数据库服务器,网络并没有延时和丢包( ping 172.16.1.200 -l 1024 -t )。之前使用 sasx3 组的 raid5 也是会有客户端操作卡的情况,所以才更换的 intel S4510 数据中心固态硬盘,目前看来并没有实际明显的改善效果。这两天通过使用第三方系统检测软件检测服务器情况,发现 S4510x2 组的 raid1 突发的磁盘队列长度也还是很高。有朋友说不应该在阵列卡上使用 ssd 组建阵列,阵列卡不支持 trim 特性。但是 x3650-M5 服务器板载没有 sata 硬盘接口,而且 M5210 阵列卡不支持刷 IT 直通模式,bios 里看阵列卡支持 jbod 模式,不太明白 jbod 和 IT 直通模式的区别。如果使用 IT 直通卡的话,是否有效果?性能是否取决于 IT 直通卡的性能?请问各位大佬,阵列卡是否真的不适合使用 ssd 来组件 RAID ?或者有啥优化解决方案给帮忙支支招,感激不尽!下面贴出昨天一天通过 sysgauge 监控到的服务器平均数据图示。

    服务器硬件配置:

    CPU:E5-2683 V4

    内存:96GB

    操作系统:2008R2 (系统本身没有激活,我本来打算更换操作系统,所以也就暂时没有激活系统,不知道是否有影响)

    数据库:Sqlserver 2008R2

    磁盘:S4510x2 组的 raid1 (存放数据库文件) SASx3 组的 raid5 (操作系统和数据库备份)

    intel_ssd_tool.png 20191009disk_monitor.png 20191009sql_server_monitor.png 20191009sqlserver_process_monitor.png

    26 replies    2019-10-13 15:07:15 +08:00
    loading
        1
    loading  
       Oct 10, 2019 via Android
    确定瓶颈是在磁盘 io ?
    建议分析慢查询。

    对于能不能用 ssd,对于你们来说应该不是主要问题。
    misaka19000
        2
    misaka19000  
       Oct 10, 2019
    先定位问题
    CallMeReznov
        3
    CallMeReznov  
       Oct 10, 2019
    金蝶问题主要在于那奇葩的数据库结构和用法上吧?
    听说有无数临时表
    care
        4
    care  
    OP
       Oct 10, 2019
    @CallMeReznov 临时表的话现在有做计划任务执行自动清理,还有重建索引
    care
        5
    care  
    OP
       Oct 10, 2019
    @loading 之前没更换 ssd 之前,金蝶那边给出的方案是叫我们更换带缓存的阵列卡,更换 4 块 s4610 替换掉现有的 sasx3 组件的 raid5,所以我们才自己购买两块 S4510 来测试,发现也还是一样会卡。慢查询的话我得查阅相关资料搜集下日志确定下,谢谢。
    mhycy
        7
    mhycy  
       Oct 10, 2019
    @care 阵列卡的配置会对性能有影响,建议确认读写都走缓存
    tankren
        8
    tankren  
       Oct 10, 2019
    不试试优化程序?
    care
        9
    care  
    OP
       Oct 10, 2019 via iPhone
    @tankren 因为我们是买断的,所以要优化 sqlserver 的话需要订阅金蝶的 sqlserver 优化服务,还不知道是否有效果…
    care
        10
    care  
    OP
       Oct 10, 2019
    @mhycy 看来专业服务器还是得用 SAS 盘
    leicool520
        11
    leicool520  
       Oct 10, 2019
    感觉有点老了,阵列卡支持缓存吗,是不是没电了
    care
        12
    care  
    OP
       Oct 10, 2019 via iPhone
    @leicool520 阵列卡没有缓存,所以不知道换带缓存的阵列卡的话不知道是否有效果?现在是直接写到 ssd
    leicool520
        13
    leicool520  
       Oct 10, 2019
    有阵列缓存会好很多的,看看能不能升级个好点的带缓存的阵列卡
    lvzhiqiang
        14
    lvzhiqiang  
       Oct 10, 2019
    sata 盘转速是多少的? 有条件上 raid 10,上 sas 盘。
    care
        15
    care  
    OP
       Oct 10, 2019 via iPhone   ❤️ 1
    @lvzhiqiang sata 盘只有两块 intel 数据中心的 s4510 组的 raid1,其他都是 sas 盘
    lvzhiqiang
        16
    lvzhiqiang  
       Oct 10, 2019
    @care 先试着优化软件,不行再提升存储性能。
    love
        17
    love  
       Oct 10, 2019
    分析慢查询,该加的索引加上。
    多年前我也在 CRM 公司上班,技术一塌糊涂,开发人员只用自己的少量数据开发,根本不管客户数据量大了之后会发生什么。
    wiix
        18
    wiix  
       Oct 10, 2019
    @care
    Optional onboard data cache (DDR3 running at 1866 MHz) with the choice of the following backup:
    1 GB (no battery backup)
    1 GB, 2 GB, or 4 GB with flash backup
    缓存貌似可以自己加。

    另外 s4510 是 sata 接口,6Gb 带宽,raid1 又不增加速度。而 sas 是 12Gb 带宽,raid5 顺序读写速度跟 sata 接口的 s4510 区别不大。并且排除其他因素,数据库的批量写入和查询速度考验的是磁盘顺序读写速度,而不是随机读写和延迟。
    综上 s4510*2 的 raid1 真的没多少提升。

    所以不差钱上英特尔 905P 这种 PCI-E 固态吧,保守会有 4 倍的速度提升。

    当然还是要先分析瓶颈来源,肯能问题不在磁盘 IO,或者数据库配置有问题,或者数据表优化不到位。有时候加几个索引能让单一操作有几十倍的性能提升。
    xenme
        19
    xenme  
       Oct 10, 2019
    看了下,阵列卡是支持 SSD,所以,这个首先排除。
    另外,带缓存么?这个提升相对来说比 HDD 到 SSD 效果更明显。
    加上缓存和电池看看效果。
    care
        20
    care  
    OP
       Oct 10, 2019
    @wiix 看了 EMC 这篇文章 https://community.emc.com/docs/DOC-30863,数据库数据的读 /写属于随机的,觉得用 ssd 应该可以提升磁盘的性能。看来先弄个阵列卡的缓存模块来测试下有没有效果了,还不行的话只能找专业的来优化 sqlserver 了。
    okudayukiko0
        21
    okudayukiko0  
       Oct 10, 2019 via iPhone
    都 Xeon E5 V4 了,一般都支持 SSD,建议阵列卡加 Cache 和电池。
    NVMe SSD 比 SATA SSD 快很多。
    此外 E5 V4 建议 Windows Server 2012 R2 或 Windows Server 2016,2012R2 或 2016 应该对 E5V4 有内核级别的优化。
    qile1
        22
    qile1  
       Oct 10, 2019 via Android
    数据库做集群应该不增加磁盘 io 读写性能提升大,以前医院的大量数据查询特别慢,做集群后明显快了好多倍
    wiix
        23
    wiix  
       Oct 10, 2019
    @care 可能我没说清楚。
    像你现在遇到的这种分钟级的高延迟情况,排除软件设计问题,要么是因为有大量的插入或临时表建表操作(数据量大或者需要频繁更新索引),要么是没优化索引造成大量的全表扫描。
    而带数据建表、更新索引和全表扫描操作都类似顺序读写,除非还同时存在缓存过小的问题。
    ztcaoll222
        24
    ztcaoll222  
       Oct 10, 2019
    加钱上傲腾?
    care
        25
    care  
    OP
       Oct 13, 2019
    @xenme
    @okudayukiko0
    @wiix
    @leicool520
    @mhycy 现在有一台 x3650 m4 带 M5110e 阵列卡的服务器带 512M 缓存,使用 CrystalDiskMark 测速,100M 测试的话感觉也没有跑满阵列卡内存的带宽,500M 测试直接爆阵列卡缓存了,速度就 300M 左右。之前通过监控 sqlserver 的进程写入情况,发现爆发性最大写入也就 400 多 M。使用 ATTO Disk Benchmarks 测试,现在跑着数据库服务的 M5210 阵列卡速度惨不忍睹,因为 M5210 现在跑着应用,所以没有强制开启阵列卡缓存来测试。各位大佬帮忙看下 M5110e 和 M5210 测试的结果是否正常?( 1.205 是 M5210 阵列卡服务器,2.5 是 M5110e 阵列卡服务器,1.205 服务器是 sas 盘 600Gx4 组建的 raid5,2.5 服务器是 sas 盘 300Gx3 组建的 raid5 )
    ![1.205 服务器 RAID5 无缓存测试.png]( https://i.loli.net/2019/10/13/1MlZYwTcygm6EJq.png)
    ![1.205 服务器 S3510-RAID1.png]( https://i.loli.net/2019/10/13/FXp4mGTRqDN91o3.png)
    ![2.5 服务器 RAID5 无缓存测试.png]( https://i.loli.net/2019/10/13/MXDBbV2Y9adUcJA.png)
    ![2.5 服务器 RAID5 启用 512M 缓存测试.png]( https://i.loli.net/2019/10/13/BPxk8WAgDEKbqNo.png)
    okudayukiko0
        26
    okudayukiko0  
       Oct 13, 2019 via iPhone
    @care 现在的硬盘容量都很大,不建议用 RAID5。此外个人建议买金碟的 SQL 优化服务。
    Server 2012、Server 2016、Server 2019 对 E5V4 应该有内核级优化,但 Server 2016 和 Server 2019 应该是从 Win10 LTSC 来的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5931 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 01:48 · PVG 09:48 · LAX 18:48 · JFK 21:48
    ♥ Do have faith in what you're doing.