如何最大限度地减少 LAMP 上的内存使用量?虚拟专用服务器,最大 512 RAM,20 GB 驱动器空间,它应该可以运行 Wordpress 博客。不确定负载,但假设每天有 2-5k 名访问者。
答案1
答案2
每天最多有 5k 次点击,这意味着每 10 秒只有一个查询。负载不大。虽然 RAM 是制约因素,但考虑到您预期的流量非常低,您可能可以通过交换来增强它。
不过,减少一些冗余对实现目标大有裨益。我曾经做过一些低内存服务器的工作,但那是很久以前的事了。我会尽力记住的。下面是:
这里的诀窍是尽量减少常驻程序的使用量。每个程序不仅占用 RAM 来存储代码,而且还会消耗其他资源。
我首先会考虑从 /etc/inittab 中删除所有不需要的 tty,方法是用井号 (
#
) 将其重新标记出来。这样可以释放大约半兆的空间。两个控制台应该足够了(备用控制台是为了以防您的 shell 在另一个控制台上没有响应 - 确保在工作时同时登录两个控制台,这样在大量交换/加载等情况下,没有响应的系统不会将您锁定。)查找您所需的每项服务惯于使用,并配置它们以不是重启时启动(除非有其他要求)。对于面向公众的服务器来说,这无论如何都是一个好习惯,因为它还可以减少您的攻击面。
如果可能的话,尝试将服务迁移到 inetd/xinetd 或其他超级服务器,这反过来会释放内存,避免被上面提到的“驻留在内存中”模型使用。
假设驱动器有 20Gb,您不太可能通过数据库后端发布大量数据集。考虑为数据库提供足够的 RAM 来回答 2 个同时进行的查询,同时处理 3 个同时进行的互连。
如果你在启动时启动了 GDM/KDM/XDM/任何登录管理器,把它关掉!它所需的辅助资源最终只会阻塞您的交换文件并消耗宝贵的 RAM。通过 SSH 或任何可以使用浏览器访问的管理网页完成所有工作。
如果您只需要进行图形会话,请考虑将 VNC 设置为远程桌面服务。它只会在有活动会话时分配内存。不是将VNC服务暴露到外部,你会自找麻烦。
答案3
此链接包含的信息比所有收到的答案加起来还要多:)
http://wiki.vpslink.com/Low_memory_MySQL_/_Apache_configurations
答案4
要修剪 Apache 本身,请查看您正在加载的模块。这里还有一些其他不错的答案,用于一般内存和负载减少,因此也请考虑这些答案。很难确切知道关闭哪些内容比较好,但我会提出一些建议:
auth_digest_模块- 大多数浏览器不支持这种形式的身份验证,因此您不太可能使用它。
ldap_模块,authnz_ldap_模块- 如果您没有针对 ldap 或任何基于 ldap 的东西进行身份验证,则不需要这些。注意:如果您使用 PHP 的 ldap 函数,PHP 可能依赖于此。我在使用这些函数时从未尝试过关闭它们。
用户目录模块- 这可能已被关闭,并且无论如何都应该在任何生产网站上
拼写模块- 这个比较棘手。如果你关闭这个功能,你的 URL 会区分大小写。据说这个功能还可以“纠正拼写错误的 URL”,但我还没有看到这种情况真的发生过。如果你的客户群输入了 URL,我会让它保持打开状态,否则关闭它可能是安全的。
Apache 有大量关于其模块的文档。我建议你仔细阅读,在阅读完模块文档后再决定是否需要它但只有当你完全理解模块。其中一些模块提供了非常重要的核心功能,如果不可用则可能会破坏其他功能。