溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

發(fā)布時(shí)間:2020-08-16 08:54:43 來源:ITPUB博客 閱讀:343 作者:代碼派就是我 欄目:數(shù)據(jù)庫(kù)

云上關(guān)鍵業(yè)務(wù)測(cè)試及性能調(diào)優(yōu)
1、 負(fù)載均衡選型及性能指標(biāo)
負(fù)載均衡推薦使用性能保障性實(shí)例,它于性能共享型實(shí)例相比較,共享型負(fù)載均衡的資源是共享的,所以不能保障實(shí)例的性能指標(biāo)。因?yàn)檐嚶?lián)網(wǎng)的行業(yè)特點(diǎn)就是高并發(fā)場(chǎng)景推薦使用性能保障性實(shí)例。性能保障型實(shí)例的三個(gè)關(guān)鍵指標(biāo)如下:
? 最大連接數(shù)-Max Connection
最大連接數(shù)定義了一個(gè)負(fù)載均衡實(shí)例能夠承載的最大連接數(shù)量。當(dāng)實(shí)例上的連接超過規(guī)格定義的最大連接數(shù)時(shí),新建連接請(qǐng)求將被丟棄。
? 每秒新建連接數(shù)-Connection Per Second (CPS)
每秒新建連接數(shù)定義了新建連接的速率。當(dāng)新建連接的速率超過規(guī)格定義的每秒新建連接數(shù)時(shí),新建連接請(qǐng)求將被丟棄。
? 每秒查詢數(shù)-Query Per Second (QPS)
每秒請(qǐng)求數(shù)是七層監(jiān)聽特有的概念,指的是每秒可以完成的HTTP/HTTPS的查詢(請(qǐng)求)的數(shù)量。當(dāng)請(qǐng)求速率超過規(guī)格所定義的每秒查詢數(shù)時(shí),新建連接請(qǐng)求將被丟棄。
阿里云負(fù)載均衡性能保障型實(shí)例開放了如下六種實(shí)例規(guī)格(各地域因資源情況不同,開放的規(guī)格可能略有差異,請(qǐng)以控制臺(tái)購(gòu)買頁(yè)為準(zhǔn))。
規(guī)格 最大連接數(shù) 每秒新建連接數(shù) (CPS) 每秒查詢數(shù)(QPS)
規(guī)格 1 簡(jiǎn)約型I (slb.s1.small) 5,000 3,000
規(guī)格 2 標(biāo)準(zhǔn)型I (slb.s2.small) 50,000 5,000
規(guī)格 3 標(biāo)準(zhǔn)型II (slb.s2.medium) 100,000 10,000
規(guī)格 4 高階型I (slb.s3.small) 200,000 20,000
規(guī)格 5 高階型II (slb.s3.medium) 500,000 50,000
規(guī)格 6 超強(qiáng)型I (slb.s3.large) 1,000,000 100,000
規(guī)格 最大連接數(shù) 每秒新建連接數(shù) (CPS) 每秒查詢數(shù)(QPS)
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)cdn.com/908cb96098bd26e223e490bb2a18bb4dad175335.png">

注意:以上規(guī)格是在控制臺(tái)里可以購(gòu)買的,可以發(fā)現(xiàn)最大規(guī)格也就只有100w連接。但如果千萬級(jí)的車聯(lián)網(wǎng)企業(yè),它的負(fù)載均衡最大連接能力要求達(dá)到1000w的時(shí)候怎么辦?在控制臺(tái)買不到怎么辦?別著急,阿里云雖然只在官網(wǎng)控制臺(tái)里開放了6種規(guī)格實(shí)例給普通中小企業(yè)用戶。但是針對(duì)有更大規(guī)格要求的企業(yè)用戶可以通過聯(lián)系阿里云客戶經(jīng)理來定制更高規(guī)格的負(fù)載均衡實(shí)例,最高可提供億級(jí)別最大連接數(shù)能力。

因?yàn)樾阅鼙U闲詫?shí)例在最大連接數(shù),每秒連接數(shù),每秒查詢數(shù)等指標(biāo)官方都有明確的SLA,所以我們這里就不去測(cè)試了,平時(shí)的使用過程中可以通過云監(jiān)控實(shí)時(shí)觀察各項(xiàng)性能指標(biāo)。
并發(fā)連接數(shù)監(jiān)控
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

新建連接監(jiān)控
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

QPS監(jiān)控
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

2、ECS選型及性能測(cè)試
云服務(wù)器Elastic Compute Service(ECS)是阿里云提供的一種基礎(chǔ)云計(jì)算服務(wù)。使用云服務(wù)器ECS就像使用水、電、煤氣等資源一樣便捷、高效。無需提前采購(gòu)硬件設(shè)備,而是根據(jù)業(yè)務(wù)需要,隨時(shí)創(chuàng)建所需數(shù)量的云服務(wù)器ECS實(shí)例。在使用過程中,隨著業(yè)務(wù)的擴(kuò)展,可以隨時(shí)擴(kuò)容磁盤、增加帶寬。如果不再需要云服務(wù)器,也能隨時(shí)釋放資源,節(jié)省費(fèi)用。
ECS選型,可以根據(jù)不同應(yīng)用場(chǎng)景來選擇相應(yīng)的ECS實(shí)例規(guī)格,如果不知怎么選擇,可以參考官網(wǎng)的建議:
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

阿里云ECS針對(duì)不同的應(yīng)用場(chǎng)景推出了不同實(shí)例規(guī)格,極大的豐富了用戶多樣化需求。
針對(duì)物聯(lián)網(wǎng)行業(yè)特性,高并發(fā),高吞吐等特點(diǎn),建議web前端選擇計(jì)算型(C5)機(jī)型,實(shí)例規(guī)格推薦4核8g,推薦系統(tǒng)盤SSD云盤;后端應(yīng)用推薦使用通用型(g5)機(jī)型,實(shí)例規(guī)格推薦4核16g,推薦系統(tǒng)盤SSD云盤。
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

