AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 110207
Accepted
mmattax
mmattax
Asked: 2010-02-07 05:27:38 +0800 CST2010-02-07 05:27:38 +0800 CST 2010-02-07 05:27:38 +0800 CST

Web 服务器上的交换空间用完,该怎么办?

  • 772

我有 2 个 LAMP Web 服务器,它们经常用完交换空间(请参阅随附的顶部屏幕截图)。

Apache的设置如下:

<IfModule prefork.c>
启动服务器 64
MinSpareServers 64
MaxSpareServers 128
服务器限制 256
最大客户数 256
MaxRequestsPerChild 4096
</IfModule>

PHP 的资源限制是:

max_execution_time = 30
最大输入时间 = 30
memory_limit = 80M

我是这样的服务器管理新手(我是开发人员);我可以调整什么以防止交换?

这是崩溃时其中一台服务器上的顶部屏幕截图:截屏

apache-2.2 httpd.conf httpd swap
  • 3 3 个回答
  • 10227 Views

3 个回答

  • Voted
  1. Best Answer
    Oli
    2010-02-07T05:38:21+08:002010-02-07T05:38:21+08:00

    你的交换空间用完了,因为你正在使用所有的 RAM,然后是一些。你有一个严重的问题需要立即纠正。

    您有两个选择:忽略原因并添加更多 RAM,或者针对实际占用内存的问题。

    如果它是您的服务器,添加 RAM 相当便宜且相当容易,但它是一个临时修复,如果它是 VPS 或租用服务器,它并不那么便宜。让我们尝试解决根本问题。这么多内存在吸什么?这里有一些提示:

    • 在 MySQL 中关闭 InnoDB(除非你需要它)
    • 使用配置棒 +5击败 Apache(和 MySQL)
    • 考虑一个较小的 httpd,如 cherokee、lighttpd 或 nginx(它们非常快并且几乎不吃 RAM)。主要缺点是您不能使用.htaccess文件,但您可以对其功能进行硬编码。
    • 你在使用 PHP 的 OP-code 缓存吗?尝试将其关闭或切换到另一个更有效的。

    就仅将交换项目恢复到真实 RAM 而言,您可以通过以下方式做到这一点:

    swapoff -a && swapon -a
    

    但是,当您的可用内存少于交换中的内容时,请不要尝试。它会使你的服务器崩溃。

    • 8
  2. CarpeNoctem
    2010-02-08T21:29:49+08:002010-02-08T21:29:49+08:00

    要快速更改,请执行以下操作:

    将“MaxRequestsPerChild 4096”改为:700 会有所帮助。由于 mod_php 等原因,apache 进程的生存时间越长,它将消耗的驻留内存就越多。此外,启用 keepalive 并为其设置积极的超时设置:

    KeepAlive On
    MaxKeepAliveRequests 200
    KeepAliveTimeout 5
    

    这将允许每个客户端页面请求使用一个 apache 进程来处理它的所有请求,否则它将使用多个 apache 进程。这将减少在任何给定时间运行的 apache 进程的数量。

    为了获得最佳内存和每秒请求数:

    远离 mod_php 并改用 fastcgi 或其他应用服务器。当 php 页面由 fastcgi 提供服务时,Apache 进程消耗的内存量可以忽略不计。更不用说 fastcgi 可以保持与您的 dbase 服务器的持久连接。

    • 2
  3. pQd
    2010-02-07T05:47:51+08:002010-02-07T05:47:51+08:00

    如何将静态内容的服务转移到更适合的服务器?

    • 1

相关问题

  • 在您分发的应用程序中使用 Apache HTTPD 运行 SSL 的最佳方式是什么?

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve