Te tātari TSDB i Prometheus 2

Te tātari TSDB i Prometheus 2

Ko te papaaa raraunga raupapa wa (TSDB) i Prometheus 2 he tauira pai mo te otinga miihini e tuku ana i nga whakapainga nui mo te rokiroki v2 i Prometheus 1 e pa ana ki te tere whakaemi raraunga, te mahi uiui, me te pai o te rauemi. I whakatinanahia e matou a Prometheus 2 i roto i te Percona Monitoring and Management (PMM) a i whai waahi ahau ki te mohio ki nga mahi a Prometheus 2 TSDB. I roto i tenei tuhinga ka korero ahau mo nga hua o enei tirohanga.

Toharite Taumahi Prometheus

Mo te hunga kua mohio ki te whakahaere i nga papaa raraunga kaupapa whanui, he tino rawe te mahi a Prometheus. Ko te tere o te kohi raraunga kei te noho pumau: ko te nuinga o nga ratonga ka tirohia e koe ka tukuna he rite tonu te maha o nga inenga, me te tere haere o nga hanganga.
Ko nga tono mo nga korero ka puta mai i nga momo puna. Ko etahi o ratou, penei i nga matohi, e ngana ana mo te uara pumau me te matapae. Ko etahi atu, penei i nga tono a nga kaiwhakamahi, ka pakaru pea, ahakoa ehara tenei i te ahua mo te nuinga o nga mahi.

Whakamatau uta

I te wa o te whakamatautau, i aro ahau ki te kaha ki te kohi raraunga. I tukuna e ahau a Prometheus 2.3.2 i whakahiato me te Haere 1.10.1 (hei waahanga o te PMM 1.14) i runga i te ratonga Linode ma te whakamahi i tenei tuhinga: StackScript. Mo te reanga kawenga tino pono, ma te whakamahi i tenei StackScript I whakarewahia e ahau etahi node MySQL me te utaina tika (Sysbench TPC-C Test), i whai i ia waahanga 10 Linux/MySQL node.
Ko nga whakamatautau katoa e whai ake nei i mahia i runga i te tūmau Linode e waru nga mariko mariko me te 32 GB o te mahara, e whakahaere ana i te 20 kawenga whaihanga e aroturuki ana i nga waahanga MySQL e rua rau. Ranei, i roto i nga kupu Prometheus, 800 nga whaainga, 440 nga waahi mo ia hekona, 380 mano nga rekoata mo ia hekona, me te 1,7 miriona raupapa wa kaha.

Hoahoa

Ko te huarahi o mua o nga papaa raraunga tuku iho, tae atu ki te mea i whakamahia e Prometheus 1.x, ko te rohe mahara. Ki te kore e ranea ki te hapai i te kawenga, ka pa ki a koe nga waahi teitei ka taka etahi tono. Ko te whakamahi mahara ki Prometheus 2 ka taea te whirihora ma te matua storage.tsdb.min-block-duration, e whakatau ana kia pehea te roa o nga rekoata ka mau ki roto i te mahara i mua i te rere ki te kōpae (ko te 2 haora te taunoa). Ko te nui o te mahara e hiahiatia ana ka whakawhirinaki ki te maha o nga raupapa wa, nga tapanga, me nga waahi ka taapirihia ki te awa taumai kupenga. Mo te mokowā kōpae, e whai ana a Prometheus ki te whakamahi i te 3 paita mo ia rekoata (tauira). I tetahi atu ringa, he nui ake nga whakaritenga mahara.

Ahakoa ka taea te whirihora i te rahi o te poraka, kaore i te tūtohutia kia whirihorahia ma te ringa, na reira ka kaha koe ki te hoatu ki a Prometheus te nui o te mahara e hiahiatia ana mo to mahi.
Ki te kore e nui te mahara ki te tautoko i te awa taumai o nga inenga, ka ngaro a Prometheus i te mahara ka tae atu ranei te kaipatu OOM.
Ko te taapiri i te whakawhiti hei whakaroa i te tukinga ka pau te mahara o Prometheus kaore e tino awhina, na te mea ma te whakamahi i tenei mahi ka nui te paunga mahara. Ki taku whakaaro he mahi ki a Go, tana kaikohi paru me te huarahi e pa ana ki te whakawhiti.
Ko tetahi atu huarahi whakamere ko te whirihora i te paraka mahunga kia rehia ki te kopae i tetahi waa, kaua ki te tatau mai i te timatanga o te mahi.