接下來我們測(cè)試一下其中一款實(shí)例的性能,例如通用型g5的4核16g SSD系統(tǒng)盤,操作系統(tǒng)為centos6.8
測(cè)試分為兩部分,一是針對(duì)CPU 的跑分測(cè)試,另一個(gè)是針對(duì)SSD系統(tǒng)盤的IOPS測(cè)試。
1) 性能跑分測(cè)試

  1. 登錄阿里云控制臺(tái),購(gòu)買通用型g5,4核16gECS實(shí)例
    車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

  1. 登錄服務(wù)器,驗(yàn)證下機(jī)器配置4核16G
    車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

  1. 安裝測(cè)試工具Unixbench,安裝過程如下


  2. http://soft.laozuo.org/scripts/UnixBench6.1.3.tgz

tar xf UnixBench6.1.3.tgz  
cd UnixBench  
make  
./Run 安裝過程出錯(cuò):  
Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Run line 6.
BEGIN failed--compilation aborted at ./Run line 6.
解決辦法:yum install perl-Time-HiRes -y
如果出現(xiàn)bash: make: command not found問題
解決辦法:yum -y install gcc automake autoconf libtool make

  1. 測(cè)試截圖
    車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

總結(jié):最終跑分測(cè)試為3911.9,通常4核8G臺(tái)式機(jī)這個(gè)分?jǐn)?shù)為2100. 由此可見阿里云這款實(shí)例性能還是挺強(qiáng)的幾乎是臺(tái)式機(jī)的2倍。

2) SSD云盤性能測(cè)試


官網(wǎng)公布的SSD云盤SLA為:
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

針對(duì)Linux操作系統(tǒng)可以使用DD、fio或sysbench等工具測(cè)試塊存儲(chǔ)性能。
下面用fio工具測(cè)試下通用型g5的4核16g系統(tǒng)盤為SSD云盤實(shí)例的IPOS能力:
警告:
測(cè)試裸盤可以獲得真實(shí)的塊存儲(chǔ)盤性能,但直接測(cè)試裸盤會(huì)破壞文件系統(tǒng)結(jié)構(gòu),請(qǐng)?jiān)跍y(cè)試前提前做好數(shù)據(jù)備份。建議只在新購(gòu)無數(shù)據(jù)的ECS實(shí)例上使用工具測(cè)試塊存儲(chǔ)性能,避免造成數(shù)據(jù)丟失。

  1. 登錄服務(wù)器并安裝測(cè)試命令fio

  2. 測(cè)試隨機(jī)寫IOPS,運(yùn)行以下命令:

  3. fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_Testing

  1. 測(cè)試隨機(jī)讀IOPS,運(yùn)行以下命令:

  2. fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_Testing

  3. 測(cè)試順序?qū)懲掏铝浚\(yùn)行以下命令:

  4. fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_PPS_Testing

  5. 測(cè)試順序?qū)懲掏铝?,運(yùn)行以下命令:

  6. fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_PPS_Testing
    下表以測(cè)試隨機(jī)寫IOPS的命令為例,說明命令中各種參數(shù)的含義。

車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

