mirror of
https://git.proxmox.com/git/proxmox-backup
synced 2025-10-04 23:32:27 +00:00
image backup: use 4M input buffer
with the default 8k input buffer size, the client will spend most of the time polling instead of reading/chunking/uploading. tested with 16G random data file from tmpfs to fresh datastore backed by tmpfs, without encryption. stock: Time (mean ± σ): 36.064 s ± 0.655 s [User: 21.079 s, System: 26.415 s] Range (min … max): 35.663 s … 36.819 s 3 runs patched: Time (mean ± σ): 23.591 s ± 0.807 s [User: 16.532 s, System: 18.629 s] Range (min … max): 22.663 s … 24.125 s 3 runs Summary patched ran 1.53 ± 0.06 times faster than stock Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
parent
00ce0e38bd
commit
deb237a288
@ -286,8 +286,12 @@ async fn backup_image<P: AsRef<Path>>(
|
|||||||
|
|
||||||
let file = tokio::fs::File::open(path).await?;
|
let file = tokio::fs::File::open(path).await?;
|
||||||
|
|
||||||
let stream = tokio_util::codec::FramedRead::new(file, tokio_util::codec::BytesCodec::new())
|
let stream = tokio_util::codec::FramedRead::with_capacity(
|
||||||
.map_err(Error::from);
|
file,
|
||||||
|
tokio_util::codec::BytesCodec::new(),
|
||||||
|
4 * 1024 * 1024,
|
||||||
|
)
|
||||||
|
.map_err(Error::from);
|
||||||
|
|
||||||
let stream = FixedChunkStream::new(stream, chunk_size.unwrap_or(4 * 1024 * 1024));
|
let stream = FixedChunkStream::new(stream, chunk_size.unwrap_or(4 * 1024 * 1024));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user