From 423eab209791f1b1864096371c1b3d76a2bc88c3 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Thu, 25 Aug 2022 10:30:34 +0300 Subject: [PATCH] quic: increase the buffer size used for encoding qlogs (#1715) --- p2p/transport/quic/tracer.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/p2p/transport/quic/tracer.go b/p2p/transport/quic/tracer.go index 20de893287..50f429dcad 100644 --- a/p2p/transport/quic/tracer.go +++ b/p2p/transport/quic/tracer.go @@ -58,7 +58,9 @@ func newQlogger(qlogDir string, role logging.Perspective, connID []byte) io.Writ return &qlogger{ f: f, filename: finalFilename, - Writer: bufio.NewWriter(f), + // The size of a qlog file for a raw file download is ~2/3 of the amount of data transferred. + // bufio.NewWriter creates a buffer with a buffer of only 4 kB, leading to a large number of syscalls. + Writer: bufio.NewWriterSize(f, 128<<10), } } @@ -76,7 +78,7 @@ func (l *qlogger) Close() error { return err } defer f.Close() - buf := bufio.NewWriter(f) + buf := bufio.NewWriterSize(f, 128<<10) c, err := zstd.NewWriter(buf, zstd.WithEncoderLevel(zstd.SpeedFastest), zstd.WithWindowSize(32*1024)) if err != nil { return err