I'm seen some strange effects when doing performance testing. When I have two machines A and B. When A is connecting to B and I run the tests it takes about 30sec. Test is simple database access via JDBC with Oracle as database.

Now - If both application and database reside on the same machine the performance is much faster. So the test is not CPU-bound at all.

Does Linux-kernel do some trickery with local connections? Like that the packet doesn't even visit NIC?