Tuesday, October 11, 2005
Performance tests
Well, the performance tests went just lovely. The proxy had about 250-300MBit throughput when hit with 1000 parallel users (about ~6000 connections). What turned out to be a very nice side effect is that memory usage was under 10M. This is VERY nice but also shows that I need to work some more on the Heap class (if the heap does not do more in memory operations when there are 1000 users hitting the machine then when should it?). All in all I am very satisfied.
At last, performance tests
A very nice performance analysis devide from spirent (Spirent home page) has been put at my disposal for a couple of hours. I'll see if I can tune the system so I get some convincing data for my theory. This will be the first real test for the prototype.
TCP_CORK
Found an interesting, linux specific tcp socket option. It is called TCP_CORK and what it does is prevent the kernel from sending non-full tcp frames. This should improve performance but has certain implications. The main problem is that we don't want the content to be kept in the buffer for 'too long' (and how long is too long?). So we have to make sure we uncork the socket if we want the data to be sent immediately. The approach I am using for Flora is that we keep the socket corked as long as we know that there is more data coming. As soon as the socket buffer becomes empty we uncork the connection and let any lingering data to be sent to the client.
Thursday, October 06, 2005
And thus it begins...
A first pre-alpha stage is here. It compiles :) and even better... it runs. It seems that there is a problem with mapped page sync and linux's sendfile. Already talked to some people and it seems to be a chaching issue. We'll see how it goes ;)...