Te tātari TSDB i Prometheus 2

Ka kitea e koe mai i te kauwhata, ka puta nga rerenga ki te kōpae ia rua haora. Mena ka huri koe i te tawhā min-poraka-roa ki te haora kotahi, katahi ka puta enei whakatikatika ia haora, ka timata i muri i te hawhe haora.
Ki te hiahia koe ki te whakamahi i tenei me etahi atu kauwhata i roto i to whakaurunga Prometheus, ka taea e koe te whakamahi i tenei papatohu. I hangaia mo te PMM engari, me nga whakarereketanga iti, ka uru ki tetahi whakaurunga Prometheus.
Kei a matou he poraka kaha e kiia nei ko te poraka upoko kei te rongoa ki te mahara; Ko nga poraka me nga raraunga tawhito e waatea ana ma mmap(). Ka whakakorehia e koe te hiahia ki te whirihora motuhake i te keteroki, engari ko te tikanga me waiho e koe he waahi nui mo te keteroki punaha whakahaere mena ka hiahia koe ki te uiui i nga raraunga tawhito ake i nga mea ka taea e te poraka upoko te whakauru.
Ko te tikanga hoki ko te kohi mahara mariko a Prometheus ka tino nui te ahua, ehara i te mea hei awangawanga.

Te tātari TSDB i Prometheus 2

Ko tetahi atu kaupapa whakamere ko te whakamahi i te WAL (tuhi i mua i te raarangi). Ka kite koe mai i nga tuhinga rokiroki, ka whakamahia e Prometheus te WAL hei karo i nga tukinga. Ko nga tikanga motuhake mo te whakapumau i te oranga o nga raraunga, kaore i te pai te tuhi. Ko te putanga Prometheus 2.3.2 ka pana te WAL ki te kōpae ia 10 hēkona, ā, kāore tēnei kōwhiringa e taea te whirihora e te kaiwhakamahi.

Whakaiti

He mea hoahoa a Prometheus TSDB hei toa LSM (Hanumi Hangarau Hangarau): ka rehia te paraka mahunga i ia wa ki te kopae, i te mea ka whakakotahihia e te miihini whakakoi nga poraka maha kia kore ai e matawai i nga poraka maha rawa i te wa e uiui ana. I konei ka kite koe i te maha o nga poraka i kitea e au i runga i te punaha whakamatautau i muri i te ra o te utaina.

Te tātari TSDB i Prometheus 2

Mena kei te hiahia koe ki te ako atu mo te toa, ka taea e koe te tirotiro i te konae meta.json, kei a ia nga korero mo nga poraka e waatea ana me te pehea i puta ai.

{
       "ulid": "01CPZDPD1D9R019JS87TPV5MPE",
       "minTime": 1536472800000,
       "maxTime": 1536494400000,
       "stats": {
               "numSamples": 8292128378,
               "numSeries": 1673622,
               "numChunks": 69528220
       },
       "compaction": {
               "level": 2,
               "sources": [
                       "01CPYRY9MS465Y5ETM3SXFBV7X",
                       "01CPYZT0WRJ1JB1P0DP80VY5KJ",
                       "01CPZ6NR4Q3PDP3E57HEH760XS"
               ],
               "parents": [
                       {
                               "ulid": "01CPYRY9MS465Y5ETM3SXFBV7X",
                               "minTime": 1536472800000,
                               "maxTime": 1536480000000
                       },
                       {
                               "ulid": "01CPYZT0WRJ1JB1P0DP80VY5KJ",
                               "minTime": 1536480000000,
                               "maxTime": 1536487200000
                       },
                       {
                               "ulid": "01CPZ6NR4Q3PDP3E57HEH760XS",
                               "minTime": 1536487200000,
                               "maxTime": 1536494400000
                       }
               ]
       },
       "version": 1
}

