通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

数据库文件存放在NAS中,会有什么问题吗

性能下降100倍左右。数据库是典型IO密集型系统,CPU都不太重要最重要的是存储了。EMC就做存储都能做到几百亿规模。甲骨文现在都推荐全SSD了。数据库确实吃内存,但是更吃磁盘,一年报废几个也是常事。

一、数据库文件存放在NAS中,会有什么问题

性能下降100倍左右。数据库是典型IO密集型系统,CPU都不太重要最重要的是存储了。EMC就做存储都能做到几百亿规模。甲骨文现在都推荐全SSD了。数据库确实吃内存,但是更吃磁盘,一年报废几个也是常事。所以还必须搞磁盘阵列。即使如此,磁盘阵列全挂也不是那么少见。

不用NAS的主要原因在于两个:

1.数据库是延时敏感型,而NAS多数工作在以太网环境下,而TCP/IP协议决定了这个协议的数据可靠性不够强,IO还可以乱序传送,而数据库是绝不可以乱序的。所以不得不等最慢的那个IO完成再做下一个。

2.除了NETAPP之外,所有的NAS几乎都是在SAN基础的阵列加NAS GATEWAY。那么,多了一层必然增加延时降低效率。

要用nas看中的是数据持久性,扩展性,增值服多,特别是vm场景,且单个nas的总iops和带宽都比本地盘高,所以在负载稍大时,nas对业务层体现出来的性能更高。从单个请求看,协议上的差别开销从来都可忽略,即使是http,协议层上如果性能有差别,一定在crc计算,安全算法,通信模型上的不同; 对于本地盘和nas开销看,主要在因nas拉远,有一次网络开销,对于db的io模型有两类,扫表的顺序大io,考验带宽,网络开销可忽略,索引处理的随机小io,这个需考虑使用什么盘,负载来看,如一次hdd盘随机读10ms,一次网络100us,影响多少可简单估一下,另外网络使用rdma时廷更低,且一旦负载上来后,接近本地盘能力,nas性能更好,所以在想用nas的场景,性能不是问题。但为什么推荐使用nas的少呢,的确有的存储厂商在nas优化不够,另外有兼容性风险,db开发时基本使用本地盘测试,相同os文件操作api,极个别api在本地盘是原子的,但nas是两条命今,在极端场景要出问题,不是说每种db都有问题,自少postgresql要打个补丁。

延伸阅读:

二、分布式存储的优势

可扩展:分布式存储系统可以扩展到数百甚至数千个这样的集群大小,并且系统的整体性能可以线性增长。

高可用性:在分布式文件系统中,高可用性包含两层,一是整个文件系统的可用性,二是数据的完整和一致性

低成本:分布式存储系统的自动容错和自动负载平衡允许在成本较低服务器上构建分布式存储系统。此外,线性可扩展性还能够增加和降低服务器的成本。

弹性存储: 可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行。

相关文章