1、系統級linux
一、一個進程下最多建立線程數量redis
首先根據棧大小設置;理論上,一個進程可用虛擬空間是2G,默認狀況下,線程的棧的大小是1MB,因此理論上最多隻能建立2048個線程。算法
二、GC內存溢出狀況:98%的GC在工做狀態,而且head大小不足2%時就會發生;數據庫
三、一個linux最大進程數:使用命令ulimit -u
查看軟限制,個人爲31437服務器
四、線程池大小配置(參考值):架構
若是是CPU密集型任務,就須要儘可能壓榨CPU,參考值能夠設爲 NCPU+1併發
若是是IO密集型任務,參考值能夠設置爲2*NCPU負載均衡
2、應用級memcached
1.單臺Memcache服務器key-value查詢可以達到TPS 5w以上;性能
2.redis最大鏈接數,能夠在redis.conf配置文件中修改,默認maxclients
10000;
Redis的性能很是出色,每秒能夠處理超過 10萬次讀寫操做
單個value的最大限制是1GB,不像 memcached只能保存1MB的數據
Redis的主要缺點是數據庫容量受到物理內存的限制,不能用做海量數據的高性能讀寫,所以Redis適合的場景主要侷限在較小數據量的高性能操做和運算上。
3、數據庫
通常以整型值爲主的表在 千萬級
如下,字符串爲主的表在 五百萬
如下是沒有問題的;
4、架構級
假設1000萬日活量(用戶數量);換算成秒級約等於116;
假設每一個用戶操做10次,平均QPS=1160;
考慮峯值是均值的倍數:QPS=11600;
考慮靜態資源、圖片資源、服務拆分等,流量放大效應,假設10,QPS=116000;
考慮高可用、異地多活,QPS*2=232000;
考慮將來半年增加:QPS*1.5=348000
1.DNS負載均衡的本質是DNS解析同一個域名能夠訪問不一樣的IP地址;實現簡單、成本低、粒度太粗、負載均衡算法少;
1.硬件負載均衡:F5和A10價格在20w~50w之間;併發大概能到200萬/秒到800萬/秒;
2.LVS軟件負載均衡:併發大概能到80萬/秒;LVS是linux內核的4層負載均衡;和協議無關
3.Ngnix軟件負載均衡:併發大概能到5萬/秒;Ngnix是7層負載均衡;支持HTTP和e-mail協議;