Ka herea nga Whakaititanga i roto i te Prometheus ki te wa ka panaia te paraka mahunga ki te kōpae. I tenei wa, he maha nga mahi penei ka taea te whakahaere.

Te tātari TSDB i Prometheus 2

Te ahua nei kaore i te whakawhäitihia te whakatiki i nga huarahi katoa ka taea e te kopae I/O nui te titaha i te wa e mahia ana.

Te tātari TSDB i Prometheus 2

Tiki uta CPU

Te tātari TSDB i Prometheus 2

Ae ra, he kino rawa tenei ki te tere o te punaha, he wero nui hoki mo te rokiroki LSM: me pehea te mahi whakatiki hei tautoko i nga reiti tono nui me te kore e nui rawa te utu?
Ko te whakamahinga o te mahara i roto i te mahi whakatiki he ahua pai.

Te tātari TSDB i Prometheus 2

Ka taea e tatou te kite me pehea, i muri i te whakakotahitanga, ka huri te nuinga o nga mahara mai i te Keteroki ki te Koreutu: ko te tikanga kua tangohia nga korero whai hua mai i reira. Ka miharo mena kei te whakamahia i konei fadvice() etahi atu tikanga whakaiti ranei, na te mea ranei i wetekina te keteroki mai i nga poraka i pakaru i te wa e whakatiki ana?

Te whakaoranga i muri i te korenga

Ko te whakaora mai i nga rahunga he wa roa, he take pai. Mo te rerenga mai o te miriona rekoata mo ia hekona, me tatari ahau mo te 25 meneti i te wa e mahia ana te whakaora me te whakaaro ki te puku SSD.

level=info ts=2018-09-13T13:38:14.09650965Z caller=main.go:222 msg="Starting Prometheus" version="(version=2.3.2, branch=v2.3.2, revision=71af5e29e815795e9dd14742ee7725682fa14b7b)"
level=info ts=2018-09-13T13:38:14.096599879Z caller=main.go:223 build_context="(go=go1.10.1, user=Jenkins, date=20180725-08:58:13OURCE)"
level=info ts=2018-09-13T13:38:14.096624109Z caller=main.go:224 host_details="(Linux 4.15.0-32-generic #35-Ubuntu SMP Fri Aug 10 17:58:07 UTC 2018 x86_64 1bee9e9b78cf (none))"
level=info ts=2018-09-13T13:38:14.096641396Z caller=main.go:225 fd_limits="(soft=1048576, hard=1048576)"
level=info ts=2018-09-13T13:38:14.097715256Z caller=web.go:415 component=web msg="Start listening for connections" address=:9090
level=info ts=2018-09-13T13:38:14.097400393Z caller=main.go:533 msg="Starting TSDB ..."
level=info ts=2018-09-13T13:38:14.098718401Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536530400000 maxt=1536537600000 ulid=01CQ0FW3ME8Q5W2AN5F9CB7R0R
level=info ts=2018-09-13T13:38:14.100315658Z caller=web.go:467 component=web msg="router prefix" prefix=/prometheus
level=info ts=2018-09-13T13:38:14.101793727Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536732000000 maxt=1536753600000 ulid=01CQ78486TNX5QZTBF049PQHSM
level=info ts=2018-09-13T13:38:14.102267346Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536537600000 maxt=1536732000000 ulid=01CQ78DE7HSQK0C0F5AZ46YGF0
level=info ts=2018-09-13T13:38:14.102660295Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536775200000 maxt=1536782400000 ulid=01CQ7SAT4RM21Y0PT5GNSS146Q
level=info ts=2018-09-13T13:38:14.103075885Z caller=repair.go:39 component=tsdb msg="found healthy block" mint=1536753600000 maxt=1536775200000 ulid=01CQ7SV8WJ3C2W5S3RTAHC2GHB
level=error ts=2018-09-13T14:05:18.208469169Z caller=wal.go:275 component=tsdb msg="WAL corruption detected; truncating" err="unexpected CRC32 checksum d0465484, want 0" file=/opt/prometheus/data/.prom2-data/wal/007357 pos=15504363
level=info ts=2018-09-13T14:05:19.471459777Z caller=main.go:543 msg="TSDB started"
level=info ts=2018-09-13T14:05:19.471604598Z caller=main.go:603 msg="Loading configuration file" filename=/etc/prometheus.yml
level=info ts=2018-09-13T14:05:19.499156711Z caller=main.go:629 msg="Completed loading of configuration file" filename=/etc/prometheus.yml
level=info ts=2018-09-13T14:05:19.499228186Z caller=main.go:502 msg="Server is ready to receive web requests."