以下以一塊SSD云盤隨機(jī)讀IOPS性能的測(cè)試結(jié)果為例,說明如何理解fio測(cè)試結(jié)果。
Rand_Read_Testing: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=128
fio-2.2.8
Starting 1 process
Jobs: 1 (f=1): [r(1)] [21.4% done] [80000KB/0KB/0KB /s] [20.0K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [28.6% done] [80000KB/0KB/0KB /s] [20.0K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [35.7% done] [80000KB/0KB/0KB /s] [20.0K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [42.9% done] [80004KB/0KB/0KB /s] [20.1K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [50.0% done] [80004KB/0KB/0KB /s] [20.1K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [57.1% done] [80000KB/0KB/0KB /s] [20.0K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [64.3% done] [80144KB/0KB/0KB /s] [20.4K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [71.4% done] [80388KB/0KB/0KB /s] [20.1K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [78.6% done] [80232KB/0KB/0KB /s] [20.6K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [85.7% done] [80260KB/0KB/0KB /s] [20.7K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [92.9% done] [80016KB/0KB/0KB /s] [20.4K/0/0 iops] [eta 00Jobs: 1 (f=1): [r(1)] [100.0% done] [80576KB/0KB/0KB /s] [20.2K/0/0 iops] [eta 00m:00s]
Rand_Read_Testing: (groupid=0, jobs=1): err= 0: pid=9845: Tue Sep 26 20:21:01 2017
read : io=1024.0MB, bw=80505KB/s, iops=20126, runt= 13025msec
slat (usec): min=1, max=674, avg= 4.09, stdev= 6.11
clat (usec): min=172, max=82992, avg=6353.90, stdev=19137.18
lat (usec): min=175, max=82994, avg=6358.28, stdev=19137.16
clat percentiles (usec):
| 1.00th=[ 454], 5.00th=[ 668], 10.00th=[ 812], 20.00th=[ 996],
| 30.00th=[ 1128], 40.00th=[ 1256], 50.00th=[ 1368], 60.00th=[ 1480],
| 70.00th=[ 1624], 80.00th=[ 1816], 90.00th=[ 2192], 95.00th=[79360],
| 99.00th=[81408], 99.50th=[81408], 99.90th=[82432], 99.95th=[82432],
| 99.99th=[82432]
bw (KB /s): min=79530, max=81840, per=99.45%, avg=80064.69, stdev=463.90
lat (usec) : 250=0.04%, 500=1.49%, 750=6.08%, 1000=12.81%
lat (msec) : 2=65.86%, 4=6.84%, 10=0.49%, 20=0.04%, 100=6.35%
cpu : usr=3.19%, sys=10.95%, ctx=23746, majf=0, minf=160
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%
issued : total=r=262144/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=128
Run status group 0 (all jobs):
READ: io=1024.0MB, aggrb=80504KB/s, minb=80504KB/s, maxb=80504KB/s, mint=13025msec, maxt=13025msec
Disk stats (read/write):
vdb: ios=258422/0, merge=0/0, ticks=1625844/0, in_queue=1625990, util=99.30%
輸出結(jié)果中,主要關(guān)注以下這行內(nèi)容:
read : io=1024.0MB, bw=80505KB/s, iops=20126, runt= 13025msec

表示fio做了1 GiB I/O,速率約為80 MiB/s,總IOPS為20126,運(yùn)行時(shí)間為13秒。由IOPS值可知,該SSD云盤的IOPS性能為 20126,而根據(jù)公式計(jì)算的數(shù)值為:

min{1200+30  容量, 20000} = min{1200+30  800, 20000} = 20000
測(cè)試結(jié)果與公式計(jì)算結(jié)果相近。
3、數(shù)據(jù)庫(kù)RDS測(cè)試及調(diào)優(yōu)


1) RDS MySQL 版測(cè)試
今天我們基于阿里云RDS MySQL5.6版本進(jìn)行一個(gè)性能測(cè)試。
a) 測(cè)試環(huán)境
? 所有測(cè)試均在華東2(上海)地域的可用區(qū)B完成。
? 測(cè)試用的ECS為系列II實(shí)例。
? 實(shí)例配置為8核16GB。
? 網(wǎng)絡(luò)類型為經(jīng)典網(wǎng)絡(luò)。
? 壓測(cè)用的鏡像為CentOS 7.0 64位。
b) 測(cè)試工具
SysBench是一個(gè)跨平臺(tái)且支持多線程的模塊化基準(zhǔn)測(cè)試工具,用于評(píng)估系統(tǒng)在運(yùn)行高負(fù)載的數(shù)據(jù)庫(kù)時(shí)相關(guān)核心參數(shù)的性能表現(xiàn)。它目的是為了繞過復(fù)雜的數(shù)據(jù)庫(kù)基準(zhǔn)設(shè)置,甚至在沒有安裝數(shù)據(jù)庫(kù)的前提下,快速了解數(shù)據(jù)庫(kù)系統(tǒng)的性能。

安裝方法
本文用的SysBench版本為0.5
執(zhí)行如下命令安裝SysBench

yum install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel

unzip ysbench-0.5.zip

cd sysbench-0.5

./autogen.sh

./configure --prefix=/usr --mandir=/usr/share/man

make

make install

c) 測(cè)試
準(zhǔn)備數(shù)據(jù)

sysbench --num-threads=32 --max-time=3600 --max-requests=999999999 --test= oltp.lua --oltp-table-size=10000000 --oltp-tables-count=64 --db-driver=mysql --mysql-table-engine=innodb --mysql-host= XXXX --mysql-port=3306 --mysql-user= XXXX --mysql-password= XXXX prepare

壓測(cè)性能
sysbench --num-threads=32 --max-time=3600 --max-requests=999999999 --test= oltp.lua --oltp-table-size=10000000 --oltp-tables-count=64 --db-driver=mysql --mysql-table-engine=innodb --mysql-host= XXXX --mysql-port=3306 --mysql-user= XXXX --mysql-password= XXXX run
清理環(huán)境
sysbench --num-threads=32 --max-time=3600 --max-requests=999999999 --test= oltp.lua --oltp-table-size=10000000 --oltp-tables-count=64 --db-driver=mysql --mysql-table-engine=innodb --mysql-host= XXXX --mysql-port=3306 --mysql-user= XXXX --mysql-password= XXXX cleanup
d) 測(cè)試模型
庫(kù)表結(jié)構(gòu)
CREATE TABLE  sbtest  (
id  int(10) unsigned NOT NULL AUTO_INCREMENT,
k  int(10) unsigned NOT NULL DEFAULT '0',
c  char(120) NOT NULL DEFAULT '',
pad  char(60) NOT NULL DEFAULT '',
PRIMARY KEY ( id ),
KEY  k_1  ( k )
) ENGINE=InnoDB DEFAULT CHARSET=utf8

數(shù)據(jù)格式
id: 1
k: 3718516
c:08566691963-88624912351-16662227201-46648573979-64646226163-77505759394-75470094713-41097360717-15161106334-50535565977
pad: 63188288836-92351140030-06390587585-66802097351-49282961843

SQL樣式
查詢:
SELECT c FROM sbtest64 WHERE id=4957216
SELECT c FROM sbtest43 WHERE id BETWEEN 4573346 AND 4573346+99
SELECT SUM(K) FROM sbtest57 WHERE id BETWEEN 5034894 AND 5034894+99
SELECT DISTINCT c FROM sbtest50 WHERE id BETWEEN 4959831 AND 4959831+99 ORDER BY c

寫入:
INSERT INTO sbtest3 (id, k, c, pad) VALUES (4974042, 4963580, '33958272865-80411528812-36334179010-84793024318-25708692091-43736213170-37853797624-40480626242-32131452190-24509204411','07716658989-39745043214-17284860193-80004426880-14154945098')

更新:
UPDATE sbtest11 SET k=k+1 WHERE id=5013989
UPDATE sbtest14 SET c='10695174948-02130015518-68664370682-70336600207-55943744221-72419172189-36252607855-75106351226-86920614936-86254476316' WHERE id=5299388

e) 測(cè)試指標(biāo)
TPS
Transactions Per Second,即數(shù)據(jù)庫(kù)每秒執(zhí)行的事務(wù)數(shù),以commit成功次數(shù)為準(zhǔn)。

QPS
Queries Per Second,即數(shù)據(jù)庫(kù)每秒執(zhí)行的SQL數(shù)(含insert、select、update、delete等)。

f) 測(cè)試結(jié)果
? 通用型


? 獨(dú)享型
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

2) MySQL實(shí)例參數(shù)調(diào)優(yōu)建議

對(duì)于云數(shù)據(jù)庫(kù)MySQL版的實(shí)例,可以通過控制臺(tái)上修改一些參數(shù)。對(duì)于某些重要參數(shù)而言,不恰當(dāng)?shù)膮?shù)值會(huì)導(dǎo)致實(shí)例性能問題或應(yīng)用報(bào)錯(cuò),所以本文將介紹一些重要參數(shù)的最優(yōu)值建議以減少在設(shè)置參數(shù)時(shí)的疑慮。其中紅色標(biāo)注的是針對(duì)車聯(lián)網(wǎng)場(chǎng)景的調(diào)優(yōu)建議,車聯(lián)網(wǎng)場(chǎng)景的特點(diǎn)是高并發(fā),數(shù)據(jù)量大,讀多寫多。
? back_log(高并發(fā)場(chǎng)景需要提高此參數(shù)值)
默認(rèn)值:3000

修改完后是否需要重啟:是

作用:MySQL每處理一個(gè)連接請(qǐng)求時(shí)都會(huì)創(chuàng)建一個(gè)新線程與之對(duì)應(yīng)。在主線程創(chuàng)建新線程期間,如果前端應(yīng)用有大量的短連接請(qǐng)求到達(dá)數(shù)據(jù)庫(kù),MySQL會(huì)限制這些新的連接進(jìn)入請(qǐng)求隊(duì)列,由參數(shù)back_log控制。如果等待的連接數(shù)量超過back_log的值,則將不會(huì)接受新的連接請(qǐng)求,所以如果需要MySQL能夠處理大量的短連接,需要提高此參數(shù)的大小。

現(xiàn)象:如果參數(shù)過小,應(yīng)用可能出現(xiàn)如下錯(cuò)誤。

SQLSTATE[HY000] [2002] Connection timed out;
修改建議:提高此參數(shù)值的大小。

? innodb_autoinc_lock_mode(有助于避免死鎖,提升性能)
默認(rèn)值:1

修改完后是否需要重啟:是

作用:在MySQL 5.1.22后,InnoDB為了解決自增主鍵鎖表的問題,引入了參數(shù)innodb_autoinc_lock_mode,用于控制自增主鍵的鎖機(jī)制。該參數(shù)可以設(shè)置的值為0、1、2,RDS默認(rèn)的參數(shù)值為1,表示InnoDB使用輕量級(jí)別的mutex鎖來獲取自增鎖,替代最原始的表級(jí)鎖。但是在load data(包括INSERT … SELECT和REPLACE … SELECT)場(chǎng)景下若使用自增表鎖,則可能導(dǎo)致應(yīng)用在并發(fā)導(dǎo)入數(shù)據(jù)時(shí)出現(xiàn)死鎖。

現(xiàn)象:在load data(包括INSERT … SELECT和REPLACE … SELECT)場(chǎng)景下若使用自增表鎖,在并發(fā)導(dǎo)入數(shù)據(jù)時(shí)出現(xiàn)如下死鎖。

RECORD LOCKS space id xx page no xx n bits xx index PRIMARY of table xx.xx trx id xxx lock_mode X insert intention waiting. TABLE LOCK table xxx.xxx trx id xxxx lock mode AUTO-INC waiting;
修改建議:建議將該參數(shù)值改為2,表示所有情況插入都使用輕量級(jí)別的mutex鎖(只針對(duì)row模式),這樣就可以避免auto_inc的死鎖,同時(shí)在INSERT … SELECT的場(chǎng)景下性能會(huì)有很大提升。

說明:當(dāng)該參數(shù)值為2時(shí),binlog的格式需要被設(shè)置為row。

? query_cache_size(車輛網(wǎng)的特點(diǎn)是讀多寫多的場(chǎng)景,此參數(shù)建議關(guān)閉)
默認(rèn)值:3145728

修改完后是否需要重啟:否

作用:該參數(shù)用于控制MySQL query cache的內(nèi)存大小。如果MySQL開啟query cache,在執(zhí)行每一個(gè)query的時(shí)候會(huì)先鎖住query cache,然后判斷是否存在于query cache中,如果存在則直接返回結(jié)果,如果不存在,則再進(jìn)行引擎查詢等操作。同時(shí),insert、update和delete這樣的操作都會(huì)將query cahce失效掉,這種失效還包括結(jié)構(gòu)或者索引的任何變化。但是cache失效的維護(hù)代價(jià)較高,會(huì)給MySQL帶來較大的壓力。所以,當(dāng)數(shù)據(jù)庫(kù)不會(huì)頻繁更新時(shí),query cache是很有用的,但如果寫入操作非常頻繁并集中在某幾張表上,那么query cache lock的鎖機(jī)制就會(huì)造成很頻繁的鎖沖突,對(duì)于這一張表的寫和讀會(huì)互相等待query cache lock解鎖,從而導(dǎo)致select的查詢效率下降。

現(xiàn)象:數(shù)據(jù)庫(kù)中有大量的連接狀態(tài)為checking query cache for query、Waiting for query cache lock、storing result in query cache。

修改建議:RDS默認(rèn)是關(guān)閉query cache功能的,如果實(shí)例打開了query cache,當(dāng)出現(xiàn)上述情況后可以關(guān)閉query cache。

? net_write_timeout (可避免汽車數(shù)據(jù)因超時(shí)而導(dǎo)致數(shù)據(jù)寫入失敗)
默認(rèn)值:60

修改完后是否需要重啟:否

作用:等待將一個(gè)block發(fā)送給客戶端的超時(shí)時(shí)間。

現(xiàn)象:若參數(shù)設(shè)置過小,可能會(huì)導(dǎo)致客戶端出現(xiàn)錯(cuò)誤the last packet successfully received from the server was milliseconds ago或the last packet sent successfully to the server was milliseconds ago。

修改建議:該參數(shù)在RDS中默認(rèn)設(shè)置為60秒,一般在網(wǎng)絡(luò)條件比較差時(shí)或者客戶端處理每個(gè)block耗時(shí)較長(zhǎng)時(shí),由于net_write_timeout設(shè)置過小導(dǎo)致的連接中斷很容易發(fā)生,建議增加該參數(shù)的大小。

? tmp_table_size(大內(nèi)存建議開啟,提升查詢性能)
默認(rèn)值:2097152

修改完后是否需要重啟:否

作用:該參數(shù)用于決定內(nèi)部?jī)?nèi)存臨時(shí)表的最大值,每個(gè)線程都要分配,實(shí)際起限制作用的是tmp_table_size和max_heap_table_size的最小值。如果內(nèi)存臨時(shí)表超出了限制,MySQL就會(huì)自動(dòng)地把它轉(zhuǎn)化為基于磁盤的MyISAM表。優(yōu)化查詢語句的時(shí)候,要避免使用臨時(shí)表,如果實(shí)在避免不了的話,要保證這些臨時(shí)表是存在內(nèi)存中的。

