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.
I run a drupal site on a VPS running Lighttpd with 128MB ram and 15GB disk space. Every so often the server crashes and I have no access to even reboot via the shell, I have to get my host to reboot the VPS. They say its most likely due to the server running out of memory. I would have no more than 5 users plus 5 guests online at the same time. So my question is this...
How can I find out exactly what is consuming the memory and causing the server to crash? I have looked at drupal logs and the server logs, but I'm no wiser as to whats causing it. What should I be looking for and what can I do to try and solve this?
I have a VPS , I recently upgraded because the server kept crashing due to lack of memory. I actually upgraded about two hours ago and the damn thing crashed again! I went into virtuozzo and it said I had 12 mb of memory left.
So I restarted the container, the site loads faster than ever, and says I have 16% of memory left
I've been having problems for the past two weeks. Apache and MySQL kept crashing. I tweaked MySQL, and MySQL stopped crashing. But Apache still crashes, sometimes twice a day, sometimes once every few days. It's driving me crazy. It started around the same time I acquired a new customer, so it's possible the customer has some sort of script or something that is causing problems, but I'm not quite sure how to determine whether the problem is the server itself, or if it's the customer.
So here am I, asking you experts for whatever assistance you feel willing to render. Even if you only merely read it, I thank you for at the very least taking the time to read it. Thanks in advance for any and all assistance given. That being said, here's the information the "How To: Request help from the experts" sticky recommended giving. I also took the liberty of including httpd.conf and my.cnf. I apologize if that resulted in being too much information, and humbly ask a moderator to "white out", or so to speak, (or at least point out) the information that shouldn't be shown.
PHP 5.2.5 (cli) (built: Jan 19 2008 10:08:24) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies with the ionCube PHP Loader v3.1.32, Copyright (c) 2002-2007, by ionCube Ltd., and with Xdebug v2.0.2-dev, Copyright (c) 2002-2007, by Derick Rethans Results of "SELECT VERSION;" in MySQL:
Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1134 Server version: 5.0.54 Source distribution
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> SELECT VERSION(); +-----------+ | VERSION() | +-----------+ | 5.0.54 | +-----------+ 1 row in set (0.00 sec) Results of "ps auxf"
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 1628 608 ? Ss 12:41 0:00 init  ....
i have custom dll built with Delphi that used to work on IIS 5/6/7. After i migrated to apache, DLL started to crash after an hour or two and i have to restart the server. The error was something about bad header. Since the developer says DLL is handling reponses OK and i can't get anything with debug logging on apache side can i run DLL as CFG/FastCGI (not that versed with apache so maybe this question does not make sense)?
It's been happening on both my old and new server, was really hoping this would be fixed.
Basically, the httpd/apache service crashes or goes down making domain names and sites unable to load; although cPanel/WHM still accessible. This would go on for about 5 minutes OR until I restart httpd in root.
sites simply do not load or just timeout after a period of time.
This has become extremely annoying for both me and my clients because it makes it seem like we have downtime.
Right now I am using the built-in cpanel backup feature to backup all the accounts on my server to an offsite FTP backup account I have on a weekly basis. The problem I am having is that everytime the backup runs, the load (thats what I'm guessing is the cause) is crashing apache/bind, causing sites to be unreachable until I can restart the services. What options do I have to resolve this issue? Currently I already have spri installed, and it does help out a bit, but its still not enough.
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?
Server Version: Apache/1.3.37 (Unix) mod_gzip/220.127.116.11a mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 PHP/4.4.7 FrontPage/18.104.22.16835.SR1.2 mod_ssl/2.8.28 OpenSSL/0.9.7a Server Built: May 31 2007 00:49:37
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 22.214.171.124 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 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:
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.
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.
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 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]