Ko te raruraru nui o te tukanga whakaora ko te kohi mahara nui. Ahakoa te meka i roto i nga ahuatanga noa ka taea e te tūmau te mahi me te rite tonu te nui o te mahara, ki te pakaru, kaore pea e ora mai na te OOM. Ko te otinga anake i kitea e au ko te whakakore i te kohinga raraunga, te kawe ake i te tūmau, kia ora, ka whakaara ano me te kohinga kua whakahohea.

Te whakamahana

Ko tetahi atu whanonga hei maumahara i te wa whakamahana ko te hononga i waenga i te iti o te mahi me te nui o te kohi rauemi i muri tonu i te tiimatanga. I etahi wa, engari kaore i te tiimata katoa, ka kite ahau i te taumaha nui ki te PTM me te mahara.

Te tātari TSDB i Prometheus 2

Te tātari TSDB i Prometheus 2

Ko nga waahi o te whakamahinga mahara e tohu ana kaore e taea e Prometheus te whirihora i nga kohinga katoa mai i te timatanga, ka ngaro etahi korero.
Kaore au i te mohio ki nga take tika mo te PTM teitei me te uta mahara. Ki taku whakaaro ko tenei na te hanga o nga raupapa wa hou i roto i te poraka upoko me te auau teitei.

Ka piki te uta CPU

I tua atu i nga taapiri, e hanga ana i te kawenga I/O tino nui, ka kite ahau i nga titaha nui o te uta CPU ia rua meneti. Ka roa ake nga pakaru i te mea ka nui te rere o te whakaurunga ka puta mai na te kaikohi paru a Go, me te mea kei te utaina katoa etahi ohanga.

Te tātari TSDB i Prometheus 2

Te tātari TSDB i Prometheus 2

Ko enei peke kaore i te iti rawa. Te ahua nei ka puta enei, karekau i te watea te waahi urunga o roto o Prometheus me nga inenga, ka puta he aputa raraunga i enei wa ano.

Te tātari TSDB i Prometheus 2

Ka taea hoki e koe te kite kua tutakina te kaihoko a Prometheus mo te kotahi hēkona.

Te tātari TSDB i Prometheus 2

Ka kite tatou i nga hononga ki te kohinga para (GC).

Te tātari TSDB i Prometheus 2

mutunga

He tere te TSDB i Prometheus 2, e kaha ana ki te whakahaere i nga miriona raupapa wa me te wa ano nga mano o nga rekoata mo ia hekona ma te whakamahi i nga taputapu ngawari. He mea whakamiharo hoki te whakamahi PTM me te kōpae I/O. Ko taku tauira i whakaatu ake ki te 200 ine mo ia hekona mo ia matua i whakamahia.

Ki te whakamahere roha, me mahara koe mo te nui o te mahara, me mahara tonu tenei. Ko te nui o te mahara i kitea e au ko te 5 GB mo ia 100 rekoata mo ia hekona o te awa e haere mai ana, me te keteroki o te punaha whakahaere i hoatu mo te 000 GB o te mahara kua nohoia.

Ae ra, he nui tonu nga mahi hei mahi ki te whakararata i te PTM me te kopae I/O titaha, a ehara tenei i te mea miharo ki te whakaaro me pehea te whakataurite a TSDB Prometheus 2 ki a InnoDB, TokuDB, RocksDB, WiredTiger, engari he rite tonu ta ratou katoa. nga raruraru i te timatanga o to ratau oranga.

Source: will.com

Tāpiri i te kōrero