wiredtiger configuraon variables - looking under …...wiredtiger configuraon variables - looking...

54
WiredTiger configura/on variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona Live Europe 2016

Upload: others

Post on 24-May-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

WiredTigerconfigura/onvariables-Lookingunderthehood

AntoniosGiannopoulosDatabaseAdministrator–Rackspace

PerconaLiveEurope2016

Page 2: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Agenda

Wearegoingtodiscuss:MongoDBWiredTigerConfigura/onVariables

-  Whattheymean?-  Howtoconfigure/change?-  Benchmarks

Page 3: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

BenchmarkspecsRackspaceOnMetalCloudServerv212cores32GBRAM2x800GBSSDs(RAID1)MongoDB3.2.9SysbenchforMongoDBbyTimCallaghanusingdefaultse[ngs

Page 4: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

BenchmarkspecsSysbench:1)  Creates16collec/ons10milliondocumentseach2)  Executesamixedworkloadfor10minutesLoad:Comple/on/mefor(1)TPSCUM:AveragenumberofSysbenchtransac/onsTPSINT:NumberofSysbenchtransac/onsSamplesarecollectedevery10seconds

Page 5: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

WTconfigura/on/FilesThreewaystochangeWTvariables:mongod.conf:engineConfig.configStringrun/me:db.adminCommand({setParameter:…})configura/onfile(s):(WiredTiger.basecfg,WiredTiger.config)

Theorderofconfigura/onis:WiredTiger.basecfgfilewired/ger_openconfigura/onstringargument,WiredTiger.configfile,WIREDTIGER_CONFIGenvironmentvariable

Page 6: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

WTconfigura/on/mongod.confengineConfig: cacheSizeGB:<number> journalCompressor:<string> directoryForIndexes:<boolean>

configString:<string>,<string>…collec/onConfig: blockCompressor:<string>indexConfig: prefixCompression:<boolean>

setParameter: wiredTigerConcurrentReadTransac/ons:<number> wiredTigerConcurrentWriteTransac/ons:<number>

Page 7: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

WTconfigura/on/mongod.confengineConfig: cacheSizeGB:<number> journalCompressor:<string> directoryForIndexes:<boolean>

configString:<string>,<string>…collec/onConfig: blockCompressor:<string>indexConfig: prefixCompression:<boolean>

setParameter: wiredTigerConcurrentReadTransac/ons:<number> wiredTigerConcurrentWriteTransac/ons:<number>

Page 8: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

JournalBenchmarkDefault:SnappyLoad:10minutesand58secondsWithoutcompression:Load:10minutesand21secondsWithoutjournal:Load:8minutesand35seconds

Page 9: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Journal(cumtps)

0

200

400

600

800

1000

1200

0 100 200 300 400 500 600 700

default

withoutcompression

withoutjournal

Page 10: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Journal(inttps)

0

200

400

600

800

1000

1200

1400

0 100 200 300 400 500 600 700

default

withoutcompression

withoutjournal

Page 11: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

WTconfigura/on/mongod.confengineConfig: cacheSizeGB:<number> journalCompressor:<string> directoryForIndexes:<boolean>

configString:<string>,<string>…collec/onConfig: blockCompressor:<string>indexConfig: prefixCompression:<boolean>

setParameter: wiredTigerConcurrentReadTransac/ons:<number> wiredTigerConcurrentWriteTransac/ons:<number>

Page 12: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

CompressionAlgorithmssnappy:itgathersdatauptoamaximumof32KB,compressesit,andifcompressionissuccessful,writestheblockroundeduptothenearest4KB.zlib:itgathersmoredataandcompressenoughtofilla32KBblockondisk.Configurablepercollec/on:db.createCollec/on("foo",{storageEngine:{wiredTiger:{configString:"block_compressor=zlib"}}})

Page 13: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

blockCompressorBenchmarkSnappy:Load:10minutesand58secondsZlib:Load:18minutesand21secondsWithoutcompression:Load:10minutesand45seconds

Page 14: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

blockCompressor(cumtps)

0

200

400

600

800

1000

1200

0 100 200 300 400 500 600 700

snappy

zlib

nocompression

Page 15: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

blockCompressor(inttps)

0

200

400

600

800

1000

1200

1400

1600

0 100 200 300 400 500 600 700

snappy

zlib

none

Page 16: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

WTconfigura/on/mongod.confengineConfig: cacheSizeGB:<number> journalCompressor:<string> directoryForIndexes:<boolean>

configString:<string>,<string>…collec/onConfig: blockCompressor:<string>indexConfig: prefixCompression:<boolean>