現(xiàn)象:如果復(fù)雜的SQL語句中包含了group by、distinct等不能通過索引進(jìn)行優(yōu)化而使用了臨時(shí)表,則會(huì)導(dǎo)致SQL執(zhí)行時(shí)間加長(zhǎng)。

修改建議:如果應(yīng)用中有很多group by、distinct等語句,同時(shí)數(shù)據(jù)庫(kù)有足夠的內(nèi)存,可以增大tmp_table_size(max_heap_table_size)的值,以此來提升查詢性能。

? loose_rds_max_tmp_disk_space
默認(rèn)值:10737418240

修改完后是否需要重啟:否

作用:用于控制MySQL能夠使用的臨時(shí)文件的大小。

現(xiàn)象:如果臨時(shí)文件超出loose_rds_max_tmp_disk_space的取值,則會(huì)導(dǎo)致應(yīng)用出現(xiàn)如下錯(cuò)誤。

The table ‘/home/mysql/dataxxx/tmp/#sql_2db3_1’ is full
修改建議:首先,需要分析一下導(dǎo)致臨時(shí)文件增加的SQL語句是否能夠通過索引或者其它方式進(jìn)行優(yōu)化。其次,如果確定實(shí)例的空間足夠,則可以提升此參數(shù)的值,以保證SQL能夠正常執(zhí)行。

