3 ms·
Why can't the web server do other work with the CPU and other resources at the same time that it is waiting for those network operations to happen?
by nbm 14y ago
Why can't the web server do other work with the CPU and other resources at the same time that it is waiting for those network operations to happen?
- nivertech 14y agoYes, but what the other threads will do? Answer: same stuff. I can put it another way: Some Tilera boards have 4x10GbE ports, but have no good floating point support. On the other hand Xeon Phi has AVX2 (512 bit wide SIMD) with excellent floating point performance, but TCP/IP stack emulated over PCI-express. So which one will you choose for network server and which for number crunching?
- nbm 14y agoMy somewhat circuitous point is that the ability of a server to perform work is bound by something that runs out - CPU (no more CPU time available), disk I/O (can't handle more I/O requests to disk), network I/O (can't put or get any more packets through your network card or some upstream device/pipe), and so forth. Colloquially, whatever runs out first is what you are bound by. You can either increase the resource (upgrading CPU, adding memory), or use the resource in a different way/trade off one resource against another. For example, compressing data before network or disk I/O might be useful if you have spare CPU. Once you've done that, you may now be bound by something else - maybe available memory. If you have spare resources (CPU, for example), you can then choose to use fewer/less powerful resources in that space if it makes economic sense. You can also talk about response time being bound by something - disk seek time, network latency, memory latency, and so forth. That affects how fast something can respond, and while that figures into how much work a server can do (per-thread/request memory usage), it doesn't generally largely affect how many machines you have to buy or their configuration (unless you have low-latency options).