1、曾经在测试IDS的时候,有一次发现IDS死活识别不出总交换机上的镜像流量。于是大家齐上阵,查看测试网络的IDS本地日志。查看linux 的coredump看是否有错误。发现没有错误后, 继续排查,重新建立了一个测试网络,还是出现镜像流量识别不出来的问题。排查了1下午,最后灵光一闪,是不是后端那里出了问题,终于排查后端代码的时候,发现实习生将防火墙的设置给改了,无论如何后端都只对特定IP打开而对其他IP屏蔽,所以流量根本无法被发送到IDS上。
2、第二个问题是,IDS中的分析匿名流量用到了机器学习算法,但是测试的时候总能发现丢包现象。和上级说了多次,也没有得到重视。于是就开始了性能测试。 分析到底是哪里出现了问题。首先是查看CPU和内存的状态,top指令,发现一旦开启机器学习模式,cpu利用率就大幅下降。据老师傅说这可能是IDS产生了阻塞,可能和某个线程有关。于是在机器学习模块的每个函数的开始和结尾分别打上时间戳t1,t2. 将每个函数执行完成后t2-t1得到的差值进行比对,最后就发现了确实是机器学习模块中的一个函数的性能和其他的相比非常地差,原因在于这个函数里对锁的运用有问题,导致了大量的数据包流量被阻塞在消息队列中发不出去。
最终解决了该问题。