? loose_tokudb_buffer_pool_ratio
默認(rèn)值:0

修改完后是否需要重啟:是

作用:用于控制TokuDB引擎能夠使用的buffer內(nèi)存大小,比如innodb_buffer_pool_size設(shè)置為1000MB,tokudb_buffer_pool_ratio設(shè)置為50(代表50%),那么TokuDB引擎的表能夠使用的buffer內(nèi)存大小則為500MB。

修改建議:如果RDS中使用TokuDB引擎,建議調(diào)大該參數(shù),以此來提升TokuDB引擎表的訪問性能。

? loose_max_statement_time
默認(rèn)值:0

修改完后是否需要重啟:否

作用:用于控制查詢?cè)贛ySQL的最長(zhǎng)執(zhí)行時(shí)間。如果超過該參數(shù)設(shè)置的時(shí)間,查詢將會(huì)自動(dòng)失敗,默認(rèn)是不限制。

現(xiàn)象:若查詢時(shí)間超過了該參數(shù)的值,則會(huì)出現(xiàn)如下錯(cuò)誤。

ERROR 3006 (HY000): Query execution was interrupted, max_statement_time exceeded
修改建議:如果想要控制數(shù)據(jù)庫(kù)中SQL的執(zhí)行時(shí)間,則可以開啟該參數(shù),單位是毫秒。

? loose_rds_threads_running_high_watermark(高并發(fā)場(chǎng)景下有保護(hù)作用)
默認(rèn)值:50000

修改完后是否需要重啟:否

作用:用于控制MySQL并發(fā)的查詢數(shù)目,比如將rds_threads_running_high_watermark的值設(shè)置為100,則允許MySQL同時(shí)進(jìn)行的并發(fā)查詢?yōu)?00個(gè),超過限制數(shù)量的查詢將會(huì)被拒絕掉。該參數(shù)與rds_threads_running_ctl_mode配合使用(默認(rèn)值為select)。

修改建議:該參數(shù)常常在秒殺或者大并發(fā)的場(chǎng)景下使用,對(duì)數(shù)據(jù)庫(kù)具有較好的保護(hù)作用。

參數(shù)設(shè)置步驟
進(jìn)入RDS控制臺(tái)找到RDS實(shí)例—》點(diǎn)擊管理---》點(diǎn)擊參數(shù)設(shè)置---》設(shè)置完成參數(shù)---點(diǎn)擊提交參數(shù)—》點(diǎn)擊確定
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

4、Elasticsearch性能測(cè)試及調(diào)優(yōu)
Elasticsearch是一個(gè)基于Lucene的搜索和數(shù)據(jù)分析工具,它提供了一個(gè)分布式服務(wù)。Elasticsearch是遵從Apache開源條款的一款開源產(chǎn)品,是當(dāng)前主流的企業(yè)級(jí)搜索引擎。
阿里云Elasticsearch提供Elasticsearch 5.5.3版本及商業(yè)插件X-pack服務(wù),致力于數(shù)據(jù)分析、數(shù)據(jù)搜索等場(chǎng)景服務(wù)。在開源Elasticsearch基礎(chǔ)上提供企業(yè)級(jí)權(quán)限管控、安全監(jiān)控告警、自動(dòng)報(bào)表生成等功能. 今天我們對(duì)阿里云的Elasticsearch的讀寫性能分別做個(gè)測(cè)試。
寫性能
測(cè)試環(huán)境
本次測(cè)試的Elasticsearch版本為5.5.3,3個(gè)節(jié)點(diǎn),壓測(cè)了三種規(guī)格的集群分別為2核4G 、4核16G、16核64G磁盤規(guī)格均為1T SSD云盤。
采?用 esrally 壓測(cè)
rest api
壓測(cè)數(shù)據(jù)集有以下兩種
? esrally官?方數(shù)據(jù) geonames 3.3 GB,單?文檔?大?小 311B
? 模擬某業(yè)務(wù)?日志數(shù)據(jù) log 80GB 單?文檔?大?小 1432B

