优化Apache服务器负载

我们有专门的服务器负载问题。

如果我正确理解cat / proc / cpuinfo输出,我们有16个处理器,4核@ 2.40GHz。

不幸的是,我没有获得免费的-m或vmstat。

但从顶部我得到,我们有24 GB。

以及关于进程的快照: 最佳

据我所知,内存是根本不使用的。 但是cpu被大量使用。 Apache消耗大部分CPU。

另一个有用的信息:

每1.0s:ps u -C httpd,mysqld,php Tue Mar 27 27:48:19 2012

 USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND
根7476 0.0 0.1 446808 37880?  SN Mar06 0:43 / opt / zone / sbin / httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
 mysql 36061 41.6 2.1 1113672 529876?  SNl Feb20 21503:48 / opt / zone / sbin / mysqld --basedir = / opt / zone --datadir = / srvdata / mysql --user = mysql --log-error = / srvdata / mysql / dn79.err  - pid-file = / srvdata / mysql / mysqld.pid --socket = / tmp / mysql.sock --port = 3306
根37257 0.0 0.0 424056 16840?  SN Mar22 1:03 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 52743 0.0 0.1 447100 30360?  SN 10:40 0:00 / opt / zone / sbin / httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
 http 52744 0.0 0.1 447100 30360?  SN 10:40 0:00 / opt / zone / sbin / httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
 http 52745 0.0 0.1 447100 30360?  SN 10:40 0:00 / opt / zone / sbin / httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
 http 52746 0.0 0.1 447100 30360?  SN 10:40 0:00 / opt / zone / sbin / httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
 http 52747 0.0 0.1 446956 30324?  SN 10:40 0:00 / opt / zone / sbin / httpd -D SSL -D SLOT_ID0 -f /etc/opt/zone/apache/ssl_httpd.conf
 http 52980 69.1 1.8 852468 458088?  RN 10:41 5:02 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 53483 47.0 0.8 615088 221040?  RN 10:43 2:05 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 53641 1.8 0.2 446580 54632?  SN 10:45 0:03 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54384 81.2 0.9 625828 229972?  RN 10:45 2:14 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54411 47.7 0.5 535992 142416?  RN 10:45 1:09 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54470 41.7 0.4 512528 120012?  RN 10:46 0:54 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54475 0.1 0.1 437016 41528?  SN 10:46 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54486 1.5 0.2 445636 53916?  SN 10:46 0:02 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54531 2.5 0.2 445424 53012?  SN 10:46 0:02 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54549 0.0 0.0 424188 9188?  SN 10:46 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54642 0.0 0.0 424188 9200?  SN 10:47 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54651 0.0 0.0 424188 9188?  SN 10:47 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54661 0.0 0.0 424188 9208?  SN 10:47 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54663 6.9 0.2 449936 58560?  SN 10:47 0:03 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54666 6.0 0.2 453356 61124?  SN 10:47 0:02 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54667 2.8 0.1 437608 42088?  SN 10:47 0:01 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54670 1.5 0.1 437540 42172?  SN 10:47 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54672 2.1 0.1 439076 43648?  SN 10:47 0:01 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54709 0.0 0.0 424188 9192?  SN 10:47 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54711 1.0 0.1 437284 41780?  SN 10:47 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54712 11.8 0.2 448172 54700?  SN 10:47 0:02 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54720 0.0 0.0 424188 9192?  SN 10:48 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54721 0.0 0.0 424188 9188?  SN 10:48 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54747 9.1 0.2 443568 51848?  SN 10:48 0:01 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54782 1.8 0.1 438708 37896?  RN 10:48 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54784 0.0 0.0 424188 9180?  SN 10:48 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54785 0.0 0.0 424188 9188?  SN 10:48 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54789 0.0 0.0 424188 9188?  SN 10:48 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54790 0.0 0.0 424188 9188?  SN 10:48 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54791 0.0 0.0 424188 9188?  SN 10:48 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0
 http 54792 0.0 0.0 424056 8352?  SN 10:48 0:00 / opt / zone / sbin / httpd -f /etc/opt/zone/apache/httpd.conf -D SLOT_ID0

Webalizer显示如下: Webalizer的

在以下情况下可以做些什么? 该应用程序是Magento。

你在吠叫错误的树。 看起来这是Apache耗用CPU; 在现实中有mod_php ,它必须为您的Magento页面。

而后者是你的答案:Magento肯定是一个沉重的野兽。 不要试图在这一点上优化Apache,专注于你的Magento安装程序。 如果你不成功,不要失望。 很多人在服务器故障中尝试过,没有多less成功(从我所见过的)。 一大块软件是一个沉重的软件。

除了Janne Pikkarainens的回答之外,我想提出以下build议:

  • 在magentocaching文件夹中使用tmpfs
  • 确保所有的magentocaching都已启用(html,xml等)
  • 在tmpfs上存储会话,除非你有多个后端
  • 使用apc作为fast_backend(和可选的memcached作为slow_backend)
  • 考虑使用清漆来caching部分或部分页面。

更多关于清漆和magento:

使用ESI和使用AJAX调用的另一个解决scheme的 商业光油插件 。

你有没有安装APC? 如果不是的话,那会有很大的不同。

之后,如果我没有记错的话,Magento喜欢在它前面有一个caching逆向代理。 在实现它之前,检查它提供的caching头。

find谁configuration服务器并拍摄他们?

HTTP调整会填满一本大书。 但看看你提供的信息…

大铁是浪费时间和金钱的networking服务器 – 你从多个低端机器获得更好的性能/可用性/价值。

为什么httpd以非常高的调度优先级运行? 为什么你的ssh会话比sshd的优先级低?

你是apache进程看起来好像他们有一个相当大的足迹 – 你剥离了你不使用的模块? 然而,看起来你最大的问题是Apache使用的CPU数量 – PHP喜欢CPU。 和magento特别是CPU饿了。

不过,考虑到硬件的数量,负载并不算太坏。 Yuo说你有16×4的处理器,但最高的屏幕截图只显示了6个使用大量CPU的进程。 你想减less负载或提高性能? 前端还是后端?

把一个反向代理放在Apache前面会有助于提高性能(假设你已经对内容进行了正确的caching和压缩) – 恕我直言,Varnish或nginx是非常有效的。 两者都提供ESI支持 – 但您需要对Magento进行一些更改才能支持此function。 除了用较less的努力来处理静态内容的服务之外,代理可以更快地释放httpd资源,并以较less的努力完成通过networking发送页面的过程。

你在哪里存储会话数据? 如果它是默认的处理程序,那么你可能想把它移到memcache上(couchbase的实现有很多技术上的优势)。

检查您的APC统计信息,以确保它有足够的内存来caching大部分代码。