I was wondering, if I use an old home machine as a server – how many connections will I be actually able to support. I was able to calculate the connection’s capabilities myself as it is quite simple.
30 mbit/s = 3.75 MB/s, with average request size of 150 KB 3750/150 = 25. So theoretically my connection will support 25 requests per second on average.
I am not sure how to do that for the hardware, though. The result will probably be greater than 25 which makes it irrelevant to the situation but I am doing it to learn. As well as there is always the possibility to upgrade my connection.
This is the hardware:
Motherboard
SMBIOS 2.5 present. Handle 0x0002, DMI type 2, 15 bytes Base Board Information Manufacturer: BIOSTAR Group Product Name: G31D-M7 Version: Serial Number: None Asset Tag: To Be Filled By O.E.M. Features: Board is a hosting board Board is replaceable Location In Chassis: To Be Filled By O.E.M. Chassis Handle: 0x0003 Type: Motherboard Contained Object Handles: 0
Processor
- Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz
Memory
/0/0 memory 64KiB BIOS /0/4/5 memory 64KiB L1 cache /0/4/6 memory 3MiB L2 cache /0/f memory 4GiB System Memory /0/f/0 memory 2GiB DIMM SDRAM Synchronous /0/f/1 memory DIMM [empty] /0/f/2 memory 2GiB DIMM SDRAM Synchronous /0/f/3 memory DIMM [empty]
Usage
total used free shared buffers cached Mem: 3943 966 2977 77 109 556 -/+ buffers/cache: 299 3644 Swap: 0 0 0
My application executes in
0.023s
and uses225KB
of memory on average of 1000 requests.If any more information is needed I will provide.
Answer
I wouldn’t do this, but the reasons have nothing to do with capacity. In a server, I like to have a lot of uptime. This means you need things like redundant power supplies and RAID arrays or a SAN, and ECC RAM. It’s rather nice to have some monitoring, too, using something like IPMI.
This is why servers are usually more expensive than home desktops for a similar amount of processing power, but also why they don’t crash often and are immune to many component failures.
As far as connections go, calculating this is kind of futile since all kinds of unforeseen factors tend to influence what the server is doing, and as the software changes, so will the performance characteristics. Depending on the application, the bottleneck for performance might be anywhere (CPU, disk access, disk seek, RAM, network, bus speeds…), and that might even depend on the type and amount of data stored and queries processed. The best thing to do in any case is to benchmark, and use that to determine the bottlenecks, scaling, and ratio of bottleneck performance to requests.
Attribution
Source : Link , Question Author : php_nub_qq , Answer Author : Falcon Momot