Thanks for all the help guys. I will continue looking into the issue and Bruce you present a compelling argument so I am definitely considering making that switch, and would enjoy seeing your article when it is finished.
-Josh On Nov 11, 2:19 pm, Alex Robbins <[email protected]> wrote: > Yeah, I'm with Bruce on that. We switched from mod_wsgi to > nginx/gunicorn because it was a pain and took more resources. > > Alex > > On Thu, Nov 11, 2010 at 3:52 PM, Bruce Kroeze <[email protected]> wrote: > > Bleah. > > I'm going to jump in here and say - as I always do in this type of situation > > - that Apache is a terrible solution for Django/Satchmo. Djangoproject's > > recommendation is simply wrong for most use cases. > > This is yet another reason why. You can't determine where the leak is. Is > > it Apache? Is it mod_wsgi misconfigured? Who knows? It isn't something > > you can get to the bottom of without a ton of testing, and in the meantime > > your site is crashing. > > Who cares? Stop using Apache. Mod_wsgi stinks, almost as much as > > mod_python. > > My preferred solution these days has changed, and I'm preparing a detailed > > article about it, but it isn't very far from this solution. > > http://brandonkonkle.com/blog/2010/jun/25/provisioning-new-ubuntu-ser... > > Differences in my most-preferred-solution: I use buildout instead of pip, > > and Lighttpd instead of Nginx. Neither change would affect the superiority > > of this solution. > > Here's the big deal - this is why you should do this in a nutshell: > > 1) You will explicitly know which process is eating memory, since you will > > have separate django daemon threads. > > 2) Green Unicorn will allow you to kill and recycle worker threads after > > timeouts. If it really is Satchmo eating memory, then that will release the > > memory on a continual basis. > > 2.5) Green Unicorn is almost unbelievably nice. Really. I love it. > > 3) Your site will almost certainly be faster. In any case, much faster > > compared to a crashed server. > > 4) Figuring out what is wrong will be much much easier. > > #4 is the biggest issue, IMHO. 90% of the cost of a store is maintenance. > > Anything that makes the store easier to maintain and debug is worth it, > > even if #3 is not true. Worth a little speed slowdown (doubtful in any > > case) in exchange for testability and clarity. > > Good Luck, > > Bruce Kroeze > > On Thu, Nov 11, 2010 at 1:27 PM, Alex Robbins > > <[email protected]> wrote: > > >> Sorry, at this point its hard for me to say exactly what is going on. > >> I'd say if you can't see any processes with the name you assigned in > >> the config directive, then it seems like there probably aren't daemon > >> processes. This is what happened to me earlier. I had to tweak and > >> mess with the daemon process settings to get it to work. If I remember > >> my situation correctly, the process group wasn't setup right, but > >> yours looks ok to me. > > >> As for how is it running at all? If it isn't in daemon mode, then it > >> is running in embedded mode. There is a python interpreter in every > >> httpd process, which would take a lot of ram if you spawned a bunch of > >> httpd worker processes. > > >> Alex > > >> On Thu, Nov 11, 2010 at 3:13 PM, Josh <[email protected]> wrote: > >> > Ok so the conf now looks like this: > > >> > WSGIDaemonProcess hatikva.com user=hatikva group=hatikva python-path=/ > >> > usr/local/lib/python2.6/site-packages display-name=%{GROUP} > >> > WSGIProcessGroup hatikva.com > >> > WSGIScriptAlias / /home/hatikva/store/apache/store.wsgi > > >> > but when I ps -A I don't see anything like wsgi:hatikva. Does this > >> > potentially mean it's not really running in daemon mode? If so any > >> > ideas on how it is running at all? > > >> > On Nov 11, 12:53 pm, Alex Robbins <[email protected]> > >> > wrote: > >> >> Yeah, looks like you are right. I think I normally used that > >> >> 'display-name option' that Graham mentioned. Sorry about the confusion > >> >> there. If you use that, then do they show up in ps? > > >> >> Alex > > >> >> On Thu, Nov 11, 2010 at 2:47 PM, Josh <[email protected]> wrote: > >> >> > I also noticed that down near the bottom of this thread > > >> >> > >http://groups.google.com/group/modwsgi/browse_thread/thread/9d0e72b2c... > >> >> > Graham Dumpleton said that "Under 'top' or 'ps', the mod_wsgi daemon > >> >> > process will still show as a apache/httpd process." So I think it > >> >> > all > >> >> > gets lumped together. > > >> >> > On Nov 11, 12:38 pm, Josh <[email protected]> wrote: > >> >> >> Hmm, i don't think I'm actually seeing the daemons. What do they > >> >> >> show > >> >> >> up as under COMMAND (I dont see anything with wsgi). But there is > >> >> >> another small dev site running on the same server (they are both > >> >> >> theoretically set up under daemon mode as I showed above). I think > >> >> >> that if it wasn't in daemon mode they wouldn't both work although I > >> >> >> could be wrong about that. Looking at the apache conf I posted > >> >> >> earlier does it seem that I have properly configured daemon mode? > >> >> >> Thanks. > > >> >> >> On Nov 11, 12:22 pm, Alex Robbins <[email protected]> > >> >> >> wrote: > > >> >> >> > If you are really running mod_wsgi in daemon mode, then django and > >> >> >> > satchmo won't be able to affect the size of the httpd processes. > >> >> >> > The > >> >> >> > python interpreter should live in the mod_wsgi daemon, which is a > >> >> >> > completely separate process. I have had troubles before with > >> >> >> > mod_wsgi > >> >> >> > running in embedded mode, even though it is supposed to be daemon. > >> >> >> > Can > >> >> >> > you see any processes for mod_wsgi? If you don't get the config > >> >> >> > exactly right, it won't use daemon mode. (This might not even be > >> >> >> > the > >> >> >> > problem, but if there aren't daemon processes something is > >> >> >> > misconfigured.) > > >> >> >> > If you can see the daemon processes, and httpd is separate and > >> >> >> > huge, > >> >> >> > then I'm not sure what is going on. It wouldn't be python making > >> >> >> > it > >> >> >> > big. Maybe there are some other modules installed? (mod_php, > >> >> >> > mod_rails > >> >> >> > or something like that?) > > >> >> >> > On Thu, Nov 11, 2010 at 2:07 PM, Josh <[email protected]> wrote: > >> >> >> > > Ok so the server is a VPS and it uses virtualmin and centos. My > >> >> >> > > understanding is that each domain has its own httpd process (two > >> >> >> > > if > >> >> >> > > you have ssl enabled). I have been watching the output of top > >> >> >> > > for > >> >> >> > > awhile and when I say memory usage I am talking about the virt > >> >> >> > > of a > >> >> >> > > specific httpd process. I am fairly certain that this is the > >> >> >> > > httpd > >> >> >> > > process which the site runs from because it is the correct user > >> >> >> > > and as > >> >> >> > > I opened multiple connections the memory usage began going up. > >> >> >> > > This > >> >> >> > > single httpd process now is up to 867m virt and 651m res. There > >> >> >> > > are > >> >> >> > > other things on the system using memory but they have remained > >> >> >> > > constant and I am concerned that a single process has gone up so > >> >> >> > > much > >> >> >> > > when it seems that nothing is going on with the site. Thanks > >> >> >> > > for the > >> >> >> > > help. > > >> >> >> > > On Nov 11, 11:53 am, Alex Robbins > >> >> >> > > <[email protected]> > >> >> >> > > wrote: > >> >> >> > >> First off, mod_wsgi in daemon mode with apache should be a > >> >> >> > >> decent > >> >> >> > >> deployment method for ram consumption. I don't think your > >> >> >> > >> problem is > >> >> >> > >> there. > > >> >> >> > >> When you say the memory usage is 650mb, what is actually using > >> >> >> > >> all > >> >> >> > >> that memory? Is it httpd processes? The mod_wsgi processes? > > >> >> >> > >> On Thu, Nov 11, 2010 at 1:49 PM, Josh <[email protected]> > >> >> >> > >> wrote: > >> >> >> > >> > Oh yeah my urls looks like this: > > >> >> >> > >> > from django.conf.urls.defaults import * > >> >> >> > >> > from store.urls import urlpatterns > > >> >> >> > >> > urlpatterns += patterns('', > >> >> >> > >> > ('^pages/', include('django.contrib.flatpages.urls')), > >> >> >> > >> > (r'^product_info\.php', > >> >> >> > >> > 'store.localsite.views.old_redirect'), > >> >> >> > >> > (r'^searchRedirect/', > >> >> >> > >> > 'store.localsite.views.redirect_search'), > >> >> >> > >> > (r'^reports/', 'store.localsite.views.reports.view'), > >> >> >> > >> > ) > > >> >> >> > >> > and I have local_dev and debug set to false. (searchRedirect > >> >> >> > >> > and the > >> >> >> > >> > product_info\.php above were set up to redirect because the > >> >> >> > >> > site used > >> >> >> > >> > to be osCommerce based). > > >> >> >> > >> > On Nov 11, 11:46 am, Josh <[email protected]> wrote: > >> >> >> > >> >> It is centos but we are using apache and mod_wsgi in daemon > >> >> >> > >> >> mode, here > >> >> >> > >> >> is the relevant part of my apache conf: > >> >> >> > >> >> ------- > > >> >> >> > >> >> Alias /static/ /home/hatikva/store/static/ > > >> >> >> > >> >> <Directory /home/hatikva/store/static> > >> >> >> > >> >> Order deny,allow > >> >> >> > >> >> Allow from all > >> >> >> > >> >> </Directory> > > >> >> >> > >> >> Alias /media/ > >> >> >> > >> >> /usr/local/lib/python2.6/site-packages/django/contrib/ > >> >> >> > >> >> admin/media/ > > >> >> >> > >> >> <Directory > >> >> >> > >> >> /usr/local/lib/python2.6/site-packages/django/contrib/admin/ > >> >> >> > >> >> media> > >> >> >> > >> >> Order deny,allow > >> >> >> > >> >> Allow from all > >> >> >> > >> >> </Directory> > > >> >> >> > >> >> WSGIDaemonProcess hatikva.com user=hatikva group=hatikva > >> >> >> > >> >> python-path=/ > >> >> >> > >> >> usr/local/lib/python2.6/site-packages > >> >> >> > >> >> WSGIProcessGroup hatikva.com > >> >> >> > >> >> WSGIScriptAlias / /home/hatikva/store/apache/store.wsgi > > >> >> >> > >> >> ------- > > >> >> >> > >> >> My understanding is that the way the static directory is set > >> >> >> > >> >> up above > >> >> >> > >> >> means that apache and not django serves media. > > >> >> >> > >> >> As I have watched the memory usage has continued to go up, > >> >> >> > >> >> its now at > >> >> >> > >> >> ~650m, up from ~220m (I have stopped refreshing and this > > ... > > read more » -- You received this message because you are subscribed to the Google Groups "Satchmo users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/satchmo-users?hl=en.
