i use docker-compose similar to this. There are few additional settings I didn’t mentioned in that post (but most likely this is not the reason for the performance gap):
./nextcloud/php/conf.d/uploads.ini
memory_limit=512M
upload_max_filesize = 500M
post_max_size = 500M
./nextcloud/db-config/my.cnf
[server]
skip-name-resolve
innodb_buffer_pool_size = 256M
innodb_buffer_pool_instances = 1
innodb_flush_log_at_trx_commit = 2
innodb_flush_log_at_timeout = 5
innodb_log_buffer_size = 32M
innodb_max_dirty_pages_pct = 75
query_cache_type = 1
query_cache_limit = 2M
query_cache_min_res_unit = 2k
query_cache_size = 16M #was 64M, tuning primer said mybe less
tmp_table_size= 64M
max_heap_table_size= 64M
slow-query-log = 1
slow-query-log-file = /var/log/mysql/slow.log
long_query_time = 1
max_connections = 250
join_buffer_size = 1M
key_buffer = 64M
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
transaction_isolation = READ-COMMITTED
binlog_format = ROW
innodb_large_prefix=on
innodb_file_format=barracuda
innodb_file_per_table=1
default_authentication_plugin=mysql_native_password
max_binlog_size = 134217728
expire_logs_days = 3
I understand you tried made the tests using one big file - this is what I did as well. I have to admit I moved my NC to real PC few weeks ago - it is equipped with Core i3 6th Gen, 16GB RAM, whole Docker Nextcloud is on magnetic HDD (traefik as well) . I believe this more powerful as Odroid but may be I’m wrong. I don’t remember exactly but I think I got 50-70MB/s syncing big files with Qnap NAS (Celeron) with NC19. I didn’t made lot of testing with NC21 on Qnap but from my feeling the sync was same as on 19..