Expected behaviour
Uploads occur between 10 ~ 50mbps
Actual behaviour
Uploads starts with 500mbps and gradually slows down to 1 ~ 2 mbps
Steps to reproduce
- Move a file to owncloud directory at Windows
- Open owncloud to start files sync
- Move cursor up to green bar, showing upload speed
Server configuration
Operating system: Ubuntu 22.0.4 LTS
Web server: NGINX 1.22
Database: MariaDB 10.6.7
PHP version: 7.4
ownCloud version: 10.13.2.3
Storage backend (external storage): local SSD
Client configuration
Client version: 5.0.2
Operating system: Windows 11 64bits
OS language: PT_BR
Installation path of client: C:\Program Files\ownCloud
Logs
- Client logfile:
24-01-05 19:14:11:551 [ info gui.account.state ]: checkConnectivity blocking: false "HIDDEN_USER@HIDDEN_DOMAIN"
24-01-05 19:14:11:551 [ debug gui.account.state ] [ OCC::AccountState::checkConnectivity ]: "HIDDEN_USER@HIDDEN_DOMAIN" The last ETag check succeeded within the last 30 s ( 19 s). No connection check needed!
24-01-05 19:14:21:479 [ info sync.networkjob.put ]: PUT of "https://HIDDEN_DOMAIN/remote.php/dav/uploads/HIDDEN_USER/2390361949/0000006503777581" FINISHED WITH STATUS "OK" 201 "Created"
24-01-05 19:14:21:479 [ info sync.propagator.upload.ng ]: Chunked upload of 38229114 bytes took 56413 ms, desired is 60000 ms, expected good chunk size is 40659898 bytes and nudged next chunk size to 38479965 bytes
24-01-05 19:14:21:479 [ debug sync.database.sql ] [ OCC::SqlQuery::exec ]: SQL exec: Estimated query: "INSERT OR REPLACE INTO uploadinfo (path, chunk, transferid, errorcount, size, modtime, contentChecksum, url) VALUES ( 'ORGANIZAR BKPS/toprelay.zip' , '0', '2390361949' , '0' , '9196422886', '1703079391' , 'SHA1:f13f7d76b8d017a41c836d08af1964a83e08c0f2', '' )" Actual query: "INSERT OR REPLACE INTO uploadinfo (path, chunk, transferid, errorcount, size, modtime, contentChecksum, url) VALUES ( 'ORGANIZAR BKPS/toprelay.zip' , 0, 2390361949 , 0 , 9196422886, 1703079391 , 'SHA1:f13f7d76b8d017a41c836d08af1964a83e08c0f2', '' )" Try: 0
24-01-05 19:14:21:479 [ debug sync.database.sql ] [ OCC::SqlQuery::exec ]: Last exec affected 1 rows.
24-01-05 19:14:21:479 [ debug sync.database ] [ OCC::SyncJournalDb::commitInternal ]: Transaction commit "Upload info" and starting new transaction
24-01-05 19:14:21:480 [ info sync.networkjob ]: Created OCC::PUTFileJob(OCC::Account("HIDDEN_USER@HIDDEN_DOMAIN"), "https://HIDDEN_DOMAIN/remote.php/dav/uploads/HIDDEN_USER/2390361949/0000006542006695", "PUT", Original-Request-ID: "da8a56d4-dbb9-45f2-beb5-34b1ed20d82b", X-Request-ID: "da8a56d4-dbb9-45f2-beb5-34b1ed20d82b") for OCC::PropagateUploadFileNG(0x25d133c5da0)
24-01-05 19:14:21:480 [ debug sync.networkjob ] [ OCC::AbstractNetworkJob::slotFinished ]: Network job finished OCC::PUTFileJob(OCC::Account("HIDDEN_USER@HIDDEN_DOMAIN"), "https://HIDDEN_DOMAIN/remote.php/dav/uploads/HIDDEN_USER/2390361949/0000006503777581", "PUT", Original-Request-ID: "33140d43-f942-4a2b-824a-5845c4a3ca53", X-Request-ID: "33140d43-f942-4a2b-824a-5845c4a3ca53")
24-01-05 19:14:51:504 [ debug gui.scheduler.etagwatcher ] [ OCC::ETagWatcher::startOC10EtagJob ]: Starting etag check for folder "ownCloud" "C:/Users/lucka/ownCloud/"
24-01-05 19:14:51:504 [ info sync.networkjob ]: Created OCC::RequestEtagJob(OCC::Account("HIDDEN_USER@HIDDEN_DOMAIN"), "https://HIDDEN_DOMAIN/remote.php/dav/files/HIDDEN_USER/", "PROPFIND", Original-Request-ID: "c793a8b4-21f0-430d-b2c7-1d47458331e8", X-Request-ID: "c793a8b4-21f0-430d-b2c7-1d47458331e8") for OCC::Folder(0x25d11bd5820)
24-01-05 19:14:52:428 [ info sync.networkjob.propfind ]: LSCOL of QUrl("https://HIDDEN_DOMAIN/remote.php/dav/files/HIDDEN_USER/") FINISHED WITH STATUS "OK"
24-01-05 19:14:52:428 [ debug sync.networkjob ] [ OCC::AbstractNetworkJob::slotFinished ]: Network job finished OCC::RequestEtagJob(OCC::Account("HIDDEN_USER@HIDDEN_DOMAIN"), "https://HIDDEN_DOMAIN/remote.php/dav/files/HIDDEN_USER/", "PROPFIND", Original-Request-ID: "c793a8b4-21f0-430d-b2c7-1d47458331e8", X-Request-ID: "c793a8b4-21f0-430d-b2c7-1d47458331e8")
- Web server error log:
2023/12/22 19:27:00 [emerg] 25397#0: still could not bind()
2023/12/22 19:38:36 [emerg] 456#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2023/12/22 19:38:36 [emerg] 456#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2023/12/22 19:38:36 [emerg] 456#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2023/12/22 19:38:36 [emerg] 456#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2023/12/22 19:38:36 [emerg] 456#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2023/12/22 19:38:36 [emerg] 456#0: still could not bind()
2023/12/26 13:30:55 [alert] 344218#0: *14605 open socket #24 left in connection 10
2023/12/26 13:30:55 [alert] 344218#0: aborting
2023/12/26 19:14:52 [alert] 516547#0: *61 open socket #4 left in connection 4
2023/12/26 19:14:52 [alert] 516547#0: aborting
2023/12/27 03:33:17 [alert] 573174#0: *48 open socket #26 left in connection 5
2023/12/27 03:33:17 [alert] 573174#0: aborting
2024/01/05 21:56:38 [alert] 1169337#0: *3 open socket #25 left in connection 4
2024/01/05 21:56:38 [alert] 1169337#0: aborting
2024/01/05 22:02:29 [alert] 1175327#0: *113 open socket #4 left in connection 7
2024/01/05 22:02:29 [alert] 1175327#0: *82 open socket #6 left in connection 8
2024/01/05 22:02:29 [alert] 1175327#0: aborting
2024/01/05 22:03:21 [alert] 1175566#0: *7 open socket #27 left in connection 5
2024/01/05 22:03:21 [alert] 1175566#0: *11 open socket #20 left in connection 6
2024/01/05 22:03:21 [alert] 1175566#0: aborting
- Server logfile: ownCloud log (data/owncloud.log):
{"reqId":"e32adb40-6061-4daa-b7b2-6d70cf9cbfe3","level":4,"time":"2024-01-03T21:16:36+00:00","remoteAddr":"200.202.97.213","user":"HIDDEN_USER","app":"webdav","method":"MOVE","url":"\/remote.php\/dav\/uploads\/HIDDEN_USER\/2358551324\/.file","message":"Exception: HTTP\/1.1 400 The computed checksum does not match the one received from the client.: {\"Exception\":\"Sabre\\\\DAV\\\\Exception\\\\BadRequest\",\"Message\":\"The computed checksum does not match the one received from the client.\",\"Code\":0,\"Trace\":\"#0 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/Directory.php(172): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\File->put()\\n#1 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Tree.php(307): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Directory->createFile()\\n#2 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Tree.php(133): Sabre\\\\DAV\\\\Tree->copyNode()\\n#3 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/lib\\\/Tree.php(113): Sabre\\\\DAV\\\\Tree->copy()\\n#4 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Tree.php(163): OCA\\\\DAV\\\\Tree->copy()\\n#5 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(612): Sabre\\\\DAV\\\\Tree->move()\\n#6 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/WildcardEmitterTrait.php(89): Sabre\\\\DAV\\\\CorePlugin->httpMove()\\n#7 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(472): Sabre\\\\DAV\\\\Server->emit()\\n#8 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(253): Sabre\\\\DAV\\\\Server->invokeMethod()\\n#9 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/lib\\\/Server.php(348): Sabre\\\\DAV\\\\Server->start()\\n#10 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/appinfo\\\/v2\\\/remote.php(31): OCA\\\\DAV\\\\Server->exec()\\n#11 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/remote.php(165): require_once('\\\/www\\\/wwwroot\\\/dr...')\\n#12 {main}\",\"File\":\"\\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/File.php\",\"Line\":217}"}
{"reqId":"0ea940f4-6a8a-4e09-8e68-dabd012a5115","level":4,"time":"2024-01-03T22:19:02+00:00","remoteAddr":"200.202.97.213","user":"HIDDEN_USER","app":"webdav","method":"MOVE","url":"\/remote.php\/dav\/uploads\/HIDDEN_USER\/421841118\/.file","message":"Exception: HTTP\/1.1 400 The computed checksum does not match the one received from the client.: {\"Exception\":\"Sabre\\\\DAV\\\\Exception\\\\BadRequest\",\"Message\":\"The computed checksum does not match the one received from the client.\",\"Code\":0,\"Trace\":\"#0 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/Directory.php(172): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\File->put()\\n#1 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Tree.php(307): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Directory->createFile()\\n#2 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Tree.php(133): Sabre\\\\DAV\\\\Tree->copyNode()\\n#3 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/lib\\\/Tree.php(113): Sabre\\\\DAV\\\\Tree->copy()\\n#4 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Tree.php(163): OCA\\\\DAV\\\\Tree->copy()\\n#5 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(612): Sabre\\\\DAV\\\\Tree->move()\\n#6 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/WildcardEmitterTrait.php(89): Sabre\\\\DAV\\\\CorePlugin->httpMove()\\n#7 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(472): Sabre\\\\DAV\\\\Server->emit()\\n#8 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(253): Sabre\\\\DAV\\\\Server->invokeMethod()\\n#9 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/lib\\\/Server.php(348): Sabre\\\\DAV\\\\Server->start()\\n#10 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/appinfo\\\/v2\\\/remote.php(31): OCA\\\\DAV\\\\Server->exec()\\n#11 \\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/remote.php(165): require_once('\\\/www\\\/wwwroot\\\/dr...')\\n#12 {main}\",\"File\":\"\\\/www\\\/wwwroot\\\/HIDDEN_DOMAIN\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/File.php\",\"Line\":217}"}
{"reqId":"j7TNeAGpsogvfhTJ18Cq","level":3,"time":"2024-01-04T10:12:35+00:00","remoteAddr":"54.89.229.39","user":"--","app":"OC\\Share20\\Manager","method":"GET","url":"\/index.php\/s\/ErSyVWNtUjfjQ82","message":"shared file not found by token: ErSyVWNtUjfjQ82 for federated user share, try to check federated group share."}
{"reqId":"j7TNeAGpsogvfhTJ18Cq","level":3,"time":"2024-01-04T10:12:35+00:00","remoteAddr":"54.89.229.39","user":"--","app":"OC\\Share20\\Manager","method":"GET","url":"\/index.php\/s\/ErSyVWNtUjfjQ82","message":"shared file not found by token: ErSyVWNtUjfjQ82 for federated group share"}
{"reqId":"b83a4dfd-312f-4132-a5c3-2d7191405a1d","level":3,"time":"2024-01-04T15:34:27+00:00","remoteAddr":"200.202.99.54","user":"HIDDEN_USER","app":"OC\\Share20\\Manager","method":"PROPFIND","url":"\/remote.php\/dav\/files\/HIDDEN_USER\/Base%20de%20conhecimento\/Hospedagem%20e%20Suporte\/Hosts\/DreamHost\/Guia%20b%C3%A1sico%20da%20DreamHost.mp4","message":"shared file not found by token: HIDDEN_USER for federated user share, try to check federated group share."}
{"reqId":"b83a4dfd-312f-4132-a5c3-2d7191405a1d","level":3,"time":"2024-01-04T15:34:27+00:00","remoteAddr":"200.202.99.54","user":"HIDDEN_USER","app":"OC\\Share20\\Manager","method":"PROPFIND","url":"\/remote.php\/dav\/files\/HIDDEN_USER\/Base%20de%20conhecimento\/Hospedagem%20e%20Suporte\/Hosts\/DreamHost\/Guia%20b%C3%A1sico%20da%20DreamHost.mp4","message":"shared file not found by token: HIDDEN_USER for federated group share"}
- NGINX conf (shortened):
http
{
#AAPANEL_FASTCGI_CONF_BEGIN
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_path /dev/shm/nginx-cache/wp levels=1:2 keys_zone=WORDPRESS:100m inactive=60m max_size=1g;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
#AAPANEL_FASTCGI_CONF_END
include mime.types;
#include luawaf.conf;
include proxy.conf;
default_type application/octet-stream;
server_names_hash_bucket_size 512;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 30g;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server_tokens off;
access_log off;
server
{
listen 888;
server_name phpmyadmin;
index index.html index.htm index.php;
root /www/server/phpmyadmin;
#error_page 404 /404.html;
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
access_log /www/wwwlogs/access.log;
}
include /www/server/panel/vhost/nginx/*.conf;
}