Hi Graham,

First, thanks for all your help!

> If a different physical machine or you have multiple IPs on the one
> machine, then preferable to serve the media files from a different
> hostname. That way the media web server can still run on port 80, in
> the case of the same machine by configuring the respective web servers
> to only listen on the one IP address and not all interfaces.
>
> If you only have the one machine, don't have a separate IP and don't
> want to have a non port 80 public web server, then you'll need to make
> everything appear on the one hostname/port.

Well, I have another server available now ;)

> Do you know which process in particular though are using up all the
> memory?

The `top` command tells me that apache is taking the most slice of the
RAM. When I reach the high loads, there is between 40-50 subprocess of
httpd.

> If it is the Apache child process in which mod_python and your Django
> application is running are you taking measures like setting
> MaxRequestsPerThread directive to some non zero value so that the
> processes are recycled on a regular basis and not just growing and
> growing in size over time. Disabling keep alive or at least reducing
> the keep alive timeout can also be help in as much as holding down
> active memory and allowing more concurrent requests from different
> users without Apache having to launch new child processes.

The KeepAlive is already disabled, I don´t have set
MaxRequestPerThread, whould you suggests me to set it?

<IfModule prefork.c>
    StartServers         5
    MinSpareServers      5
    MaxSpareServers     10
    ServerLimit        1600
    MaxClients         1500
    MaxRequestsPerChild  10000
</IfModule>

KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15

> > A friend told me that I can make python library shared.
>
> If you track that one back far enough you will find me at the other
> end as I was the one who started that recommendation. I got sick of
> people complaining about mod_python using up so much memory when it
> was mostly to do with the Python installation not using a shared
> library and what happens when statically compiled object gets used in
> dynamically loadable modules. :-)

:) ok, then I need to compile python with shared libraries and
recompile mod_python to link it with my new python environment?

> the GIL is not
> necessarily as big a problem when hosting applications embedded with
> Apache child processes as some would have you believe. See my prior
> blog entries for more about GIL and multi core issues:
>
>  http://blog.dscpl.com.au/2007/09/parallel-python-discussion-and-modws...
>  http://blog.dscpl.com.au/2007/07/web-hosting-landscape-and-modwsgi.html

> How to split things up across boxes is always a hard decision. You
> really need to do some testing which mirrors the requirements of your
> application as far as database and media file serving loads to get a
> good idea. Without that it may be more of an educated guess as to
> which may benefit more.

Well, I made use of locmen cache, this may compromise the ram usage I
think.

> Still not sure though what you think is causing the problems. Yes, you
> have high memory usage but what is using the memory? Is that leading
> onto swapping?

Not all the time, once I have 4GB of ram the server don´t go to swap
almost all the time. I can´t tell preciselly if the server is onto
swapping when the server stucks. I will pay attention to this when the
problem occours again. I´m not a server expert, is this top output
normal?

Cpu(s):  7.5% us,  1.3% sy,  0.0% ni, 91.0% id,  0.0% wa,  0.1% hi,
0.1% si

us is the user cpu usage, sy is system ok? What is id? Is it normal to
have it at higher levels?

> If you can indicate whether it is Apache itself, the
> Django application, the database etc, will help as far as giving
> further suggestions.

I don´t have any performance meter, I thinking on put a script making
a log of a ps command and analyses that result until a crash, do you
recommends me any performance test tool?

I can´t tell preciselly but I think apache is the bad guy here.
Yesterday, my server start to have problems just after I change a
header file used on partnets sites. The header is an static file, it
seems that when many users start to download the new header (the older
was cached on client), my site start to be slow until stuck.

> BTW, as far as using mod_python, you might want to also experiment
> with mod_wsgi. For your sort of high performance web site, you would
> most likely use it in embedded mode and so not much different to
> mod_python in that respect, but mod_wsgi does have a smaller memory
> footprint and lower per request overhead.

I see your posts ;), I can give it a try. But I want to fight the real
problem reather to waste time on something that can help but not solve
my problem. If I use mod_wsgi I need to compile python with shared
libraries too?

I thinking on set lighttpd on the other server I got and serve the
partners header throught it to see what does happen. Do you know any
performance logging tool I can use to measure if my action solves
anything?

Graham, thanks for all the help :-P
Best regards!

--
Michel Thadeu Sabchuk
MisterApe


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to