1.2 存储池性能事项

1.2.1 通用存储池性能事项

  • 为了更佳的性能,请使用单个磁盘或至少只是由少数盘组成的LUN。通过使ZFS于LUN的设置中更可见,ZFS能够提供更佳的I/O调度决策。
  • 依赖于作业量,当前的ZFS的实现相比于其他的基于分页的文件系统可以不时的使更多I/O被请求。如果吞吐量正在流向存储,由iostat来观察,其已接近存储和主机之间的信道链路的容量,调小zfsrecordsize属性一般能提高性能。这种调整是动态的,但只是对新文件创建有影响。已存在的文件还是保持其原有的recordsize。
  • 调节recordsize对顺序类型的负载没有帮助。调节recordsize的方式是针对使用随机少量的读写来密集的处理大文件的情况来提升作业量。
  • 请参考ZFS与数据库建议
  • 当前,存储池的性能可能会因为存储池很满且文件系统被频繁的更新而下降,如繁忙的邮件服务器。在这些情况下,请保持存储池的空间在80%以下以维持存储池性能。

1.2.1.1 单独日志设备ZFSintent log(ZIL,ZFS意图日志)符合POSIX的同步事务(synchronoustransactions)的要求。例如,数据库从系统调用返回时常常需要其事务要在稳定的存储设备上。在默认情况下,intentlog从主存储池中分配块。然而,若使用独立的intentlog设备,其可能会获得更佳的性能,像NVRAM或专用磁盘。请确定是否一个单独的日志设备适合您的环境:

  • 实现单独的日志设备(log device)所体现的任何性能提升都依赖于设备类型、存储池的硬件配置、和应用的作业量。
  • 日志设备可以是不复制或镜像的,但RAIDZ不被日志设备所支持。
  • 日志设备的最小的尺寸同存储池中的最小设备尺寸相同,也是64MB。存储于日志设备上的实际数据量可能相对较少。当日志事务(系统调用)被提交时,日志块被释放。
  • 最大的日志设备的尺寸应大概是物理内存的1/2,因为那是能被保存的实际数据的最大量。例如,如果一个有16GB物理内存的系统,其最大的日志设备应是8G。
  • 对于日志设置信息和日志性能信息,请参见如下Blog:slog_blog_or_blogging_on来查看关于单独日志设备的总说明,参见《Solaris ZFS管理指南》(《Solaris ZFS Administration Guide》)。

1.2.1.2 内存与动态重构(Dynamic Reconfiguration)建议ZFS的自适应置换高速缓存(Adaptive ReplacementCache,ARC)试图使用最多的系统可用内存来缓存文件系统数据。默认是使用除了1GB以上的所有的物理内存。当内存压迫性增长时,ARC会放弃内存。请在如下情形时考虑限制最大ARC内存的使用范围:

  • 当有已知数量的内存总是被应用程序请求时。数据库常常属于这一类。
  • 在支持内存板动态重构的平台上,以防止ZFS将渐大的内核占据到所有的内存板上。
  • 请求大内存分页的系统也会受益于对ZFS缓存的限制,这可将大的分页分解为基本分页。
  • 最后,若系统上还运行有其他非ZFS文件系统,除了ZFS之外,最好再留一些空闲内存给那些文件系统作为缓存。

8pB3RUH+~c这些限制内存使用范围的方式被认为会使ARC不能缓存更多的文件系统数据,这可能会对性能有所影响。总之,若内存既没被ZFS使用也没被其他系统组件使用,限制ARC则是浪费资源的。注意非ZFS文件系统通常仍会设法使用系统的空闲内存来缓存数据。调节ARC的详细信息,请参考如下段落:http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide#Limiting_the_ARC_Cache

1.2.2 RAID-Z配置要求及建议

  • 在设备数上没有可实际影响的限制
  • 在SUN Fire X4500服务器上,请勿用48个设备创建一个镜像。请考虑创建24个两两设备的镜像。这一配置将磁盘容量缩小了1/2,但多至24个磁盘或每一个镜像上1个磁盘都可以无故障的被失去。
  • 若您需要更佳的数据保护,三路镜像可在MTTDL上比双路镜像有显著提升。但再升为四路(或更高的)镜像,则只是在数据保护上提供有限的改进。所以若三路镜像还不够,请考虑其他的数据保护方式。

1.2.3 我应该配置RAID-Z、RAID-Z2还是镜像存储池?

通常需要考虑的是您的目标是最大磁盘空间还是最优性能RAID-Z配置可获得最大磁盘空间,且当被写入和读取大块(large chunk)(128KB或更大)的数据时通常都表现不错。

RAID-Z2配置提供了卓越的数据可用性且其具备同RAID-Z相似的特点。相比于RAID-Z或双路镜像,RAID-Z2具有显著更佳的数据损失平均时间(MTTDL)。

镜像配置消耗更多的磁盘空间,但通常其具备更好的随机少量的读取能力。

如果您的I/O是大量的、顺序的、或是写频繁的,则ZFS的I/O调度器会将其汇集起来,以这样一种方式您会获得很高效的磁盘使用而不论数据的复制模型。

