🔗 Squid的最佳操作系统是什么?
这是一个备受关注的常见问题,经常会出现在Squid用户邮件列表中。
总的来说,任何现代的Linux或类Unix操作系统都会提供相似的良好性能。一个技术上明智的管理员会选择最适合这项工作的工具,这意味着选择他/她最熟悉的操作系统。
几种常见的选择包括:Linux发行版、FreeBSD、OpenBSD和Windows。
🔗 优化以获得更多
为了最大限度地发挥任何配置的潜力,最重要的是正确地调整几个参数。按优先级顺序排列:
- 可用物理内存量
- 越多越好,如果Squid的部分被交换出核心内存,其性能会严重下降。
- CPU速度和核心数量
- 几个更快的核心比许多慢速核心更好。SMP Squid目前最高效的运行方式是使用4-8个快速核心。
- 只有物理核心才有作用,超线程的“核心”实际上可能会因为Squid的工作负载和使用模式而降低性能。
- 用于缓存的硬盘数量及其架构
- Squid的磁盘访问模式对RAID系统有特别大的影响——尤其是RAID4/5。由于数据本身并不算特别重要,因此建议在JBOD(“Just a Bunch of Disks”,换句话说,不使用RAID)上运行cache_dirs(参见SquidFaq/RAID)。
- 当然,磁盘类型也很重要:SSD的性能优于HDD(但要注意其寿命),15kRPM优于5.4kRPM等。
- noatime挂载选项
- atime对于缓存数据来说是毫无用处的——Squid自己会进行时间戳记录,使用noatime选项挂载文件系统可以节省大量的磁盘写入操作。
- 已用空间量
- 始终在包含cache_dirs的文件系统上留出约20%的可用空间:通常,如果已用空间超过80%,文件系统的性能会急剧下降。
- 文件系统类型
- 这仅适用于提供多种选择的操作系统(除非有少数几种非常糟糕的文件系统选择),具体请参见下文。
- 在具有同步目录更新的系统上(Solaris、某些BSD版本),使用挂载选项启用异步目录更新,或者最好在单独的设备上使用文件系统元日志来分担目录更新的负载。