測(cè)試結(jié)果
? 分?片數(shù)均為6
? 以下cpu 、load、ioutil 均為近似值
? log 指標(biāo)已針對(duì)批量量?日志寫?入場(chǎng)景做了了異步translog/Merge策略略調(diào)整等優(yōu)化
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

寫性能指標(biāo)對(duì)比
機(jī)器對(duì)寫性能的影響
? 分?片數(shù)均為6
? 副本數(shù)均為0
? 磁盤容量量均為1T SSD云盤
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

副本數(shù)對(duì)性能指標(biāo)的影響
? 分?片數(shù)均為6
? 數(shù)據(jù)樣本均為log
? 磁盤容量量均為1T SSD云盤


查詢性能
測(cè)試環(huán)境
? 本次測(cè)試的Elasticsearch版本為5.5.3,3個(gè)節(jié)點(diǎn),壓測(cè)了三種規(guī)格的集群分別為2核4G 、4核16G磁盤規(guī)格均為1T SSD云盤
? 采? esrally 壓測(cè)
? 壓測(cè)數(shù)據(jù)為esrally官方數(shù)據(jù) geonames 3.3 GB,單?文檔?大?小 311B
測(cè)試結(jié)果
? 分?片數(shù)均為6
? 副本數(shù)均為0
? 查詢類型為term和phrase

車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

Mechine Qps Cpu Load JVM Memory 90th percentile service time
2 core 12378 89% 3.98 47% 17.6141ms
4 core 23498 93% 4.63 48% 20.3789ms

5、云數(shù)據(jù)庫(kù) HBase性能測(cè)試及調(diào)優(yōu)
云數(shù)據(jù)庫(kù)ApsaraDB for HBase是一種穩(wěn)定可靠、可彈性伸縮的分布式Nosql數(shù)據(jù)庫(kù),兼容開源HBase協(xié)議?,F(xiàn)有以及即將提供的功能包括:安全,公網(wǎng)訪問,HBase on oss, 備份恢復(fù),冷熱分離,可選擇的存儲(chǔ)介質(zhì)包括,高效云盤,云ssd盤,本地磁盤,產(chǎn)品形態(tài)包括:?jiǎn)螜C(jī)版HBase以及分布式版本。

1) ApsaraDB for HBase測(cè)試
今天我們基于阿里云ApsaraDB for HBase進(jìn)行一個(gè)性能測(cè)試。
a) 測(cè)試環(huán)境
? 所有測(cè)試均在華東2(上海)地域的可用區(qū)B完成。
? 實(shí)例配置為8核32G,獨(dú)享。
? 網(wǎng)絡(luò)類型為經(jīng)典網(wǎng)絡(luò)。
? 壓測(cè)用的鏡像為CentOS 6.8 64位。
? 單條數(shù)據(jù)value大小1KB,100線程進(jìn)行數(shù)據(jù)壓測(cè)
b) 測(cè)試工具
測(cè)試工具使用開源HBase 自帶的PerformanceEvaluation工具進(jìn)行測(cè)試,因?yàn)樵摴ぞ咛峁┝溯^為豐富的測(cè)試場(chǎng)景,包括隨機(jī)key讀寫,構(gòu)造順序key讀寫,自定義的scan操作,且該工具完美兼容ApsaraDB for HBase的訪問API,除此之外,對(duì)于測(cè)試需要的輸出數(shù)據(jù)也是能夠比較詳細(xì)的展示出來。

安裝方法
不需要安裝,該二進(jìn)制文件在HBase的安裝包里面自帶,不需要人工安裝,直接執(zhí)行命令進(jìn)行操作即可;
c) 測(cè)試方法
準(zhǔn)備數(shù)據(jù)
在進(jìn)行實(shí)際測(cè)試的時(shí)候,需要在HBase內(nèi)部灌入一定量數(shù)據(jù),以可以達(dá)到模擬線上的真實(shí)場(chǎng)景,寫入數(shù)據(jù)的語句是:
sh hbase org.apache.hadoop.hbase.PerformanceEvaluation –nomapred –writeToWAL=
true –table=test –rows=5000 randomWrite 100
上述語句表示啟動(dòng)100線程,每一個(gè)線程往test表里寫入5000條數(shù)據(jù),每次寫入操作需要記錄WAL log。
壓測(cè)性能
壓測(cè)的操作包括讀,寫,scan操作;
寫入操作:
sh hbase org.apache.hadoop.hbase.PerformanceEvaluation –nomapred –writeToWAL= 
true –table=test –rows=5000 randomWrite 100
上述是寫入操作的命令,其中可以通過調(diào)整配置文件writerbuffer進(jìn)行修改每次批量寫入的條數(shù),我們測(cè)試寫入1條,2條和100條的數(shù)據(jù)信息。

