What type of specs are required to allow NextCloud to handle these kinds of speeds? At least gigabit over the internet (with a 1Gb line of course)? What about 2.5Gb, or 5Gb or 10Gb?
First is CPU, would a mid-higher end Xeon v4 be capable of this?
If we have a 50GB file that’s stored in Nextcloud’s data folder, that’s on the 10GbE network, on a very fast server, mounted as a NAS connection. Then when there’s a download request, how does this work? Does Nextcloud load this file into memory in parts and then send it, or does it cache it onto the local drive?
Essentially does the speed that PHP/Nginx or the docker container or VM (depending on implementation, which btw does it matter?) are running on make much of a difference?
I’m looking to start using this in a small business. We have a symmetric 1Gb connection that might be upgraded to 10Gb in the coming year. We have a lot of large files internally, and like Nextcloud for external use.
We want clients to be able to download large files at the full speed of our internet. And similarly clients often have to send us large files, and we would like them to be able to upload at the speed of their connection, or ours if theirs is faster.
Also is this the type of thing that redis or other memory caches can help with?
Nextcloud itself is not a protocol. It relies on standard web / file transfer protocols and OS for functioning. This is true for any software.
Simple iPerf test can show you if your CPU has the grunt to handle 10Gig networking with sustained load or not.
CPU / RAM requirements of Nextcloud comes down to number of simultaneous active users along with what kind of extra Apps are installed.
Mind you, when Internet is in the picture, there are many other things which can effect client side performance. Including the inter-ISP interconnects, Client side network and anything in between.
I had an Intel Pentium Quad Core N3530 laptop running Ubuntu 22 LTS along with Snap Nextcloud and 1Gig Network with 250Mib ISP. It could easily achieve full download speed when someone from other side of the country was downloading a 300GB+ vDisc from it.
I had to upgrade the hardware not for speed issue, but when number of active users grew. Simultaneous users going small works like office or media access pushes the CPU / RAM way more than a continues single user full speed download.
Nextcloud as software doesn’t care if you are running it with enterprise grade hardware or domestic consumer grade stuff. Enterrpise hardware is more or less same as consumer grade stuff, only it’s build better to last longer and comes with top SLA level support for min down time. Now if I have to give you a number, for business anything (modern) like 8c/16t or above with 32gigs should be good enough, unless you are looking at 100+ simultaneous active users !!
It does matter. Depending on your actual usage, fine tuning Apache / NginX or PHP will definitely improve performance. Usual default configs are good enough for most but depending on your skills with these dependencies and Indvidual requirements, you may or may not need to tune the parameters!!
Maybe you can clarify this question? “Mounted as a NAS connection” is not a technical term. Using what protocol? Is it accessed using the Nextcloud external storage app? Or mounted by the host OS and your Nextcloud data is on it?
Be aware that there are protocol overhead and other factors such as performance of storage to consider that can and will impact the final performance, and that is doubly true when accessing data on a separate backend system.