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 / 问题 / 128730
Accepted
Saif Bechan
Saif Bechan
Asked: 2010-04-02 23:58:04 +0800 CST2010-04-02 23:58:04 +0800 CST 2010-04-02 23:58:04 +0800 CST

分散您的服务器负载不仅会消耗更多资源

  • 772

我正在运行一个繁重的实时更新网站。每个用户所需的资源量相当高,我举个例子。

设置

每次访问
应用程序是 php/mysql 所以每次访问都会加载静态和动态内容。
资源:apache、php、mysql

每一秒 (不超过一秒就太长了)
网站需要实时更新,所以每一秒都会有一个 ajax 调用来更新网站。
资源:jQuery、apache、php、mysql

单个用户的平均消费 (花费一分钟并访问了 3 个页面)

  • Apache:+/- 63 个请求/响应,提供静态和动态内容(img、css、js、html)
  • php:+/- 63 个请求/响应
  • mysql:+/- 63 个请求/响应
  • jquery:+/- 60 个请求/响应

优化

我想优化这个过程,但我想也许最后还是一样。

在实施和测试之前(这将需要数周时间),我想从你们那里得到一些第二意见。

每次访问
我都想从 nginx 在前面开始,并作为代理来传递静态内容。
资源:

  • 动态:apache、php、mysql
  • 静态:nginx

这将大量分散 apache 的负载。

每秒
对于每秒加载的脚本,我想在前面设置带有 nginx 的 Node.js 服务器端 javascript。
我想将它设置为 jquery 每分钟发出一个请求,并且 node.js 每秒将数据流式传输到客户端。资源:jQuery、nginx、node.js、mysql

单个用户的平均消费 (花费一分钟并访问了 3 个页面)

  • Nginx:4 个请求/响应,主要服务于静态内容(img,css,js)
  • Apache:3 只请求页面
  • php: 3 只请求页面
  • node.js:1 个请求 / 60 个响应
  • jquery:1 个请求 / 60 个响应
  • mysql:63 个请求/响应

问题

正如您在优化中看到的,来自 Apache 和 PHP 的负载被提升并放在 nginx 和 node.js 上。这些以轻量级和良好的性能而闻名。

但我有疑问,因为内存中还有 2 个额外加载的程序,它们会消耗 cpu。

所以最好少一些程序来完成这项工作,或者更多。在我花费大量时间进行设置之前,我想知道这是否值得。

optimization
  • 2 2 个回答
  • 171 Views

2 个回答

  • Voted
  1. mpez0
    2010-04-03T03:49:46+08:002010-04-03T03:49:46+08:00

    请注意,同一可执行文件或共享库的多个副本共享其代码段。这意味着即使您执行 50 次 php,php 可执行文件也只会从磁盘读取一次,并且只会出现在内存中一次。每次执行都有自己的数据段,但无论您如何将数据分布在多个程序中,这都必须发生。

    因此,与许多优化问题一样,答案是“视情况而定”。找出您的具体情况的最简单方法是使用您正在考虑的中等到重负载下的配置运行几个基准测试,并比较总 CPU/内存/磁盘/网络负载。

    • 0
  2. Best Answer
    sublimegeek
    2010-04-03T05:14:30+08:002010-04-03T05:14:30+08:00

    这里有几个技巧可以帮助你。

    1. 使用 tools.pingdom.com 检查您的 URL,这将使您了解加载时间以及耗时最长的内容。
    2. 再看一下http://www.webpagetest.org/这将为您提供与 PingDom 大致相同的信息,但也可以让您了解可以进一步提高性能的地方。
    3. 将所有静态内容(图像、css、javascript 等)移动到 CDN。这将极大地帮助你。
    4. 如果您使用 jQuery、Scriptaculous 等 ajax 库。我建议使用http://code.google.com/apis/ajaxlibs/将这些库卸载到 Google,这也对我有很大帮助。
    5. 如果您还没有这样做,我建议您将 MySQL 与您的 webend 隔离,以便在不同的单元上获得性能。
    6. 最后,根据我的经验,对于 apache2,我使用 worker 模块,因此它更多地基于内存而不是处理器使用,所以这对我有所帮助。
    • 0

相关问题

  • 运行本地 MySQL 实例以进行快速 mysql_real_escape_string 调用

  • Windows 文件服务器性能调优

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • NFS 缓存导致间歇性滞后

  • 上线的第一天:如何不杀死您的网站

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