Message
Status: Alpha
Brought to you by:
coroberti
Hello again, I have noticed the disk drive on my server is not active much during testing with curl-loader. I looked at the curl-loader log file and I think I know what is happening, but not how to change it. Let me describe what I think it is doing, and then what I would like it to do. 1. What do I think it is doing now? If I cycle through N URLs with 100 clients, the curl-loader will setup all 100 clients to process the first URL, then it has them all do the second URL, then it has them all do the third URL, etc. This means that all clients are normally fetching the same file (I am using 100MB files for testing). This means that I am testing networking but all clients are pulling the same file so 99 of them are just pulling from the cached copy. Am I wrong? 2. What I want If I have N URLs and 100 clients, I would like curl-loader to if (process % N) == 0 then start on URL 0 if (process % N) == 1 then start on URL 1 if (process % N) == 2 then start on URL 2 (and then if I have more processes than URLs, wrap back to URL 0 when I reach URL N-1) Why do I want this? This means that if I have a large set of URLs, I can force the server to work hard at loading files from disk and get a more realisitic load for my server (which will be a mirror archive that I expect many people to use as their mirror source). This means that normally the file a client wants is probably NOT in cache, and with a collection of ISO images the filesystem cache will not be able to hold everything and the disk will be busy. curl-loader has already helped me solve many tuning problems on my server about the firewall, ulimits, and kernel tunables. With the ability to do the testing like I talked about in #2, I can also get a closer simulation to the real load so when I go "live" I will know for sure what number of clients is my maximum under heavy load instead of just knowing how many will work if the data is all cached. Maybe curl-loader can already do this, but I could not find this in the sample configurations or the README, and I could not find a man page to read. It's probably in there somewhere and I missed it? |