I'm having an issue with what I believe is Apache. Things will be running nicely, then all of a sudden things will just 'blow up'. Apache seems to fork a bunch of new processes, and it starts ripping into the memory. I've had it essentially eat through all the free memory and swap, and the system will then freeze up as there's no more memory. This is a CentOS server running CPanel, the configuration had been up and running for a long time without problems then this suddenly started happening.
I was told that cPanel itself eats about 128-256Mb of memory from the VPS, so if I want to have cPanel I need at least 384mb RAM to start few simple sites working.
Is it true? (I definitely need cPanel, abandon it - it's not an option) What (as I think) require resources I need to work at the VPS:
1. Three php sites (osCommerce, MySQL, not ideal code optimization I believe, 80-180 visitors at the same time for all 3 in total)
2. One php photo gallery (20-50 visitors at the same time) Those 4 sites generate about 70Gb bandwidth monthly.
3. cPanel.
which amount of RAM is required to get it working fast?
if there is any specific way (maybe logs) to see what is using the swap memory of a dedicated server..
its a server with 8GB ram.. it has 60% of memory used, and a constant swap memory usage of 30%.. i thought that in normal conditions swap memory was not used..
I have a VPS. And have had an issue both when it was 1Gig and now I recently downgraded it to 768m, because I am moving some sites to a dedicated.
However, the part I am having trouble grasping is that when I look at graphs from Munin, it will typically always show 200-400MB free memory (and free -m and top agrees with munin), but Munin shows 'committed' memory that is above the total Ram on the VPS and once the 'committed' ram exceeds the VPS limit, processes start failing.
So, why is 'committed' memory exceeding the RAM on my VPS, when Munin, free -m and top all show there is free memory available?
Code: root@server [~]# free -m total used free shared buffers cached Mem: 768 449 318 0 0 0 -/+ buffers/cache: 449 318 Swap: 0 0 0 Here's a graph that munin produces that shows the 'committed' memory exceeding the total memory. [url]
I have a server that I have had for a little while now that was runnning perfectly fine. All of the sudden it started just using up a ton of the memory and started using up swap. This has caused the server to slow down and e-mail to stop working. I would upgrade to more memory but I suspect it is someone on the server doing something they shouldn't be. My only reasoning for this is due to the fact that this problem just suddenly arised. I cannot for the life of me determine where this ram usage is coming from.
Here are a few of the errors I have recently got just while logging in..
RIGHT after logging in... id: cannot find name for group ID 0 id: cannot find name for user ID 0 [root@www root]# top top: Unknown terminal "xterm" in $TERM [root@www root]# killall -9 spamd bash: /usr/bin/killall: Too many open files in system
I have added 2 screen shots as well. First one (top1) is what happens once I can get the command "top" to actually run (normally takes quite a few tries). Second attachement (top2) is after I sorted by mem usage...
I have a linux server that is only hosting one site , and although the httpd and mysql are working well , then the server load is high and when I restart the server the server load is high till the swap accelerates to 100% and then it uses the memory alot.
I got 5 wordpress and 5 statics website on this server and 100 visitors by 24H00 each day.
Question 1 : Why the memory is so low and the swap so high ? Question 2 : Why i don't find high usage process in top command ? Question 3 How can i resolve this problem ?
we have a problem with one of our web servers where the asp_net service eats ram like crazy and peeks the processor to 100% from time to time. We tried to sniff out what is going wrong but everything looks normal ...
ive created myself a little test site and i mananged to host it with a server thats sitting behind a nat router by forwarding port 80 to it, this site can be accessed from outside my home network by entering the ip address of my router into internet explorer.
then i create myself a free host at no-ip.com and i used the .servegame.com option so its MySite.servegame.com.
it succesfully resolves to my ip becuese when i ping it from the wndows command line it pings the IP of my router.
but for some reason it cant be used to acces my site through a web browser.
the only thing i can think of is that it has somehhing to do with the "domain name" and "server name" fields that you have to fill in while installing apache although no matter what i put into those fields i can stil access my site using my routers IP.
I am using VPS (Linux OS), and web server is apache. I totally have 768M memory. When the system start up, I usually have 550M-600M free memory.
I just found that each httpd process occupied almost 20M memory. It's horrible, I was though that 1M for each process is reasonable.
Now the httpd.conf looks like: StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150
But if I change StartServers to 50, httpd will eat up all my memory. I did some calculation, that 600M/20M = 30. This means if apache have more than 30 concurrent requests, There server will be out of memory. The "MaxClients 150" is meaningless! I was though 150 is too small.
I only use apache with php, they are complied by WHM. Should I re-complied the apache with php?
So mysql is using 6% of memory, xcache is set to 256MB, and rest is for apache. So my question is what do I need to do? Compile apache to have smaller memory foot print or cut down more quicker idlers? Usually there is no problem, but if I got like 300+ people browsing the joomla site all day eventually system gets out of memory and starts swaping. Any ideas?
Quote:
Server Version: Apache/1.3.37 (Unix) mod_gzip/1.3.26.1a mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 PHP/4.4.7 FrontPage/5.0.2.2635.SR1.2 mod_ssl/2.8.28 OpenSSL/0.9.7a Server Built: May 31 2007 00:49:37
Quote:
Current Time: Monday, 24-Sep-2007 19:54:50 CEST Restart Time: Monday, 24-Sep-2007 12:19:45 CEST Parent Server Generation: 27 Server uptime: 7 hours 35 minutes 5 seconds Total accesses: 691782 - Total Traffic: 2.7 GB CPU Usage: u199.12 s35.93 cu.09 cs.71 - .864% CPU load 25.3 requests/sec - 102.3 kB/second - 4135 B/request 30 requests currently being processed, 31 idle servers
I got apache 1.3.3.7 installed and i really do not know what to do. I though I already optimized server but after 6 days of uptime memory is full and i just saw load went to 3 and started to swap. Specs are RHEL 4, xeon 3060 with 4gb of ram.
I'm under impression that if i add 64gb of ram i would still fill it up in lets say 15 days because apache isn't releasing memory properly. After load 3 some memory is released:
I got atm 220 users online and when i restart apache even if i have 500 concurrent users online usage of memory is only 800mb, and as u see now its 3gb and only half of users are online so its not really peak time. Apache processes are still hanging from 4 hours ago and they are not cut, as you can see every process takes around 4% of memory:
*My computer is a computer of a 500 computers network within our company.
* i have been given a STATIC local intranet ip 192.168.10.168 assigned by our IT department via their router.
* i have the internet facility provided through the above mentioned intranet for which i get a dynamic ip ex: 188.54.208.205, 176.44.107.21
* i have installed WAMP server.
my current project for the company i am doing should be able to access via internet in addition to the local access. local access is the primary access method. so now i have installed a free dns service like dyndns. at the setup of that, i have choosen a free subdomain ex: my.freedns.com they offer. then i assigned the ip ex:188.54.208.205. also installed their desktop client for monitoring ip changes auto updates.
Now the problem is : when i hit my.freedns.com the page displaying is of our internet service provider. not of my project homepage . How can i fix so when i issue above subdomain it will show my webserver default page?
Apache is wasting away a bit over a GB of memory at about 100 connections. Is this something normal? Or should I be receiving a little better performance?
Also, I find that the load is very low. Is there anyway to sort of trade a bit of the CPU Usage for some more memory?
When my OpenVZ VPS is running with lighttpd, RAM usage is very low, but when I switch to Apache, RAM usage goes all the way up to the max. I've had this happen to two VPSs already and can't figure out why this happens.
I also have two other VPSs, one Xen and one Virtuozzo and have no troubles with Apache.
I have a VPS with 256MB of guaranteed memory, and no burst/swap. Having little memory like this is quite common for a VPS and I want to know how to make the most of it while running websites. By far the biggest culprit for taking my memory is Apache and I'm not convinced that the default setup makes sense on a VPS.
I know there are other daemons out there that use considerably less memory, such as lighttpd, but enough people (myself included) are going to use Apache regardless (they might require some of the advanced features after all) so it is worth knowing how to get the most out of it.
Apache 2 has various mpm options, most notably prefork and worker. As I understand it the prefork method forks processes to handle requests ahead of time, and can fork more on demand if required, each process handles one request at a time. Worker uses threads, again created ahead of time and on demand, each thread handles one request at a time.
With the default configuration and prefork Apache spawned 6 processes each taking about 5MB, so there goes 50MB in total. With workers it wanted to create 50 threads, each with a 10MB stack, this instantly went over the memory limit so wouldn't start at all. Thankfully the stack can be adjusted using the ThreadStackSize setting so it can be made to run, but even after this what do you really have for your memory?
One problem with having one request per process/thread is that, again by default, Apache has a keep alive setting of 15 seconds. This means that once a request has been processed, the process/thread is then kept around for up to 15 seconds in case the client wants to do anything else. With prefork that is 5MB of memory being used, and even with threads with a reasonable 1MB stack size there is still a huge amount of memory wastage on a connection that might not even do anything. Meanwhile other visitors might be getting out-of-memory problems as Apache tries to spawn more handlers to meet demand.
I think it should be fairly obvious that the worker mpm is the best option here, if everything works fine with a 1MB stack then the thread overhead is considerably lower than the process overhead.
The new events mpm should relieve this problem as it uses an event queue to keep an eye on keep alive connections rather than a whole thread. Unfortunately this mpm is not considered stable yet, so in the mean time I am wondering if VPS users should just disable keep alive, or at least adjust it to just a few seconds.
The benefit of keep alive is that it reduces network traffic and CPU load as there is a small amount of overhead in setting up a new TCP connection. When servers had 400MHz chips and massive 256MB of ram this was a good trade off. But now VPS often have access to much more powerful processors, and the same 256MB isn't considered massive any more so a lot of applications are less frugal and less adept at running in this environment.
In the unlikely even that Apache had 200MB to play with, using 1MB threads means that the system can handle 200 idle connections before running out of resources and failing to handle new connections. With a keep alive of 15 seconds you can support 200 connections per 15 seconds. In light of the fact that many newer browsers will open 4 simultaneous connections (up from the previous 2) that is only 3.34 users per second. Drop the keep alive to 1 second and you can handle 50 users per second. These numbers are unrealistic because they assume the request handling itself takes no time at all, but a lot of requests can be handled in split seconds so maybe these numbers aren't so far fetched. If the request handling takes 250ms and you turn keep alive off you could handle 200 users per second.
I am thinking that it would be great to have a reverse proxy sat in front of Apache, one that used an event queue and thus had little memory overhead for maintaining incoming connections, but closed down its connection to Apache after each request. Unfortunately I do not know of one.
Which is more efficient in the way of memory? Using Subversion with Apache and WebDav, or using SVNServe? I figure the latter, but by how much? How much ram usually would be used by the former? I'm undecided as to which method I want to use to set up Subversion yet.
I currently have 2 VPSs that I'm monitoring and I noticed that on one of them the memory usage is much higher than the other which doesn't make sense to me. I tracked the high memory usage to the Apache processes.
Here's the overview of the VPSs:
LiquidWeb VPS- 512MB RAM, 10 Sites with minimal usage. Average httpd process (Owner Priority Cpu% Mem% Command): nobody 0 0.0 1.2 /usr/local/apache/bin/httpd -k start -DSSL
Virpus VPS- 384MB RAM, 61 sites with moderate usage. Average httpd process (Owner Priority Cpu% Mem% Command): nobody 0 0.0 0.3 /usr/local/apache/bin/httpd -k start -DSSL
Both Apache configurations are identical, the only difference besides the hardware is that LiquidWeb runs CentOS4.7 and Virpus runs CentOS5.2, any ideas? It's not to big of a deal since I'm not near my limit for either of them but I was just curious.
I've got a complicated problem and I can't figure out what I need to edit to fix this.
I've been messing with the httpd.conf and php.ini files trying to optimize them as best I can. I've managed to get the load to stay pretty low all day, and everything seemed to be working fine. But then apache crashes.
(See screenshot for details)
httpd starts out with 70-150 VIRT memory, and it constantly goes up all day, and I've yet to see it go down. And, eventually it just crashes Apache! In the screenshot it's 502m, but I've seen that get as high as 800! And sometimes I even see a number like this "80376" no "m" or anything, just "80376"; I've no idea what that's about.
So what do I need to edit or tweak to fix this?
I'm on a cPanel linux server, Apache 2.2.8 and PHP 5.2.6.
In the last day or two I've been having issues with memory on one of by boxes.
Something eats it all up, so the OS starts swapping, the I/O wait shoots up, and soon the load is up in the hundreds and the thing is totally useless.
During the day today I've tracked the something to occational apache processes. It seems that occationally a thread is started which uses upwards of 150M of memory. These threads are obvioudly doing something heavyweight and take a while to complete. When I get a few of them running together it soons finishes off all my available memory. Below is an extract from top when a couple of these threads are running.
Code: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10230 nobody 25 0 197m 27m 9392 R 45.5 2.9 0:03.27 /usr/local/apache/bin/httpd -DSSL 10231 nobody 25 0 197m 25m 8376 R 52.8 2.7 0:01.60 /usr/local/apache/bin/httpd -DSSL I was wondering if anyone could help out by suggesting some ways of tracking down what page/script it which uses so much memory. It's a cPanel server so it's not really practical to tail -f the apache logs (not knowing which account it is means I don't know which file to watch).
I'm running a single Magento website with only around 150 products, and very low traffic, on a VPS with 2 Cores and 4GB of ram. However I am getting constant warning emails about high Apache Memory usage and High CPU usage.
The server and site were working fine, however since the server failed (Power cut on upgrade at the hosts end) and we rebuilt the website I'm getting these warnings, my host said it is just the website and the server needed upgrading... to which I did (server was a 1 core 2GB ram server). However since I've upgraded I'm still getting these warning emails.
I'm really new to VPS's and plesk so I'm wondering what I can do to try and track down what is causing these high usage as I'm 100% certain the site was fine before. The server has default build both before and after the fail.
We are currently running plesk 11.5 and over the last few months, the apache memory usage has been very high. On investigation we have gone through the logs and we can't find a cause.
I can issue a service httpd restart and the memory drops for about 30 minutes and then we see the apache memory grow to almost 1.5 - 2GB. Why this keeps happening?