Any multi-core advantage here?

Let me create it this way.

"Let's say I have an application server running on a single Intel core processor and serving 200 concurrent users. Will the hardware be moved to a dual core system so that my application server now serves about 350 concurrent users?"

The main question I hope to address is "Can adding more processor cores help increase the I / O capabilities of the server." Because sometimes this is exactly what hardware manufacturers are talking about when they advertise their multi-core servers.

0


a source to share


4 answers


You have to profile your server, identify its bottleneck and handle them.

If you are memory bound, buy more memory or buy a computer with faster memory.

If you are disk bound and load a lot of static content, consider an SSD drive.



If his database is linked, consider this.

But usually you are "tied to configuration" and tweak your configuration, for example. changing the number of threads in the pool or such will give you immediate improvement.

Many web servers and databases are precisely software written to use additional kernels. Of course, many also charge core licensing fees, so consider that aspect too.

+3


a source


You may or may not see the benefits, but since the CPU does not perform I / O operations, I would not expect the significant benefit to be that tasks are mainly related to I / O binding.



EDIT: My answer assumes that your code is written in such a way that you are actually using multiple cores. If this is not the case, your application will not use additional cores, but the machine will be better equipped to handle other concurrent tasks.

+1


a source


This, of course, depends on how your application server was written. If the software doesn't use any parallel programming techniques, you cannot run it in parallel, even if the hardware supports it.

0


a source


If your server is single threaded (using IO selection) and query processing is free of side effects (i.e. it can be conceptually parallelized), then certainly running (mapped) multiple instances on a multicore machine maximizes the machine's compute utility.

Whether this is a higher throughput or not depends on whether the request processing is CPU-bound. Generally, IO is the main bottleneck in distributed systems. But at the same time, if the assembly of a request (request) requires significant computations, then there is a certain predetermined processor overhead for each request that exceeds the cost of the OT. In this case, there will be multiple help with cpus.

Beyond the protocol layer, it is clear that if processing each request requires significant computation, the presence of a processor bottleneck will affect server availability. Using multiple processors will clearly help.

0


a source







All Articles