自带的AsyncAppeder 中使用的阻塞队列ArrayBlockingQueue,此队列本身性能就低;落盘使用的BufferedOutStream ;性能的问题体现在两个方面:
- 在高并发下,阻塞调用线程,rt时长问题;
- 日志丢失,写盘的日志量多少问题
优化着手点:
-
减少不必要的锁使用。
-
优化queue的读写速度:
这本质上是一个MPSC类型queue的选用问题,有界,且性能较好适合自己;如Disruptor,JCTools里MpscArrayQueue; -
优化写盘速度 : MappedByteBuffer
网友评论