php - 针对大量服务于小文件的连接优化 Lighttpd

标签 php linux centos lighttpd

我有一个 Lighttpd(1.4.28) 网络服务器,在 Centos 5.3 和 PHP 5.3.6 上以 fastcgi 模式运行。

服务器本身是具有 1gb 内存的四核,用于记录视频平台的观看统计数据。

每个请求都包含一小部分正在发布的 xml,接收 php 脚本执行一个简单的 INSERT 或 UPDATE mysql 查询。 php 返回一个非常小的响应来确认请求。

这些请求执行得非常频繁,我需要系统能够以高请求率/秒处理尽可能多的并发连接。

我已禁用保持事件状态,因为只会发出单个请求,因此我不需要保持连接打开。

让我担心的一件事是,在服务器状态下,我看到很多连接处于“已读”状态。我认为这是由默认设置为 60 的 server.max-read-idle 控制的?可以将其更改为 5 之类的值吗,因为我看到大多数连接都长时间保持打开状态。

我还能做些什么来优化 lighttpd 以便能够处理大量小请求

这是我第一次设置 lighttpd,因为我认为在这种情况下它比 apache 更合适。

谢谢

伊尔凡

最佳答案

我相信问题不在网络服务器上,而是在您的 PHP 应用程序中,尤其是在 MySQL 部分。

我会将 lighty 替换为 apache + mod_php,将 mysql 替换为一些 NoSQL,例如 Redis,它将对数据库的 INSERT 请求进行排队。然后我会编写一个守护进程/crontab,将数据插入 MySQL。

我们以前有过这样的东西,但是我们没有使用 Redis,而是在一个目录中创建了 TXT 文件。

关于php - 针对大量服务于小文件的连接优化 Lighttpd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608307/

相关文章:

PHP JSON 字符串格式错误

linux - 查看所有世界可读的目录

linux - Bash 输入重定向为命令提供标准输入而不是参数/文件名?

Linux:如何使用 Apache 用户进行 SSH 连接?

php - 在 Doctrine2 上设置无限超时

php - 查询在 PHPmyadmin 中有效,但在 PHP 脚本中无效

c - 是否允许这种枚举构造和赋值?

linux - Bash 脚本 : list all directories EXCEPT specified

deployment - 如何在 CentOS 6 上安装 Hipchat 服务器?

Php/MYSQl 输出数组的每个值查询的第一个和最后一个结果?