系统优化与网络监控工具性能提升
1. 性能问题与挑战
在使用像 ourmon 或 Snort 这样的工具时,性能是一个常见问题。性能问题可能由多种原因引起,比如系统负载过高、存在大量扫描器,或者遭遇大规模 DDoS 攻击。如果简单地关闭 ourmon 中的过滤器,或者减少 Snort 的特征库,虽然能减少系统的工作量,但这不利于完成工作,也会降低安全性。例如,关闭 ourmon 的某个功能可能会错过重要异常,关闭 Snort 的某个特征可能无法检测到下一次 SQL 蠕虫攻击。
传统操作系统(如 FreeBSD 和 Linux)在将网络数据包传递给嗅探应用程序时,采用的是生产者 - 消费者模型。操作系统作为生产者,包括网卡驱动和将数据包放入队列的环形缓冲区代码;ourmon 探针应用程序作为消费者,从环形缓冲区读取并处理数据包。但这种模型存在问题,操作系统会先于应用程序运行,可能导致设备驱动忙于将数据包放入环形缓冲区,而应用程序无法读取数据包。在单 CPU 系统中,这种情况更容易发生。此外,过多的中断也会带来危害,比如在小数据包 DDoS 攻击时,网卡可能会使整个系统锁定,进入一种称为活锁的状态。
2. 优化技术
2.1 为探针购买双核 CPU
如今,采用双核 CPU 进行并行处理是一种简单且成本逐渐降低的方法。AMD 和 Intel 都推出了配备双核处理器的计算机。在对称多处理(SMP)操作系统中,使用双核 CPU 可以让网卡在一个 CPU 上运行,ourmon 探针在另一个 CPU 上运行,避免它们争夺同一个 CPU 资源,从而提高性能。但要确保操作系统启用了 SMP 功能,否则硬件无法发挥作用。