高性能與調優

性能度量算法

  • TPS和RTsql

好的性能從設計開始緩存

設計思路網絡

  • 分而治之:分層,分區,分模塊,能夠針對性作優化併發

  • 應用無狀態:水平擴展異步

  • 有效使用緩存:關注緩存讀寫比,命中率nosql

  • 異步通訊高併發

  • nosql:非結構化,非關係型數據,熱點數據工具

  • 多核併發設計:使用線程池,copyonwrite,concurrenthashmap,volatile,reentrantlock,readwritelock,condition,threadlocal性能

  • 考慮使用性能更好的加密算法

  • 考慮使用更好的序列化工具:protobuf,thrift

  • tpc選擇:http調用每次都須要創建連接,消息頭比較大,性能比不上thrift

  • 合併請求:循環調用某服務,考慮批量調用接口,能夠合併請求

  • 對象池化:避免每次都new一個

  • 合理分配集合大小,避免頻繁擴容及浪費

  • 限制IO讀寫大小,避免oom

  • 單例模式,減小GC

  • 內存泄漏:壓測程序,經過jmap,btrace分析GC

  • NIO因爲非阻塞,能夠極大提升吞吐量,Netty

  • 壓縮:減小網絡傳輸數據大小

  • 異步化:提升併發能力,將耗時操做異步化,不影響主流程

  • 線程數:控制合理線程數,線程過多致使系統CPU忙於線程切換,下降應用處理能力

  • 減小鎖競爭:不然線程過多,線程之間切換頻繁

相關文章
相關標籤/搜索