为你的 Linux/Unix 服务器选择 文件系统
无论是工作站还是生产系统,“我应该使用哪个文件系统?”这个问题总会在某个时候出现。在设置生产 Web 服务器或数据库服务器时,这一决策更为关键。过去的事实标准是 Ext3,现在则是 Ext4,但根据你的使用场景,还有许多其他选项可供选择。你将运行什么操作系统和版本(Ubuntu 20.04、CentOS 7 等)?你依赖什么存储硬件(nvme、ssd、hdd、fusion-io 等)?你计划运行什么样的工作负载和服务(数据库、Web、缓存等)?请查看 Wikipedia 上的完整文件系统列表,以获取详细的功能比较。在 MySQL 服务器的情况下,你可以使用优秀的工具 SysBench 对服务器进行基准测试,并阅读 Percona 网站 上的这篇文章。这里有一个使用 SysBench 对 MySQL Server 4.1 在各种文件系统上进行的完整基准测试,我们可以看到 XFS 在 MySQL 环境中的高性能表现:MySQL 文件系统基准测试。关于文件系统的结论是:没有“最佳文件系统”,就像 Linux/Unix 机器上的任何调优性能方面一样,你的选择取决于你的工作负载、数据完整性需求、所需容量、磁盘特性、日志需求等。重要的是要很好地理解你的服务器瓶颈(可以使用 iostat 和 dd),然后你可以定义自己的需求并选择文件系统。👉 另一个重要点是选择正确的 I/O 调度器。如今,默认的通常就很好,即 cfq:完全公平排队(Completely Fair Queueing)。