Server :: CentOS - Apache Using Lot Of Memory And CPU
Jul 30, 2011
I have a web server with the specs below and my apache server is being a hog using all my RAM 7gigs or 8gigs of ram. When there is a rush of traffic at once my whole server crashes and I have to reboot apache. The way my site is set up I have a tube script and I use the tube script to host videos on my forum I have 1000 videos on the tube script. I brought a bigger server and more ram because of the down time I been having . I am really trying to figure out why its crashing and using so much ram. I installed eAccelerator didn't seem to help with the apache server.
Intel Quad Core Xeon X3430 (4 x 2.40 GHz, 8MB Cache)
> 2-bay Supermicro Chassis and Motherboard
> 8 GB REG ECC DDR3 (twice your current setup)
> 250 GB Enterprise Grade SATA II
> 10 TB Bandwidth 1gig Uplink Port
> CentOS 64 Bit (Latest Stable)
TOP Command and free -m command screenshots are attached this is with only 160 people online at once
I just opened an (unmanaged) VPS account and and have been encountering nothing but problems with trying to get Apache up and running (its something I've done many times before).Basically the inital error was with LDAP not having enough space, so I disabled the related extensions and Apache still would not run. Looking at the log, it contains: (28)No space left on device: Unable to create scoreboard (anonymous shared memory failure)
I updated several packages on one of my servers on Dec 21st and have been seeing excessive swapfile usage since then. The problem process seems to be httpd which in our environment runs a subversion server as well as serving a number of php pages over https. At present I am having to bounce apache approximately every 5 days as it has used all 8GB swap in that time.
[Code]..
Of the updates listed as installed, the only one that looks likely to affect apache is glibc. Looking at the stats from sar -r I can see swap usage increasing by approx 3% (of 8GB) every hour.
I am trying to solve a problem where Apache stats aren't displaying correctly in Munin. I've ran through quite a bit of checks and tests regarding Munin setup, but I think my issue is related to Apache, but my skill set there is lacking.
first, system info: monitored server: CentOS 5.3 2.6.18-128.1.1.el5
I have a VPS running a web application served using Apache, that on average deals with 20-50 requests per second. It's usually above this point (50 requests per second) that the amount of memory that Apache uses is too high for the VPS and errors start occuring - web pages crash and VPS falls over for a minute or two before going back to normal levels.
I believe that MaxClients is the best way to reduce the amount of RAM that Apache uses and I am planning to reduce MaxClients from 256 (default value) to around 100. Each Apache process uses ~15MB and the server has 1900MB of ram in total - the server does nothing else other than run Apache and a few crons.
Current setting are:
Code: KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 3 # prefork MPM # StartServers: number of server processes to start
[Code].....
I tried reducing MaxClients before which lead to massive slowness, so I need some other options as well.
Does my suggestion of reducing MaxClients to ~100 seems sensible? What are my options if the server experiences slowness again - optimise the application? What's the best way to reduce memory usage - move images to another web server?
Top only show the memory usage for individual processes. Apache often runs hundreds of processes, each of which may use only a small amount of memory, however the total memory consumed by all apache processes can be fairly large.Is there a way to see the total memory usage for all apache processes?
I just ran into a weird problem with a CentOS 5.5 64-bit server running VirtualBox 3.2.8 (I would run Vmware Server 2.0.2 if not for the well known fact that Vmware doesn't care about its Server line anymore and it doesn't run on CentOS > 5.3 without major splits). I currently have two guests in that VirtualBox setup, a CentOS 5.5 64-bit and a Fedora 13 64-bit. The CentOS 5.5 guest shows less memory available than configured. If, for example, I give the virtual machine 512MB of memory the guest OS only recognizes 380MB. If I give it 768MB it only recognizes 637MB, and so on. I don't have that problem on the Fedora guest - 1024MB configured, 1024MB available.
I am installing Big Brother on a CentOS 5.2 running the default Apache 2.2.3. When I try to access any web page I get the following error: Forbidden You don't have permission to access /bb/ on this server. Apache/2.2.3 (CentOS) Server at fmsubbnix Port 80 So far I have:
1) Set the Directory options to FollowSymLinks 2) Verified all directory and file permissions are at 755 3) Set permissions temporarily to 777 and received same error so I am assuming the issue is in a config file somewhere 4) in hhtpd.conf verified <Files ~ "^.ht"> is correct 5) verified the "default" directory is correct (/var/www/html)
I have read and tried several ideas in posts listed on the web but to no avail and am at a loss as to what to look for next..
I'm looking for a way to put a MySQL database in a server's memory. The disks aren't fast enough to keep up with the usage and I don't feel like going for a splitted web&db server yet because of the costs.
Because this involves risks (unless there's a way to read from the memory and write to the memory AND disks?), so I'd prefer that the DB gets copied automatically every hour or so to the local disks.
I have a VPS that has 512MB of ram. I'm using it as a mail/web server. It keeps running out of memory. I know amavis/clamav are memory hogs, but I checked my ps aux and found 100's of instances of "apache-init-server" running. I killed them all, and they keep spawning back. What could be causing this. I've never seen this on a webserver before. OS: CentOS 5.5
I have xen kernel on a 5.4_64 though it seems to have always done this regardless of version. When I add a virt the control set shows the total machine memory minus what I just allocated to the new virt. This also shows up in the system monitor as total available ram. Problem arises in deleting and making new virts. The memory never reappears as usable after deleting virts. So now after testing several different setups I'm down to 1.4 gigs showing available on the dom0. What can I do to recover this lost memory? I've searched, read, looked every where I could think of and there just doesn't seem to be any information about deleting virts only adding them.
I am running a CentOS 5.6 Server with a website and Forum. The website has a contact form and users can email various people in the organization. I have setup sendmail to send any mails like this to my email address on a Windows machine.The problem is that there emails don't have a header which has the senders original email header. It comes from localhost on my sendmail. How can I get any mail generated from the apache site to ALSO send mail to root on the Centos Server? That way I should be able to see the header and report the spammer or block them.
We had servers that worked fine for years. After updated them to the latest version of CentOS (5.2 with latest updates), they keeps on hanging when being scanned by PCI Verdors (a Credit Card security standard). Basically, the scan causes httpd process to eat up all memory, and the server becomes unresponsive. Normal operations resume after the scan stops for 5, 10 minutes. Output from top looks like the following:
My mail server stopped working this weekend, when I got in today I restarted and all the emails came through. The panic_log shows: daemon: accept process fork failed: Cannot allocate memory several times over the course of a few minutes. Can anyone give me advice on troubleshooting this one?
I saw many people were talking about how to optimize apache and mysql here and also in other forums and blogs. I am currently hosting some sites and some IRCD processes (a tiny network)in a dedicated server with spec:
We got about 30,000 to 40,000 page views per day. I would like to ask people here about the opinion of apache and mysql optimization based on this server spec and current number of page view.
I have Centos 5.4 installed on my server. Everything works perfect, however sometimes apache does not work properly. When I write my domain to browser it tries to reach the site, however it can't get any result. (There is no "browser couldn't find" error). The browser just tries to get the content.
When I login to my server with ssh using my domain name, there is no problem. (Named works.) When I give the "service httpd restart" command the problem disappears.I looked at httpd log files but there wasn't any problem at that time.I use the API's of the Facebook and Twitter, so there are many Curl requests are made with PHP. Could that be the reason?
I have the following function on my xmlrpc server side.
The registration of this function is done as follows from the main function:
The above function makes the server segfault some where on the return path and client gets the response:
Here is what GDB shows when server segfaults....
However if I remove the line "xmlrpc_strfree (node_name);" then server does not segfault and client receives the response correctly. In the xmlrpc-c code it clearly says " Return the string in newly malloc'ed storage that Caller must free." in xmlrpc_data.c::xmlrpc_read_string() which is the function that gets called from xmlrpc_parse_value().
operating system: CentOS 5.5 git version:1.7.3.4 ldap server:OpenLdap Http server:Apache 2.2 the software above have been installed. How to config /etc/httpd/conf.d/gitweb.conf file to let git authed by ldap?
I updated my CentOS 5 box recently. But after then my Apache can no longer work; every time I try to start apache, it says started OK but then dies immediately and no error message at all. When I tried 'apachectl restartI', it says apache not running. It has been running fine before the update. I've looked at /var/log/httpd.log but there is not any message about my problem.
I've installed Apache Tomcat--6 and even jdk1.6.I've even created a tomcat.sh file to start the serverautomatically and it includes the Environment variables also ($CATALINA_HOME & JAVA_HOME) for automatic startup.Next when i'm using http://localhost:8080 to call the server it shows unable to connect.I've tried changing the port no of tomcat in server.xml file. but still its not working.
-->Then i tried using--telnet localhost comand--it shows Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host: Connection refused
Here I'[m stuck i don't understand how do i make the localhost work.
-->If I'm giving telnet localhost 25 the sendmail server is working.But the 80 and 8080 ports are not getting configured.
-->I've tried adding the port and its name in /etc/services file but still its not working.
-->When I'm giving the command--/sbin/chkconfig --list--->Its shows: xinetd based services:
... ...
telnet on.what should i do to get my tomcat server work properly.
We have Apache installed on CentOS 5.3 in our laboratory. Indeed the server is running fine for almost two years since it is actually the first CentOS 5 that was released just regularly updated. Now, most of our applications are custom made PHP applications and until now we somehow managed to avoid using PHP to fetch files that are on the internet itself. But now we are desperate because we need to allow PHP to fetch files through Apache but it seems as if Apache is not allowed to make a connection to the outer world. Additionally we use a proxy server to connect to the outer world so right at the beginning http_proxy is used to set that environmental variable. And for the root user it all works fine after that but it seems as if the apache user is not allowed to access the internet. Just to make a remark our web server can be accessed from the outer world so its a one way street for now.
I run mysqld on another server. I just switched to another dedicated server now, and i'm having trouble connecting to the mysqld server. If i run the php script from the bash console( php connect.php ) it works perfectly and connects to the mysqld server. However, if i run the script from apache ( http://localhost/connect.php ) it returns this: Can't connect to MySQL server on '(mysqld real ip)' (13) Mysql connection from another server(old httpd server) works perfectly, so it's not from the database server.
I am having a problem in that the Web Server (Apache) keeps stopping. I know this as watchdog is emailing me. Then about 15mins later it starts again. I cannot seem to find why. can anyone give me pointers as where to look to find the issue.