Corvus, Are you an expert on the following? Say you have a Quad machine, or even a dual. I want to tell Windows to run the TCP/IP stack on one CPU and to never context switch anything onto that CPU, in other words, I want to set the affinity of the TCP/IP stack to a particular CPU (probably CPU 0). Do you know if this is a smart thing to do? I can do it in the Task Manager, but I am not sure if it is a smart thing to do. My guess is that this is a smart thing to do if you have a >= QUAD machine, but not so smart on a dual. Second part of my question is: Assuming it is a smart thing to do, what about raising the Base Prioity of the TCP/IP stack from the default of "normal" to "high" or even "realtime" ? nitro
Nitro, have you seen these products, they were posted on another thread . Look interesting to me. http://www.superspeed.com/ramdiskplus.html http://www.platypus.net/products/direct_attach.asp http://www.cenatek.com/product_ramdisk.cfm
Banjo, Those are good products. However, those products are meant for people that need very fast capacity to store data _in_memory_to_disk_. In other words, database type applications. My applications require data to fly from the network adapter into memory and to not to "drop" the quotes. Once a quote is in memory, I unleash CPUs operating at 1 BILLION operations a second at it. One thing I have never tried is to get one of these massive L1 cache CPU's and see what the cache rate hit is on realtime market data. It is an expensive experiment though at about $3K per CPU. I wish there was a service that allowed me to lease a quad opteron machine with large L1 cache CPUs for a day or two to test it myself... nitro
My guess is that interrupt handling would always take place on the 0 CPU, regardless, but I don't know for sure...I have not had the luxury of this problem. I also wouldn't raise the priority of anything to realtime...that allows you to DoS yourself. Nor would I raise the stack priority above normal for TCP/IP, because TCP/IP I/O is an activity filled with a world of waiting on the network hardware and the other half of the channel. Let the other processes that are actively chomping on stuff in memory run.
i think you're not supposed to use cpu affinity for processes that share interrupts. i think you can starve service requests for other processes in that event. check out this info on imagecfg.exe: http://www.jsiinc.com/subh/tip3500/rh3542.htm wee
Hmmm, The TCP/IP stack would get all of one CPU, so it would not be starving anything else on a Quad machine? OK, I am still not sure. But unless we test it, we don't really know. When I get the Quad Opteron board, I am going to play around with this. nitro