为获得更好的性能,在大量的、不可缓存的、随机读取负载上,镜像配置要显著的胜于RAID-Z配置。 关于RAIDZ所需注意事项的更多信息,请参考如下blog: WHEN TO (AND NOT TO) USERAID-Z

1.2.4 RAID-Z配置举例

例如在Tunmper上的RAID-Z配置,将c3t0和c3t4(磁盘0和1)镜像作为您的根存储池,剩下的46块可用磁盘用于用户数据。如下的raidz2配置举例说明了如何配置剩下的46块盘:

*
      5×(7+2),1个热备,17.5 TB
    *
      4×(9+2),2个热备,18.0 TB
    *
      6×(5+2),4个热备,15.0 TB

转载于:https://blog.51cto.com/zfs114/814127

【译】ZFS最佳实践指南-Part2相关推荐

  1. ASP.NET Core Web API 最佳实践指南

    原文地址: ASP.NET-Core-Web-API-Best-Practices-Guide 介绍 当我们编写一个项目的时候,我们的主要目标是使它能如期运行,并尽可能地满足所有用户需求. 但是,你难 ...

  2. 硅谷python_来自硅谷的Python最佳实践指南 | 极客时间

    这几年,学 Python 的程序员的确越来越多了,甚至不少人把 Python 当作第一语言来学习.也难怪,Python 的优点太多了,它语言简洁.开发效率高.可移植性强,并且可以和其他编程语言(比如 ...

  3. kicad最小布线宽度默认是多少_CABLExpress发布了最新的光纤布线最佳实践指南

    前言: 大家好,我是薛哥.CABLExpress最近发布了最新的<光纤布线最佳实践指南>,根据TIA-942数据中心标准,根据自身的现场经验,对该公司的Skinny-Trunk布线产品进行 ...

  4. python编程之美pdf_GitHub - Farolding/toPdf: 爬取“Python编程之美:最佳实践指南”制作PDF电子书...

    准备工作 爬取HTML页面转成PDF需要用到wkhtmltopdf工具,下载地址:https://wkhtmltopdf.org/downloads.html ,pdfkit是wkhtmltopdf的 ...

  5. ROS机器人操作系统最佳实践指南

    ----ROS Best Practices:https://github.com/ethz-asl/ros_best_practices/wiki---- 这是使用机器人操作系统(ROS)的最佳实践 ...

  6. dita最佳实践指南_艺术资产–最佳做法指南

    dita最佳实践指南 Unity支持来自各种程序或来源的纹理3D模型. 该简短指南由游戏美术师和Unity开发人员共同整理,以帮助您创建在Unity项目中可以更好,更高效地工作的资产. 这将在适当时候 ...

  7. python最佳实践指南试题_8.1. 关于这份指南

    与 Tcl.Perl.Ruby.Scheme 以及 Java 类似,Python 是一门用途广泛的高级编程语言.它的一些关键特性有: 语法清晰.可读性极佳 Python 的设计哲学着眼于可读性,它以缩 ...

  8. SAP ERP 与泛微 OA 系统集成的最佳实践指南

    SAP ERP 与泛微 OA 系统集成的最佳实践 简介: <SAP ERP 与泛微 OA 的系统集成>系列文章.SAP ERP 是优秀的企业核心管理系统,泛微 OA 是优秀的企业核心协同系 ...

  9. PHP最佳实践指南(中英对照)

    原文链接 A short, practical guide for common and confusing PHP tasks 一个简短的实用指南,用于常见的和令人困惑的PHP任务 Last rev ...

最新文章

  1. 【从零学习openCV】IOS7下的人脸检測
  2. 数据库引起的性能瓶颈应如何优化?
  3. 使用JUnit 5 执行条件和并发测试
  4. 是否要运行此应用程序_使用Delve调试Go应用程序
  5. sql 排除 sum为0的_一文为你详解Unique SQL原理和应用
  6. 常用的 iptables配置脚本
  7. 面试常被问的65个问题及回答技巧(请收藏)
  8. 每日一门之for循环的执行顺序
  9. 【CAD开发】3dxml文件格式读取(Python、C++、C#)
  10. od另类调试php,[转] 另类基址搜索方法!好像是OD附加内存搜索工具 查找基址
  11. javaSwing的JTextField自动补全
  12. GridSearchCV——信用卡违约率分析示例
  13. 向PSRAM中写入、读取数据
  14. 【绿色版软件】出现应用程序无法启动,并行配置不正确
  15. 用HTML5+CSS3实现qq会员页面的仿制
  16. 【计算方法】解线性方程组的直接法
  17. d^3CTF web部分wp
  18. 手机java安装_花样繁多 MOTO手机JAVA程序安装详细步骤
  19. 我的经历---公司破产
  20. IMF国际货币基金组织

热门文章

  1. mysql 索引失效的情况
  2. asp.net core的TagHelper简单使用
  3. 腾讯QQ认证空间4月27日已全面开放申请,欲进军自媒体
  4. Spring Session Redis
  5. #linux包之sysstat之iostat命令
  6. android学习笔记之Fragment(一)
  7. 使用Eclipse编写Processing小程序
  8. 牛客网2018多校第一场J题
  9. UVA 10003 Cutting Sticks (区间dp)
  10. 03-linux查询端口