I have some servers that do a lot of file zipping operations. This also means that all the files have to be remotely downloaded first before being zipped and remotely uploaded, or remotely streamed to clients.
I have the option of either upgrading old servers or getting new ones.
The old server specs are about 3.1 GHz
and bandwidth averaging 100 Mbps
.
The new server specs are about 2.4 GHz
and the bandwidth guaranteed to be 1000 Mbps up to 2000 Mbps
.
Memory usage should remain the same or be reduced in the new iteration.
At this point, I have figured out my RAM and Disk usage. That is not an issue. The question leans on how CPU speeds and bandwidth affect streamed downloads.
Those are my options.
Which option is better for my use case?
You should track CPU and bandwidth usage on your current servers when they are performing those "zipping operations".
If they use 100% CPU, go for faster CPUs; if they use 100% bandwidth, go for higher bandwidth.
Also, please note that newer CPUs can be a lot faster than older ones, regardless of nominal GHz values; the number of CPU cores is also relevant (assuming those "zipping operations" are multithreaded and/or run in parallel).
If you're going to find some "optimal" solution, you have to find out how much data can pass through your data busses, the optimal would be that the data arrives at some netcard, get read from the cpu and directly zipped to memory in a netcard.
Lets assume you got
Then there is the memory throughput
So best case, with the best NIC, user level drivers, always hit cache
If you do not have access to this lucky scenario you are more likely to be memory bandwidth limited as
Assuming 7 reads and 7 writes writes the limit should be around 54GB/s / 14 = 3.85 GB/s in best case. With fewer read/writes you quickly run into the NIC max speed.
So from here you can cut down on specs until your budget or needs are met.
I have not been able to locate any data for in memory multithreaded zipping.