讀取操作:
sh hbase org.apache.hadoop.hbase.PerformanceEvaluation –nomapred –table=test –rows=5000 randomRead 100
上述為讀取操作的命令,對(duì)于讀取而言,我們可以分別測(cè)試讀取命中內(nèi)存很高的情況下的數(shù)據(jù),以及對(duì)于沒有命中內(nèi)存緩存情況下的數(shù)據(jù)。對(duì)于命中率高的情況,開啟blockcahe,然后多次進(jìn)行預(yù)讀觀測(cè)監(jiān)控頁(yè)面的命中率信息即可得到,對(duì)于無名中的話,只需要關(guān)閉cache即可;
scan數(shù)據(jù)操作:
sh hbase org.apache.hadoop.hbase.PerformanceEvaluation –nomapred –table=test –rows=5000 --caching=100 scanRange100 100
對(duì)于這種scan的話,我們觀測(cè)的是命中率較高以及基本沒有內(nèi)存cache命中率的情況的數(shù)據(jù)。命中率高低的判斷以及條件達(dá)到參考讀取的情況。

d) 測(cè)試模型
庫(kù)表結(jié)構(gòu)
hbase(main):001:0> describe test'
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY =

'false', KEEP_DELETED_DATA => 'FALSE', DATA_BLOCK_ENCODING => 'NO

NE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0',
BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0
'}
數(shù)據(jù)格式
row: 00000000000000000000000428  
column=info:0, 
timestamp=1526367336121, value=NNNNNNNNLLLLLLLLCCCCCCCCJJJJJJJJGGGGGGGGZZZZZZZZPPP
PPPPPQQQQQQQQNNNNNNNNEEEEEEEEGGGGGGGGYYYYYYYYBBBBBBBBLLLLLLLLN NNNNNNNGGGGGGGGNNNNNNNNRRRRRRRREEEE EEEEQQQQQQQQXXXXXXXXTTTTTTTTJJJJJJJJYYYYYYYYXXXXXXXXMMMMMMMMJJJJJJJJMMMMMMMMFFFFFFFFHHHHHHHHDDDDD
DDDOOOOOOOOSSSSSSSSYYYYYYYYRRRRRRRRPPPPPPPPBBBBBBBBHHHHHHHHXXXXXXXXVVVVVVVVEEEEEEEEMMMMMMMMEEEEEE
EEMMMMMMMMDDDDDDDDLLLLLLLLKKKKKKKKSSSSSSSSWWWWWWWWVVVVVVVVXXXXXXXXVVVVVVVVJJJJJJJJAAAAAAAANNNNNNN
NDDDDDDDDLLLLLLLLAAAAAAAAOOOOOOOOKKKKKKKKFFFFFFFFHHHHHHHHIIIIIIIIZZZZZZZZQQQQQQQQAAAAAAAAKKKKKKKK
VVVVVVVVTTTTTTTTXXXXXXXXTTTTTTTTNNNNNNNNYYYYYYYYRRRRRRRRPPPPPPPPMMMMMMMMRRRRRRRRHHHHHHHHKKKKKKKKG
GGGGGGGBBBBBBBBMMMMMMMMBBBBBBBBTTTTTTTTFFFFFFFFSSSSSSSSQQQQQQQQCCCCCCCCSSSSSSSSVVVVVVVVBBBBBBBBFF
FFFFFFZZZZZZZZLLLLLLLLAAAAAAAAIIIIIIIIDDDDDDDDCCCCCCCCEEEEEEEESSSSSSSSOOOOOOOOFFFFFFFFKKKKKKKKHHH
HHHHHVVVVVVVVXXXXXXXXKKKKKKKKKKKKKKKKPPPPPPPPCCCCCCCCMMMMMMMMRRRRRRRREEEEEEEEGGGGGGGGGGGGGGGGPPPP
PPPPUUUUUUUUAAAAAAAAKKKKKKKKAAAAAAAAKKKKKKKKXXXXXXXXCCCCCCCCUU 

e) 測(cè)試指標(biāo)
RPS
Request Per Second,即數(shù)據(jù)庫(kù)每秒執(zhí)行的請(qǐng)求(含put,read,scan等)。

單條延時(shí)
平均單條請(qǐng)求的時(shí)延

f) 測(cè)試結(jié)果
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

2) HBaseclient實(shí)例參數(shù)調(diào)優(yōu)建議

? 對(duì)于hbase client做Htable封裝,然后請(qǐng)求hbase的時(shí)候,Htable可以配置AutoFlush這個(gè)參數(shù),默認(rèn)是true,可以設(shè)置為false,表示當(dāng)Htable的本地緩存打滿以后才進(jìn)行flush,開啟false可以提高客戶端感知的寫入速度。

修改完后是否需要重啟client:是

? 在HBase client做封裝的時(shí)候,同樣可以設(shè)置scan caching這個(gè)參數(shù)的個(gè)數(shù),表示每次從服務(wù)端緩存多少條數(shù)據(jù)用戶scan。默認(rèn)的值是1,但是如果單條value很大的話,這個(gè)值建議不要設(shè)置很大。

? Scan Attribute Selection,在做scan的時(shí)候,建議加上一些相應(yīng)的表屬性相關(guān)的過濾,如果添加只scan某一個(gè)列族的話,那么返回的時(shí)候只會(huì)操作該cf下面的數(shù)據(jù),反之就會(huì)有很多不必要的列族返回,降低不必要的通信量。

? WAL標(biāo)志,對(duì)于非重要的數(shù)據(jù),即,如果為了圖性能,對(duì)數(shù)據(jù)如果是允許不一致以及數(shù)據(jù)安全性要求不高的話,那么在進(jìn)行put操作的時(shí)候,可以將是否寫WAL 的標(biāo)志置為false,這樣的話,就是數(shù)據(jù)在寫入的時(shí)候不會(huì)先寫WAL,那么對(duì)寫操作會(huì)有很好的性能體現(xiàn)。

? 啟用bloomfilter,對(duì)于讀操作的話,如果開啟bloomfilter的話,對(duì)讀的性能有一定的提高,因?yàn)檫@是拿空間換讀操作的時(shí)間。

