Hi, to report, also noticed gvfs smb mount being over 10x slower in many cases depending on the read IO pattern. Seems GVFS alls a lot of latency. Summary of benchmark via fio:
GVFS SMB: ========= name type size block_size latency_(ms) bandwidth_(kb) IOPS ---- ---- ---- ---------- ------------ -------------- ---- 4k_4k_seq_read read 4k 4k 7.597604 100 25 512k_4k_seq_read read 512k 4k 12.608847148437 312 78.001219 4m_64k_seq_read read 4m 64k 58.59852259375 1082 16.91779 8m_256k_seq_read read 8m 256k 252.2923598125 1010 3.948667 16m_1m_seq_read read 16m 1m 1079.9320893125 946 0.924481 CIFS: ===== name type size block_size latency_(ms) bandwidth_(kb) IOPS ---- ---- ---- ---------- ------------ -------------- ---- 4k_4k_seq_read read 4k 4k 7.226365 250 62.5 512k_4k_seq_read read 512k 4k 0.35290271875 9481 2370.37037 4m_64k_seq_read read 4m 64k 4.14038503125 15003 234.432234 8m_256k_seq_read read 8m 256k 17.80018796875 14148 55.267703 16m_1m_seq_read read 16m 1m 83.7329983125 12145 11.860638 Bash script to test this (depends on fio, jq and column) #json_benchmark_result_summary='' tempfile=$(mktemp /tmp/read_test.XXXXXXXX.ndjson) echo "# Using temp file: $tempfile" function seq_read_benchmark() { local total_size="$1" local block_size="$2" echo "# Testing sequential read of $total_size size in $block_size." sleep 1 fio --name="${total_size}_${block_size}_seq_read" --filename="${total_size}_${block_size}_seq_read_test.bin" --rw=read --iodepth=1 --max-jobs=1 --size="$total_size" --bs="$block_size" --output-format=json >> "$tempfile" rm "${total_size}_${block_size}_seq_read_test.bin" } seq_read_benchmark 4k 4k # 1 block read seq_read_benchmark 512k 4k # 128 x 4k blocks read seq_read_benchmark 4m 64k # 64 x 64k blocks read seq_read_benchmark 8m 256k # 32 x 128k blocks read seq_read_benchmark 16m 1m # 16 x 1m blocks read # Reshaping JSON with jq: https://programminghistorian.org/en/lessons/json-and-jq#output-a-csv-csv # How to format a JSON string as a table using jq?: https://stackoverflow.com/a/39144364/5472444 jq -s -r '(["name","type","size","block_size","latency_(ms)","bandwidth_(kb)","IOPS"] | (., map(length*"-"))), (.[] | .jobs[] | [.jobname, ."job options".rw, ."job options".size, ."job options".bs, (.read.lat_ns.mean/1000000), .read.bw, .read.iops]) | @tsv' "$tempfile" | column -t # Convert JSON lines to JSON array using jq: https://stackoverflow.com/a/61867230/5472444 #jq -s '[.[] | .jobs[] | {name: .jobname, type: ."job options".rw, size: ."job options".size, "block size": ."job options".bs, "latency (ms)": (.read.lat_ns.mean/1000000), "bandwidth (kb)": .read.bw, IOPS: .read.iops}]' "$tempfile" > read_test_summary.json # Cleanup rm "$tempfile" -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1236619 Title: gvfs smb / cifs file copy performance is terribly slow To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/1236619/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs