Just added a list of URLs to the mod_mono Control Panel (CP).
The Apache module mod_mono has a small control panel. The CP has some (actually very few) control features. You can see how many requests are currently processed, how many are waiting and you can restart the server process (the mono worker process, not the web server).
It can be enabled by
- <Location /mono>
- SetHandler mono-ctrl
So, I extended the CP to show a simple list of currently processed and waiting URLs.
- First column is the request serial number.
- The second colum is the processing time in seconds.
- The third column is the URL with query.
All data is stored in a shared memory segment.
BTW: mod_mono is programmed in C with not too much structure. No offense guys. I am very thankful for it. Great work. I know, it's open source. I should not complain, but improve it (which I did).
Why did I extend it? 2 reasons:
- I believe that an operator of a real service needs more information about what is going on than just the number of requests. We used apache server-status heavily. This is the same for mono.
- Flooding the server with dozens of integration tests, which spawn 200 backend requests each, stalled the server. I was afraid, that mon_mono has a problem under high load.
All slots are occupied by requests which wait for completion of backend requests, which do not find a free slot. Not a mod_mono issue. The situation has been resolved by splitting frontend and backend into separate mono applications. This is the normal configuration of a real multi-tier system, anyway.
- % cd mod_mono-2.4.2/src
- % wget http://wolfspelz.de/download/mod_mono-2.4.2.patch
- % patch < mod_mono-2.4.2.patch
Update: the patch has been integrated into mono 2.6
A proper solution for this common "http to localhost" problem would be a request slot limit by vhost. Some sites even implemented this as apache module :-)