setParameter: wiredTigerConcurrentReadTransac/ons:<number> wiredTigerConcurrentWriteTransac/ons:<number>

Page 17: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Prefixcompressionuseusedusefulusefullyusefulnessuselessuselesslyuselessness

Page 18: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Prefixcompressionuseusedusefulusefullyusefulnessuselessuselesslyuselessness

0:use1:0d2:0ful3:0fully4:0less5:0lessly6:0lessness

Page 19: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Prefixcompressionuseusedusefulusefullyusefulnessuselessuselesslyuselessness

0:use1:0d2:0ful3:0fully4:0less5:0lessly6:0lessness

0:use1:0d2:0ful3:2ly4:0less5:4ly6:4ness

Page 20: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Prefixcompression(load/mes)

Default:Snappycompression:Load:10minutesand58secondsNone:Withoutcompression:Load:09minutesand51seconds

Page 21: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Prefixcompression(cumtps)

0

200

400

600

800

1000

1200

0 100 200 300 400 500 600 700

default

none

Page 22: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Prefixcompression(inttps)

0

200

400

600

800

1000

1200

1400

0 100 200 300 400 500 600 700

default

none

Page 23: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

WTconfigura/on/mongod.confengineConfig: cacheSizeGB:<number> journalCompressor:<string> directoryForIndexes:<boolean>

configString:<string>,<string>…collec/onConfig: blockCompressor:<string>indexConfig: prefixCompression:<boolean>

setParameter: wiredTigerConcurrentReadTransacKons:<number> wiredTigerConcurrentWriteTransacKons:<number>

Page 24: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

ConcurrentTransac/onsSpecifythemaximumnumberofconcurrentread/writetransac/ons.Defaultis128mongod.confsetParameter: wiredTigerConcurrentReadTransac/ons:<number> RunKme:db.adminCommand({setParameter:1,wiredTigerConcurrentWriteTransac/ons:<num>})

Page 25: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

ConcurrentTransac/onsBenchmark64Trx:64read/writetranscac/onsLoad:11minutesand06seconds128Trx:Default-128read/writetranscac/onsLoad:10minutesand58seconds256Trx:256read/writetranscac/onsLoad:10minutesand46seconds

Page 26: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

ConcurrentTransac/ons(cumtps)

0

200

400

600

800

1000

1200

0 100 200 300 400 500 600 700

trx-128

trx-64

trx-256

Page 27: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

ConcurrentTransac/ons(inttps)

0

200

400

600

800

1000

1200

1400

0 100 200 300 400 500 600 700

trx-128

trx-64

trx-256

Page 28: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

WTconfigura/on/mongod.confengineConfig: cacheSizeGB:<number> journalCompressor:<string> directoryForIndexes:<boolean>

configString:<string>,<string>…collec/onConfig: blockCompressor:<string>indexConfig: prefixCompression:<boolean>

setParameter: wiredTigerConcurrentReadTransac/ons:<number> wiredTigerConcurrentWriteTransac/ons:<number>

Page 29: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

WTconfigura/onEveryWTvariablecanbeassignedtoconfigStringWearegoingtoexamineasubset:-  evic/on_target-  evic/on_trigger-  evic/on_dirty_target-  evic/on_dirty_trigger-  evic/on.threads_min-  evic/on.threads_max-  direct_IO

Page 30: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Evic/on

ResidentObjects Sharedcache

Page 31: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Evic/on

Cachesavesobjects(workingset)

Page 32: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Evic/on

Evic/onTriggers

Page 33: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Evic/on

Evic/onCandidates

Page 34: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Evic/on

Evic/onTarget

Page 35: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

