将 Nytro WarpDrive 加速卡配置为文件系统 本节说明的操作使您可调整 Nytro WarpDrive 加速卡,增强使用 Oracle Linux with Unbreakable Enterprise Kernel (UEK) 操作系统的性能。这些配置步骤在 UEK 和 Oracle Linux 操作系统中均有效。以下步骤将 Nytro WarpDrive 卡为 MySQL 数据库的每个主服务器和从 服务器配置为一个文件系统。其他选项可用于加倍 Nytro WarpDrive 加速,并使用 RAID 提 供容错能力,实现额外的数据保护。
1. 在 Linux 操作系统中将 Nytro WarpDrive 卡与 1MB 边界对齐。以下示例介绍如何将 Nytro WarpDrive 卡分区作为从 1MB 边界开始的单一分区。 echo “2048,,” | sfdisk -uS /dev/sda Disk /dev/sda: 24321 cylinders, 255 heads, 63 sectors/track Units = sectors of 512 bytes, counting from 0 Device Boot Start End #sectors Id System /dev/sda1 2048 390721535 390719488 83 Linux /dev/sda2 0 - 0 0 Empty /dev/sda3 0 - 0 0 Empty /dev/sda40 0 - 0 0 Empty
2. 创建文件系统时绕过日志记录。采用 EXT-4 文件系统并关闭日志记录,而非使用 EXT-3, 消除某些情况下对 Nytro WarpDrive 卡的双重写入。写入的减少提高了性能并延长了 Nytro WarpDrive 卡的寿命。
3. 创建 EXT-4 文件系统并关闭日志记录时: $ mkfs –t ext4 /dev/sda1 或 mkfs.ext4 /dev/sda1 创建 EXT-4 文件系统后,日志记录默认开启。为进行验证,执行 tune4fs 命令: $ tune4fs –l /dev/sda1 | grep ‘Filesystem features’ 注意应列出“has_journal”功能。如需关闭日志记录,执行: $ tune4fs -O ^has_journal /dev/sda1
4. 验证已关闭日志记录,执行以下命令并确保未列出“has_journal”。 $ tune4fs –l /dev/sda1 | grep ‘Filesystem features’
5. 加载新 EXT-4 设备时(以下描述 noatime 选项): $ mount -o noatime /dev/sda1 /mountpoint
6. 修改内核 I/O 调度程序。最新 Linux 操作系统版本中的 I/O 调度程序具备 新的 I/O 能力,包括在启动时修改这些设置的选项。在本文件所描述的测试 中, DEADLINE I/O 调度程序与 noatime 文件系统加载选项配合使用。如需调用整 个系统的 DEADLINE 调度程序,将此行添加到 /etc/grub.conf 文件并重启系统。 $ kernel /vmlinuz-2.6.39-300.28.1.el6uek.x86_64 ro root=/dev/mapper/vg_nytrolv_root elevator=deadline 调用 DEADLINE IO 调度程序的另一种方式是使用以下命令修改 /etc/rc.local 文件: $ echo “deadline” > /sys/block/sda/queue/scheduler
7. 如需确认已启用 DEADLINE 调度程序,将以下声明作为根发布。 $ cat /sys/block/sda/queue/scheduler noop anticipatory [deadline] cfq
8. 除了更改 I/O 调度程序, noatime 文件系统加载选项已启用,并且添加到 /etc/fstab 文 件。 此选项在仅读取对象时使系统无需创建对文件系统的写入。此选项还允许更快速地访问文 件,并减少对 Nytro WarpDrive 卡的磨损。此例介绍了 /etc/fstab 如何调用 noatime 选项: /dev/sda1 /osfc ext4 defaults,noatime 1 2 调用 noatime 选项的另一种方式是指在执行加载命令时制定此选项: $ mount –o noatime /dev/sda1 /osfc
9. 将行列深度( QD)从默认的 128 提高到 256 或更高(取决于数据库工作负荷),可提 高 Nytro WarpDrive 的性能。由于 Nytro WarpDrive 卡的延迟是如此之小,与硬盘驱动器相 比, Nytro WarpDrive 卡上可同时运行多项 I/O 操作/命令。为了修改行列深度,需将 nr_requests 参数修改为与新行列深度相同或更大的值。以下为修改测试中所用 /dev/sda 的 nr_requests 和 queue_depth 参数的示例: $ echo “512” > /sys/block/sda/queue/nr_requests IO调度队列大小 $ echo “512” > /sys/block/sda/device/queue_depth 磁盘队列深度
10. 通过告诉操作系统在启动其的相同 CPU 上完成 I/O 请求还可确认更多性能优点。在一 些工作负荷中,这可提供明显的性能提高。如需在 Nytro WarpDrive 设备中启用此功能: echo “1” > /sys/block/sda/queue/rq_affinity
11. 可提供更高性能的另一个操作设置是将旋转设置设为 0,表示设备是非旋转设备,而是 一个闪存设备: echo 0 > /sys/block/sda/queue/rotational 注:如需在重启时保持这些设置,将所有这些命令放入 /etc/rc.local 文件。
在操作系统中,I/O Scheduler的调度模式选择deadline对于数据库应用是有利的。命令:echo deadline > /sys/block//queue/scheduler
操作系统中nr_requests参数,可以提高系统的吞吐量,似乎越大越好,但是该请求队列的也不能过大,因为这样会消耗大量的内存空间。该值的调整需要综合多处因素,
比如: 文件系统、sheduler类型、io的特点。
命令: echo xxx > /sys/block//queue/nr_requests,nr_requests的大小设置至少是/sys/block//device/queue_depth的两倍,所以,修改nr_requtests的时候要注意。