运维八一 运维八一
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)

运维八一

运维,运维!
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)
  • 操作系统

  • 域名解析

  • 公有云

  • CI&CD

  • 数据库

  • 负载均衡&反向代理

  • 存储系统

  • 容器&容器编排

  • 批量管理

  • 邮件系统

  • 监控系统

  • Web服务

    • HTTP介绍
    • nginx进阶
    • nginx优化
    • nginx容器化部署
    • Nginx反向代理问题
    • nginx日志切割脚本
    • nginx log各种过滤分析
    • nginx安全问题处理
    • Nginx location Rewrite参数
    • 查看apache、nginx、mysql、php编译参数
    • Tomcat优化
    • centos下tomcat启动很慢
    • tomcat升级
    • PHP优化
    • apache+tomcat负载均衡
    • apache部署
    • apache限制地址和用户访问
    • httpd虚拟主机
    • apache配置文件参数详解
    • apache优化
    • nginx&apache&lighttpd介绍
    • Lighttpd优化
      • 2. stat() 缓存
      • 4. 事件处理
      • 5.网络处理
    • web程序性能动态追踪简明手册
  • 虚拟化

  • 防火墙

  • 压测

  • 文件同步

  • 私有云

  • 日志系统

  • 代码仓库&版本管理

  • 安全审计

  • 远程拨号

  • 大数据

  • 统一认证

  • 消息队列

  • Apollo

  • 运维杂记
  • Web服务
lyndon
2022-06-10
目录

Lighttpd优化

# 1. 最大连接数

lighttpd基于线程,默认server.max-fds是1024,大流量网站推荐2048.

# 2. stat() 缓存

stat() 这样的系统调用,开销也是相当明显的.缓存能够节约时间和环境切换次数(context switches)

vim lighttpd.conf
server.stat-cache-engine = “fam”   还有simple(缓存1秒内的stat())、disabled(关闭)选项.
1
2

# 3.长连接

一般来说,一个系统能够打开的文件个数是有限制的(文件描述符限制),长连接占用文件描述符,对非并发的访问没有什么意义.(文件描述符的数量和许多原因有关,比如日志文件数量,并发数目等)。

这是lighttpd在keep-alive方面的默认值:

server.max-keep-alive-requests = 128
server.max-keep-alive-idle = 30
1
2

换言之,lighttpd最多可以同时承受30秒长的常连接,每个连接最多请求128个文件。但这个默认值确实不适合非并发这种多数情况。

lighttpd.conf 中减小 server.max-keep-alive-requests、server.max-keep-alive-idle 两个值,可以减缓这种现象。甚至可以关闭 lighttpd keep-alive。

server.max-keep-alive-requests = 0
1

# 4. 事件处理

对于Linux kernel 2.6来说,没有别的可说,在lighttpd.conf中加上这一句足矣

server.event-handler = “linux-sysepoll”
1

另外,

  • linux 2.4 使用 linux-rtsig
  • freebsd 使用 freebsd-kqueue
  • unix 使用 poll

# 5.网络处理

lighttpd 大量使用了 sendfile() 这样一个高效的系统调用,减少了从应用程序到网卡间的距离。(同时也减少了lighttpd对cpu的占用,这部分占用转嫁到内核身上了)

根据平台,可以设置不同的参数:

  • linux:server.network-backend = “linux-sendfile”
  • freebsd: =freebsd-sendfile
  • unix:=writev

如果有兴趣的话,也可以看看lighttpd在async io(aio)上的实现.

适合linux 2.6的lighttpd.conf参数总结:

server.stat-cache-engine = “fam”
server.network-backend = “linux-sendfile”
server.event-handler = “linux-sysepoll”
server.max-keep-alive-requests = 0
1
2
3
4
上次更新: 2022/06/12, 15:48:09
nginx&apache&lighttpd介绍
web程序性能动态追踪简明手册

← nginx&apache&lighttpd介绍 web程序性能动态追踪简明手册→

最近更新
01
ctr和crictl显示镜像不一致
03-13
02
alpine镜像集成常用数据库客户端
03-13
03
create-cluster
02-26
更多文章>
Theme by Vdoing | Copyright © 2015-2024 op81.com
苏ICP备18041258号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式