I posted a thread about problems with search CGI scripts on larger catalogs a while back, the thread is found at:
http://community.actinic.com/showthr...&threadid=1103
Unfortunately, no-one seemed to pick up on the search script problem, only a potential issue with my blocking various robots and crawlers from the site.
Well, it raised it's ugly head again yesterday, when a user with IE6 (or a bot masquerading as IE6 on XP) issued requests for 153 searches on a catalog with 10,000+ products.
The problem arises out of the script's memory requirements - 50Mb + in this particular case.... those of you who understand unix and virtual ram might begin joining the dots at this point.
The first few scripts begin processing, and they generally push out their data in 2-4 seconds, depending on server load (this is an older machine we're about to phase out), and within a very short time period there are more scripts grabbing 50Mb+ of RAM (each) - before you know it, all physical RAM has been used - so the server dutifully begins using virtual RAM (swap space) - which is on hard disk.
Now... virtual RAM is CONSIDERABLY slower than "real" RAM - so the scripts take longer and longer to process, until the machine is simply bogged down in requests to supply RAM to these search scripts - each of which is taking now minutes to process their work and even BEGIN to produce output.
Meanwhile - the clueless searcher continues to hit his back and seach buttons - apparently, a total of 152 times (to get the 153 instances of the script I found from his IP address in the very short period of time).
If this is a robot (which I suspect - as surely no-one is clueless enough to hit back/search 152 times - SURELY?!?!?), I'm now stuck - I can't block User agents of IE6 - that's not acceptable - I can't continually sit and watch the output of a netstat and block those IPs that threaten our systems either.
My solution? I don't have one - I'm turning to Actinic for this. We're taking all the steps to minimalize the system load of this CGI - turning off all options possible on the search facility and we're in the process of moving the site to a newer, faster server with more RAM - but in this particular instance, I can't see that a machine with 2Gb of RAM would have coped. Add it up... 150 concurrent requests for 50Mb of RAM is 7.5Gb of RAM - all for a 10,000 product catalog.
I originally brought this matter to the attention of Actinic almost a year ago - we've been struggling under this problem for longer than I care to think about - if ANYONE has any suggestions, I'm open to them at this stage.
The customer has endured system upgrades and software upgrades, server downtime and added expense and effort to try and combat this.... my only step left is a dedicated server (for a catalog that's only 300Mb large?!?!) and I can't have any faith that even a dedicated server wouldn't succumb to such an onslaught of requests for large chunks of resources - unless VERY well specced machine - for a business with only 10 $30-50 dollar orders a day it's hard to justify the added expense.
Oh... and if you have any 10,000+ product catalogs, and want a demonstration of how this can bring your servers to their knees, simply publish the URLs and I'd happily show you....
regards
Greg Hewitt-Long
http://community.actinic.com/showthr...&threadid=1103
Unfortunately, no-one seemed to pick up on the search script problem, only a potential issue with my blocking various robots and crawlers from the site.
Well, it raised it's ugly head again yesterday, when a user with IE6 (or a bot masquerading as IE6 on XP) issued requests for 153 searches on a catalog with 10,000+ products.
The problem arises out of the script's memory requirements - 50Mb + in this particular case.... those of you who understand unix and virtual ram might begin joining the dots at this point.
The first few scripts begin processing, and they generally push out their data in 2-4 seconds, depending on server load (this is an older machine we're about to phase out), and within a very short time period there are more scripts grabbing 50Mb+ of RAM (each) - before you know it, all physical RAM has been used - so the server dutifully begins using virtual RAM (swap space) - which is on hard disk.
Now... virtual RAM is CONSIDERABLY slower than "real" RAM - so the scripts take longer and longer to process, until the machine is simply bogged down in requests to supply RAM to these search scripts - each of which is taking now minutes to process their work and even BEGIN to produce output.
Meanwhile - the clueless searcher continues to hit his back and seach buttons - apparently, a total of 152 times (to get the 153 instances of the script I found from his IP address in the very short period of time).
If this is a robot (which I suspect - as surely no-one is clueless enough to hit back/search 152 times - SURELY?!?!?), I'm now stuck - I can't block User agents of IE6 - that's not acceptable - I can't continually sit and watch the output of a netstat and block those IPs that threaten our systems either.
My solution? I don't have one - I'm turning to Actinic for this. We're taking all the steps to minimalize the system load of this CGI - turning off all options possible on the search facility and we're in the process of moving the site to a newer, faster server with more RAM - but in this particular instance, I can't see that a machine with 2Gb of RAM would have coped. Add it up... 150 concurrent requests for 50Mb of RAM is 7.5Gb of RAM - all for a 10,000 product catalog.
I originally brought this matter to the attention of Actinic almost a year ago - we've been struggling under this problem for longer than I care to think about - if ANYONE has any suggestions, I'm open to them at this stage.
The customer has endured system upgrades and software upgrades, server downtime and added expense and effort to try and combat this.... my only step left is a dedicated server (for a catalog that's only 300Mb large?!?!) and I can't have any faith that even a dedicated server wouldn't succumb to such an onslaught of requests for large chunks of resources - unless VERY well specced machine - for a business with only 10 $30-50 dollar orders a day it's hard to justify the added expense.
Oh... and if you have any 10,000+ product catalogs, and want a demonstration of how this can bring your servers to their knees, simply publish the URLs and I'd happily show you....
regards
Greg Hewitt-Long
Comment