前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高性能服务器架构设计与调优

高性能服务器架构设计与调优

作者头像
用户5166556
发布2023-03-18 15:45:03
5110
发布2023-03-18 15:45:03
举报
文章被收录于专栏:让技术和时代并行

本文主要包括以下内容的介绍

  • 硬件设备
  • 性能设计
  • 故障排查
  • 性能调优

硬件设备

计算机架构

性能设计

软件性能设计原则(不要让硬件成为瓶颈):

  • 均衡使用CPU多核处理能力
  • 消除不必要的性能消耗
  • 高效合理地使用和控制内存
  • 最大化磁盘IOPS和吞吐,异步化处理
  • 小包跑满万兆网卡,中断平衡

CDN Cache系统模型设计

  • Net模块: 支持大并发,跑满万兆网卡
  • ACL模块: 高效匹配,减少CPU消耗
  • Store模块: 提高命中率,高效利用磁盘IOPS
  • 回源模块: L7-check,长连接保持

Net 模块设计

  • I/O模型 – epoll + O_NONBLOCK
  • TCP选项 – TCP_DEFER_ACCEPT / TCP_SYNCNT – TCP_CORK / TCP_NODELAY / TCP_QUICKACK
  • 收发包的方式 – RSS, SMP_AFFNITY – SO_REUSEPORT

完美hash处理HTTP header

• 完美hash( Perfect Hash Function )

  • Hash table: key = value
  • PHF将key集合没有冲突地映射到一组整数
  • 查找key操作转换为索引整数表

• PHF场景&作用

  • 适合在key集合确定或不经常更新的情况
  • 主要作用是提高hash查找的速度

Store模块设计

• DIRECT IO写裸盘、绕过FS、不使用page cache

• 顺序写/随机读,stripe 8MB/block 512B

• mem_buf在内存做写合并

• 省去open和close系统调用

故障排查

/proc/meminfo 项的关系

• MemTotal = LowTotal + HighTotal

• MemFree = LowFree + HighFree

• Slab = SReclaimable + SUnreclaimable

• Active = Active(anon) + Active(file)

• Inactive = Inactive(anon) + Inactive(file)

• Buffers + Cached = Active(file) + Inactive(file)

• AnonPages + Buffers + Cached = Active + Inactive

• SwapTotal = SwapFree + SwapCached

性能调优

参考

  • http://tutorials.jenkov.com/soVware-architecture/computer-architecture.html
  • http://exadat.co.uk/2015/01/29/cpus-memory-storage-and-database-engines-the-shape-of-things-to-come/
  • http://mechanical-sympathy.blogspot.com/2013/02/cpu-cache-flushing- fallacy.html
  • http://duartes.org/gustavo/blog/post/what-your-computer-does-while-you-wait/
  • https://soVware.intel.com/en-us/ar0cles/detec0ng-memory-bandwidth- satura0on-in-threaded-applica0ons
  • https://soVware.intel.com/en-us/ar0cles/op0mizing-applica0ons-for-numa
  • https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
  • http://www.mimuw.edu.pl/~lichota/09-10/Optymalizacja-open-source/Materialy/ 10%20-%20Dysk/gelato_ICE06apr_blktrace_brunelle_hp.pdf
  • http://codecapsule.com/2014/02/12/coding-for-ssds-part-2-architecture-of-an- ssd-and-benchmarking/
  • http://codecapsule.com/2014/02/12/coding-for-ssds-part-3-pages-blocks-and-the- flash-transla0on-layer/
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生技术爱好者社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 硬件设备
  • 性能设计
    • 完美hash处理HTTP header
      • Store模块设计
      • 故障排查
        • /proc/meminfo 项的关系
        • 性能调优
        • 参考
        相关产品与服务
        内容分发网络 CDN
        内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档