6、HiTSDB性能測(cè)試及調(diào)優(yōu)
HiTSDB Edge是一款運(yùn)行在近客戶端的高性能時(shí)序數(shù)據(jù)庫(kù)。

6.1測(cè)試模型
測(cè)試采用的數(shù)據(jù)模型來源于隨機(jī)生成的metric, tags組成的時(shí)間線metric和tagKey,tagValue分別由固定長(zhǎng)度(10 bytes字符串) + 索引,不采用具有真實(shí)意義的metric和tagKey,tagValue是因?yàn)闊o法覆蓋各種真實(shí)場(chǎng)景,且測(cè)試目的是為了將HiTSDB橫向與其他時(shí)序數(shù)據(jù)庫(kù)進(jìn)行比較,因此在保證測(cè)試數(shù)據(jù),軟硬件條件一致的情況下,也可取得可信度較高的結(jié)果。時(shí)間戳(8bytes 長(zhǎng)整型),value(8bytes雙精度整數(shù))。數(shù)據(jù)樣例如下:
車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

6.2統(tǒng)計(jì)結(jié)果說明
每次測(cè)試進(jìn)行之前重啟數(shù)據(jù)庫(kù)服務(wù),避免緩存對(duì)于之前執(zhí)行獲得的結(jié)果產(chǎn)生影響。
吞吐量(TPS)是單位時(shí)間內(nèi)完成的數(shù)據(jù)點(diǎn)操作數(shù)量。

每次寫入之后,會(huì)手動(dòng)隨機(jī)選擇時(shí)間線進(jìn)行數(shù)據(jù)查詢,粗粒度校驗(yàn)數(shù)據(jù)寫入一致性。同時(shí)對(duì)于HiTSDB寫入,會(huì)注冊(cè)SDK回調(diào),失敗或成功都能夠感知。

同時(shí)為了避免測(cè)試數(shù)據(jù)產(chǎn)生影響,每次測(cè)試之前都會(huì)清理數(shù)據(jù)。
關(guān)于時(shí)間線數(shù)量,每次測(cè)試運(yùn)行時(shí),會(huì)通過HiTSDB內(nèi)部接口/api/tscount校驗(yàn)時(shí)間線數(shù)量,每次增長(zhǎng)均符合預(yù)期。HiTSDB與其他數(shù)據(jù)庫(kù)單節(jié)點(diǎn)對(duì)比測(cè)試
6.3測(cè)試環(huán)境及步驟說明
所有數(shù)據(jù)庫(kù)的對(duì)比測(cè)試是在同一臺(tái)服務(wù)器上進(jìn)行,基于阿里云ECS進(jìn)行測(cè)試,該服務(wù)器的詳細(xì)配置如下:
CPUs: 4
Memory(GiB): 8
Network Performance: High
Disk Capacity(GiB):60

在測(cè)試時(shí),HiTSDB采用客戶端版本號(hào)1.4.9。在本次測(cè)試中,InfluxDB默認(rèn)設(shè)置。
本測(cè)試測(cè)試了各個(gè)數(shù)據(jù)庫(kù)在不同時(shí)間線數(shù)量級(jí)場(chǎng)景下的寫入和讀取的表現(xiàn)。

6.4寫入性能
數(shù)據(jù)庫(kù)的一個(gè)寫入請(qǐng)求可以包含一個(gè)或者多個(gè)數(shù)據(jù)點(diǎn)??偟亩裕淮握?qǐng)求里包含的數(shù)據(jù)點(diǎn)越多,寫入性能就會(huì)相應(yīng)提升。在以下測(cè)試中,P/R表示Points/Request(一次請(qǐng)求中的數(shù)據(jù)點(diǎn)數(shù))。  
6.4.1 HiTSDB測(cè)試結(jié)果


車聯(lián)網(wǎng)上云最佳實(shí)踐(四)


車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

從下面表格結(jié)果來分析,HiTSDB在時(shí)間線增長(zhǎng)時(shí),寫入TPS會(huì)有一定下降,最終在6xlarge規(guī)格指定的100萬時(shí)間線時(shí),寫入TPS約為5萬左右,這與阿里云官網(wǎng)宣傳的性能60000點(diǎn)每秒,基本上差距不大。


車聯(lián)網(wǎng)上云最佳實(shí)踐(四)


車聯(lián)網(wǎng)上云最佳實(shí)踐(四)


車聯(lián)網(wǎng)上云最佳實(shí)踐(四)


車聯(lián)網(wǎng)上云最佳實(shí)踐(四)


車聯(lián)網(wǎng)上云最佳實(shí)踐(四)

根據(jù)三組測(cè)試的結(jié)果分析可知,HiTSDB的寫入TPS隨著時(shí)間線的增長(zhǎng)呈下降趨勢(shì),同時(shí),1萬和10萬時(shí)間線量級(jí)下,即使增加客戶端數(shù)量,TPS也基本變化不大,100萬時(shí)間線數(shù)量級(jí),從1臺(tái)客戶端增漲到2臺(tái)時(shí),TPS有所增漲;而2臺(tái)增長(zhǎng)到4臺(tái)時(shí),沒有增漲。因此可以認(rèn)為在6xlarge硬件下100萬時(shí)間線HiTSDB的峰值寫入TPS是在15萬這個(gè)數(shù)量級(jí),注意之所以說峰值,是因?yàn)樾枰⒁獾氖潜敬螠y(cè)試的前置條件是清除數(shù)據(jù),隨著環(huán)境中時(shí)間線的增加,寫入TPS會(huì)降下來,測(cè)試過,差不多是在5-6萬TPS。

6.5 優(yōu)化建議
1) 寫入優(yōu)化
一次批量寫多個(gè)數(shù)據(jù)
2) 查詢優(yōu)化
如果需要一次性查詢很長(zhǎng)時(shí)間范圍的數(shù)據(jù),建議拆分為多個(gè)小時(shí)的數(shù)據(jù)來查詢。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI