在經過Tomcat、keepAlived參數調優之後,還是會發現相應時間變長,反應時間變長,TPS上不去的情況。
那麼我們改如何進行優化呢?
對於單臺web容器的性能上限我們要掌握
- 線程數量:4核cup8G內存單進程調度線程數800-1000以上後就會花費巨大的時間在cup調度上
- 等待隊列長度:隊列做緩衝池使用,但也不能無限長,消耗內存,出隊入隊也會消耗CPU
在測試的過程中我們會發現大量的資源是消耗在了MySQL上了,在SQL語句上的優化主要是對索引的優化,他們之間的效率如何呢:
- 主鍵查詢:千萬級別數據 = 1-10毫秒
- 唯一索引查詢:千萬級別數據 = 10-100毫秒
- 非唯一索引查詢:千萬級別數據 =100-1000毫秒
- 無索引:百萬條數據 = 1000毫毛+
- 非插入更新刪除的操作:同查詢
- 插入操作: 1W~10W tps
我們可以非常直觀的發現使用索引的不同對使用效率的影響有多大,所以對於數據庫的優化是必經之路。