Dropboxのハイスループット低遅延実践

Optimizing web servers for high throughput and low latency
Evolution of Dropbox's Edge Network
nginxベースのedge層は、秒間数十GBの処理量、数万トランザクション。
これらの性能を実現するために、あらゆるハードウェアとソフトウェアに対してチューニングを行なった。
システムチューニングに関する本は、Unixシステムパフォーマンスチューニングを愛読していたが、dropboxこれまでの作業がすごかったな。
これこそプロフェッショナルだ。

HW: CPU、NIC、メモリ、ディスク
OS low level: ファームウェア、ドライバー、CPU、CPU類似性(CPU Affinity)、メモリ、NUMA(Non-Uniform Memory Access)、PCIe、NIC(割込み類似性Interrupt Affinity、Ringバッファーサイズ、割込みのまとめCoalescing、いらないネットワークモジュールのOffloads)
OS Networking stack: Fair Queueing and Pacing,TSO autosizing and TSQ,Congestion Control,ACK Processing and Loss Detection,Userspace prioritization and HOL, Sysctls
Application Midlevel: Tooling,Compiler Toolchain,System libraries, Zlib, Malloc, PCRE, TLS
Application Highlevel: Compression, TLS, Wrapping up

割込みの調整も可能のか、勉強になった。
お恥ずかしいが、ネットワーク周りの知識が浅いため、分からない用語が多くて理解苦しむ箇所が多数ある。。

Dropbox高吞吐量低延迟Web服务器优化之法