[web] 系统运维--单机

处理过程

  • 浏览器发送请求经过网络到达web服务器
  • web服务器处理请求并响应数据
  • 响应数据从web服务器发送到用户端
  • 用户浏览器接收数据,本地计算渲染

指标

  • 响应时间
  • 吞吐量

响应时间

  • 响应时间 = 发送时间 + 传输时间 + 处理时间
  • 发送时间 = 数据量比特数 / 带宽
  • 传输时间 = 传播距离 / 传播速度

缩短处理时间

  • 单机性能优化
  • 集群
  • 缓存
  • 瓶颈点优化
  • 多机房部署,就近访问

单机架构

  • 单机模式
    • 单台服务器web+DB
    • 数据库每日凌晨备份,保存到本地
  • 动静分离
    • 单台服务器web+DB 
    • Nginx+PHP实现动静分离
    • 数据库每日凌晨备份,保存到本地 
  • 数据库分离
    • 将web服务器和数据库单独部署
    • web服务器资源备份到数据库服务器
    • 数据库每日凌晨备份存放到web服务器
  • 组件分离
    • 静态服务器使用单独的服务器
    • 静态服务器使用独立一级域名防止Cookie提交
    • 静态服务器使用多个二级域名提高加载速度(下载网页数据,每遇到1个图片,浏览器会开启1个线程去下载,每个域名只能开6-8个线程)
    • 静态资源作为NFS,静态资源存放于NFS上
    • 数据库每日凌晨备份到NFS上

web性能优化

  • CPU
    • 进程数
    • CPU绑定
  • 内存
    • JVM设置
    • GC优化
    • 大页内存
    • 内存合并
  • 磁盘
    • Openfile
    • Sendfile
    • IO调度算法
  • 网络
    • Epool
    • Socket优化
    • 持久连接
  • 随机端口限制
    • 65536(2^16-1)
    • nc -l -4 -p 9999 -k
    • nc 192.168.174.111 9999

    • TCP状态转换:FIN_WAIT2,TIME_WAIT(主动关闭方,1个60s,消耗socket)

    • TIME_WAIT优化
      • reuse:都可以开,时间戳(timestamps)要开
      • recycle:不等60s,快速销毁TIME_WAIT,当客户端出于NAT网络时,不能打开(网关 / 负载均衡器,多个客户端通过一个IP访问外网)
    • 绑定多个ip地址  
  • 性能测试
    • ab -n 10000 -c -1000 http://www.baidu.com/
    • 以1000个并发,共10000个请求访问百度
    • 报错:too many open file(默认1024)
    • 1个http请求对应1个tcp,对应1个socket文件
    • ulimit -a

参考

运维知识体系

https://www.unixhot.com/page/ops

TCP的随机端口为什么不能像服务端口一样复用?

https://www.zhihu.com/question/342296674

猜你喜欢

转载自www.cnblogs.com/cxc1357/p/13202328.html
今日推荐