evic/on_triggerevicKon_triggeristheoccupiedpercentageofthetotalcachesizethatcausesevic/ontostart.Defaultvalue:95%Acceptablevalues:Between10and99RunKme:db.adminCommand({setParameter:1,wiredTigerEngineRun/meConfig:"evic/on_trigger=71”})mongod.conf:evic/on_trigger=71WiredTiger.config:evic/on_trigger=71

Page 36: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

evic/on_targetevicKon_targetistheoveralltargetforevic/on,expressedasapercentageoftotalcachesize.Defaultvalue:80%Acceptablerange:Between10and99(lowerthantrigger)RunKme:db.adminCommand({setParameter:1,wiredTigerEngineRun/meConfig:"evic/on_target=70"})mongod.conf:evic/on_target=70WiredTiger.config:evic/on_target=70

Page 37: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Evic/on_trigger/targetBenchmarkDefault:trigger/target:95/80Load:11minutesand06seconds95/90:trigger/target:95/90Load:11minutesand41seconds90/89:trigger/target:90/89Load:10minutesand16seconds95/94:trigger/target:95/94Load:12minutesand26seconds

Page 38: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

evic/on_trigger/target(cumtps)

0

200

400

600

800

1000

1200

0 100 200 300 400 500 600 700

default

95and90

90and89

95and94

Page 39: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Evic/on_trigger/target(inttps)

0

200

400

600

800

1000

1200

1400

1600

0 100 200 300 400 500 600 700

default

95and90

90and89

95and94

Page 40: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

evic/on_dirty_triggerevicKon_dirty_trigger:triggerevic/onwhenthecacheisusingthismuchmemoryfordirtycontent,asapercentageofthetotalcachesize.Defaultvalue:95%Acceptablerange:Between5and99RunKme:db.adminCommand({setParameter:1,wiredTigerEngineRun/meConfig:"evic/on_dirty_trigger=71"})mongod.conf:evic/on_dirty_trigger=71WiredTiger.config:evic/on_dirty_trigger=71

Page 41: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

evic/on_dirty_targetevicKon_dirty_target:con/nueevic/ngun/lthecachehaslessdirtypagesthanthis(asapercentage).Default:80%Acceptablerange:Between5and99(lowerthantrigger)RunKme:db.adminCommand({setParameter:1,wiredTigerEngineRun/meConfig:"evic/on_dirty_target=70"})mongod.conf:evic/on_dirty_target=70WiredTiger.config:evic/on_dirty_target=70

Page 42: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

dirty_trigger/targetBenchmarkDefault:trigger/target95/80Load:10minutesand58seconds20/5:trigger/target20/5Load:31minutesand20seconds80/70:trigger/target80/70Load:10minutesand06seconds

Page 43: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

dirty_trigger/target(cumtps)

0

200

400

600

800

1000

1200

0 100 200 300 400 500 600 700

default

20and5

80and70

Page 44: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

dirty_trigger/target(inttps)

0

200

400

600

800

1000

1200

1400

1600

0 100 200 300 400 500 600 700

default

20and5

80and70

Page 45: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

evic/onthreadsevicKon.threads_min&evicKon.threads_max:theminimumandmaximumnumberofaddi/onalevic/onthreadsDefault:1and4Acceptablerange:between1and20RunKme:db.adminCommand({setParameter:1,wiredTigerEngineRun/meConfig:"evic/on=(threads_min=2)"})mongod.conf:evic/on=(threads_max=2)WiredTiger.config:evic/on=(threads_max=2)

Page 46: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

evict_threads_min/maxBenchmarkDefault:min/max1/4Load:10minutesand58seconds4and6:min/max4/6Load:10minutesand31seconds2and8:min/max2/8Load:10minutesand11seconds4and4:min/max4/4Load:10minutesand21seconds

Page 47: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

evict_threads_min/max(cumtps)

0

200

400

600

800

1000

1200

0 100 200 300 400 500 600 700

default

4and6

2and8

4and4

Page 48: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

evict_threads_min/max(inttps)

0

200

400

600

800

1000

1200

1400

1600

0 100 200 300 400 500 600 700

default

4and6

2and8

4and4

Page 49: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

direct_io

STORAGE STORAGE

FScacheWTcache WTcache FScache

RAM RAM

Page 50: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

direct_io•  minimizetheopera/ngsystemcacheeffectsofI/Otoand

fromWiredTiger'sbuffercache•  avoiddouble-bufferingofblocksinWiredTiger'scacheand

theopera/ngsystembuffercache•  avoidstallingunderlyingsolid-statedrivesbywri/ngalarge

numberofdirtyblocks.WiredTiger.config:direct_io=(data)mongod.conf:storage.wiredTiger.engineConfig.configString:direct_io=(data)

Page 51: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

DirectIOBenchmark

Default:WithoutDirectIOLoad:10minutesand58secondsDirectIO:WithDirectIOLoad:11minutesand25seconds

Page 52: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

DirectIO(cumtps)

0

200

400

600

800

1000

1200

0 100 200 300 400 500 600 700

default

directIO

Page 53: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

DirectIO(inttps)

0

200

400

600

800

1000

1200

1400

1600

0 100 200 300 400 500 600 700

default

directIO

Page 54: WiredTiger configuraon variables - Looking under …...WiredTiger configuraon variables - Looking under the hood Antonios Giannopoulos Database Administrator – Rackspace Percona

Ques/ons?

Thankyou!!!

[email protected]#iamantonios