HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ka titiro tatou ki te mahi a Zabbix me te putunga raraunga TimescaleDB hei tuara. Ka whakaatu matou ki a koe me pehea te tiimata mai i te wahanga me te heke mai i PostgreSQL. Ka tukuna ano e matou nga whakamatautau mahi whakatairite o nga whirihoranga e rua.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

HighLoad++ Siberia 2019. Tomsk Hall. Hune 24, 16:00. Tuhinga me whakaaturanga. Ko te huihuinga HighLoad++ e whai ake nei ka tu i te Paenga-whawha 6 me te 7, 2020 i St. Nga korero me nga tikiti hono.

Andrey Gushchin (i muri nei - AG): – He miihini tautoko hangarau ZABBIX ahau (ka kiia i muri nei ko "Zabbix"), he kaiwhakangungu. Neke atu i te 6 tau ahau e mahi ana i roto i te tautoko hangarau me te whai wheako tika ki te mahi. I tenei ra ka korero ahau mo nga mahi ka taea e TimescaleDB te whakarato ina whakaritea ki te PostgreSQL 10. Ano, etahi waahanga whakataki mo te mahi i te nuinga.

Nga wero hua nui: mai i te kohinga raraunga ki te horoi raraunga

Hei timata, he wero mahi ka pa ki ia punaha aroturuki. Ko te wero hua tuatahi ko te kohikohi me te tukatuka tere i nga raraunga.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te punaha aro turuki pai kia tere, kia tere te tango i nga raraunga katoa, kia rite ki nga korero whakaoho, ara, kia rite ki etahi paearu (he rereke tenei i roto i nga punaha rereke) ka penapena ki roto i te putunga raraunga hei whakamahi i enei raraunga ki te heke mai.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te wero mahi tuarua ko te rokiroki hitori. Rokiroki i roto i te papaa raraunga i nga wa maha, kia tere, kia ngawari hoki te uru ki enei inenga i kohia i roto i te waa. Ko te mea nui ko tenei raraunga he watea ki te tiki, whakamahia i roto i nga purongo, kauwhata, keu, i etahi uara paepae, mo nga matohi, aha atu.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te wero mahi tuatoru ko te whakakore i nga hitori, ara, ka tae koe ki te waahi kaore koe e hiahia ki te penapena i nga inenga taipitopito kua kohia i roto i te 5 tau (ara marama, e rua marama ranei). I mukua etahi pona whatunga, etahi kaihautu ranei, kua kore e hiahiatia nga inenga na te mea kua tawhito kee, kua kore e kohia. Ko enei mea katoa me horoi kia kore ai e nui rawa to papaunga raraunga. I te nuinga o te waa, ko te whakakore i nga hitori he whakamatautau nui mo te rokiroki - he tino kaha te paanga ki te mahi.

Me pehea te whakaoti rapanga keteroki?

Ka korero au inaianei mo Zabbix. I Zabbix, ka whakatauhia nga waea tuatahi me te tuarua ma te keteroki.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Kohikohi raraunga me te tukatuka - Ka whakamahia e matou te RAM ki te penapena i enei raraunga katoa. Ko enei raraunga ka korerohia inaianei i nga korero taipitopito.

I runga ano i te taha raraunga he keteroki mo nga whiringa matua - mo nga kauwhata me etahi atu mea.

Keteroki i te taha o te tūmau Zabbix ake: kei a matou ConfigurationCache, ValueCache, HistoryCache, TrendsCache. He aha tena?

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te ConfigurationCache te keteroki matua e rongoa ai tatou i nga inenga, nga kaihautu, nga taonga raraunga, nga keu; nga mea katoa e hiahia ana koe ki te tukatuka i mua i te tukatuka, te kohikohi raraunga, mai i nga kaihautu ki te kohikohi, me te aha te auau. Kei te rongoa enei katoa ki roto i te ConfigurationCache kia kore ai e haere ki te paataka korero me te hanga patai kore. I muri i te tiimata o te tūmau, ka whakahouhia e matou tenei keteroki (hangahia) me te whakahou i ia wa (i runga i nga tautuhinga whirihoranga).

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Keteroki i roto i te Zabbix. Te kohinga raraunga

I konei he tino nui te hoahoa:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko nga mea nui i roto i te kaupapa ko enei kaikohi:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko enei nga tikanga o te huihuinga, he maha nga "pollers" e kawe ana mo nga momo huihuinga. Ka kohia e ratou nga raraunga ma te icmp, ipmi, me nga momo kawa ka whakawhiti katoa ki te tukatuka o mua.

PreProcessing HistoryCache

Ano, ki te mea kua tatauhia e matou nga huānga raraunga (kei te mohio te hunga e mohio ana ki a Zabbix), ara, te tatau, nga huānga raraunga whakahiato, ka tangohia tika mai i ValueCache. Ka korero ahau ki a koe me pehea te whakakii i muri mai. Ko enei kaikohi katoa ka whakamahi i te ConfigurationCache ki te whiwhi i a raatau mahi katahi ka tukuna atu ki te tukatuka o mua.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ka whakamahia ano e te Preprocessing te ConfigurationCache ki te tiki i nga hikoinga o mua i te tukatuka me te tukatuka i enei raraunga i roto i nga huarahi rereke. Mai i te putanga 4.2, kua nukuhia e matou ki te takawaenga. He tino watea tenei, na te mea he mahi uaua te mahi o mua. A, ki te whai koe i te Zabbix tino nui, me te maha o nga huānga raraunga me te auau kohinga teitei, na tenei ka tino ngawari te mahi.

Na reira, i muri i to maatau tukatuka i enei raraunga ma te whakamahi i te tukatuka o mua, ka tiakina e matou ki HistoryCache kia pai ai te whakahaere. Ka mutu te kohinga raraunga. Ka neke tatou ki te tukanga matua.

Nga mahi a te kaikorero hitori

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te tukanga matua i roto i te Zabbix (i te mea he hoahoanga monolithic) ko History syncer. Koinei te tukanga matua e pa ana ki te tukatuka ngota o ia huānga raraunga, ara, ia uara:

  • ka tae mai te uara (ka tangohia mai i HistoryCache);
  • ka taki i roto i te Whirihoranga Tukutahi: mena he keu mo te tatau - ka tatauhia;
    ki te mea he - hanga kaupapa, hanga escalation i roto i te tikanga ki te hanga i te mataara, ki te tika kia rite ki te whirihoranga;
  • ka tuhia nga whakaoho mo te tukatuka o muri mai, te whakahiato; Mena ka whakahiatohia e koe i te haora whakamutunga me etahi atu, ka maumaharatia tenei uara e ValueCache kia kore ai e haere ki te ripanga hitori; No reira, ka whakakiia te ValueCache ki nga raraunga e tika ana hei tatau i nga keu, nga huānga tatau, me era atu;
  • katahi ka tuhia e te Kaihoko Hitori nga raraunga katoa ki te paataka;
  • ka tuhia e te patengi raraunga ki te kōpae - koinei te mutunga o te tukanga tukatuka.

Pātengi Raraunga. Keteroki

I te taha o te papaa raraunga, ina hiahia koe ki te tiro kauwhata, etahi purongo ranei mo nga huihuinga, he maha nga keteroki. Engari i roto i tenei ripoata e kore ahau e korero mo ratou.

Mo MySQL he Innodb_buffer_pool, me te paihere o nga keteroki rereke ka taea hoki te whirihora.
Engari ko nga mea matua enei:

  • shared_buffers;
  • kaha_keteroki_rahi;
  • shared_pool.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Mo nga papaunga raraunga katoa, i kii ahau kei reira etahi keteroki e taea ai e koe te penapena i roto i te RAM nga raraunga e hiahiatia ana mo nga patai. Kei a ratou ake hangarau mo tenei.

Mo te Mahinga Raraunga Raraunga

Na reira, he taiao whakataetae, ara, ko te Zabbix server te kohi raraunga me te tuhi. Ka timata ano, ka panui ano mai i nga hitori hei whakakii i te ValueCache me etahi atu. I konei ka taea e koe nga tuhinga me nga purongo e whakamahi ana i te Zabbix API, i hangaia i runga i te atanga tukutuku. Ka uru te Zabbix API ki te papaa raraunga ka whiwhi i nga raraunga e tika ana kia whiwhi kauwhata, purongo, etahi momo rarangi huihuinga ranei, nga raru tata.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

He otinga whakakitenga tino rongonui ko Grafana, e whakamahia ana e o maatau kaiwhakamahi. Ka taea ki te takiuru tika ma te Zabbix API me te papaa raraunga. Ka hangai ano he whakataetae mo te whiwhi raraunga: he pai ake, he pai ake te whakatika o te paataka raraunga hei u ki te tuku tere o nga hua me nga whakamatautau.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Te whakakore i nga hitori. Kei a Zabbix te Kaitiaki Whare

Ko te waea tuatoru e whakamahia ana i Zabbix ko te whakakore i nga hitori ma te whakamahi i te Kaitiaki Whare. Ka whai te Kaitiaki Whare i nga tautuhinga katoa, ara, ko o tatou huānga raraunga e tohu ana kia pehea te roa o te penapena (i nga ra), te roa o te penapena i nga ia, me te kaha o nga huringa.

Kare au i korero mo TrendCache, ka tatauhia e matou i runga i te rere: ka tae mai nga raraunga, ka whakahiatohia mo te haora kotahi (te nuinga he nama enei mo te haora whakamutunga), he toharite/te iti rawa te nui, a ka tuhia kotahi haora i te te ripanga o te hihiri o nga huringa ("Te ahua") . Ka timata te "Kaiwhakahaere Whare" me te whakakore i nga raraunga mai i te paataka ma te whakamahi i nga kowhiringa auau, kaore i te whai hua i nga wa katoa.

Me pehea e mohio ai kaore e whai hua? Ka kite koe i te pikitia e whai ake nei i runga i nga kauwhata mahinga o nga tukanga o roto:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Kei te pukumahi tonu to tukutahi History (kauwhata whero). Me te kauwhata "whero" kei runga. He "Kaitiaki Whare" tenei ka tiimata me te tatari kia mukua e te patengi raraunga nga rarangi katoa kua tohua e ia.

Me tango etahi ID Tuemi: me whakakore e koe te 5 mano whakamutunga; o te akoranga, i te taupū. Engari i te nuinga o te wa he tino nui te huingararaunga - ka panui tonu te paataka korero mai i te kopae ka tuu ki roto i te keteroki, a he mahi tino utu tenei mo te putunga raraunga. I runga ano i tona rahi, ka raru pea etahi mahi.

Ka taea e koe te whakakore i te Kaitiaki Whare ma te ngawari - he atanga tukutuku mohio matou. Tautuhinga i roto i te Whakahaere whānui (tautuhinga mo "Kaiwhakahaere Whare") ka whakakorehia e matou te tiaki whare o roto mo nga hitori o roto me nga ahuatanga. No reira, kua kore te Kaitiaki Whare e whakahaere i tenei:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ka aha koe i muri mai? I whakawetohia e koe, kua whakatauritehia o kauwhata... He aha etahi atu raruraru ka ara ake i tenei keehi? He aha te awhina?

Wehewehenga (waahanga)

I te nuinga o te waa ka whirihorahia tenei i tetahi huarahi rereke i runga i ia papaunga hononga kua whakarārangihia e au. Kei a MySQL tana ake hangarau. Engari i te katoa he tino rite ki te PostgreSQL 10 me MySQL. Ko te tikanga, he maha nga rereketanga o roto i te ahua o te whakatinanatanga me te paanga o te katoa ki nga mahi. Engari i te nuinga o te waa, ko te hanganga o te wehewehenga hou he maha tonu nga raru.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

I runga i to tatūnga (e hia nga raraunga ka hangaia e koe i te ra kotahi), ka whakatauhia e raatau te iti rawa - he 1 ra tenei / puranga, a mo nga "ahua", nga huringa o nga huringa - 1 marama / puranga hou. Ka huri pea tenei mena he nui rawa to tatūnga.

Me korero tonu mo te rahi o te tatūnga: tae atu ki te 5 mano nga uara hou mo ia hēkona (e kiia nei ko nvps) - ka kiia he "whakarite" iti. Toharite – mai i te 5 ki te 25 mano uara mo ia hekona. Ko nga mea katoa kei runga ake nei he whakaurunga nunui me te tino nui e hiahia ana kia tupato te whirihoranga o te putunga raraunga.

I runga i nga whakaurunga nui rawa, 1 ra pea kaore e tino pai. Kua kite ahau i nga wehewehenga i runga i MySQL o te 40 gigabytes ia ra (a tera pea he maha atu). He nui rawa tenei o nga raraunga, ka puta etahi raruraru. Me whakaheke.

He aha koe ka hiahia wehewehe ai?

Ko nga mea e whakaratohia ana e te Wehewehenga, ki taku whakaaro kei te mohio te katoa, ko te wehewehe tepu. I te nuinga o nga wa he konae motuhake enei i runga i nga tono kōpae me te mokowhiti. He pai ake te kowhiri i tetahi waahanga mehemea he waahanga o te wehewehenga noa.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Mo Zabbix, ina koa, ka whakamahia ma te awhe, ma te awhe, ara, ka whakamahia he tohu wa (he tau tonu, he wa mai i te timatanga o te wa). Ka tohua e koe te timatanga o te ra/te mutunga o te ra, a koinei te wehewehenga. Na reira, ki te tono koe mo nga raraunga e rua nga ra o te tawhito, ka tere ake te tango i nga mea katoa mai i te paataka korero, na te mea me utaina e koe tetahi konae ki roto i te keteroki ka whakahoki mai (kaore i te tepu nui).

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

He maha nga papaa raraunga ka tere ake te whakauru (whakauru ki te tepu tamariki kotahi). Kei te korero mokemoke ahau mo tenei wa, engari ka taea ano tenei. He maha nga wa ka awhina te wehewehe.

Elasticsearch mo te NoSQL

I tata nei, i te 3.4, i whakatinanahia e matou he otinga NoSQL. Kua taapirihia te kaha ki te tuhi i roto i te Elasticsearch. Ka taea e koe te tuhi i etahi momo: ka tohua e koe - tuhia nga nama, etahi tohu ranei; he kuputuhi aho, ka taea e koe te tuhi i nga raarangi ki Elasticsearch... Na reira, ka uru ano te atanga tukutuku ki te Elasticsearch. He pai tenei mahi i etahi wa, engari i tenei wa ka taea te whakamahi.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

TimescaleDB. Tepuitua

Mo te 4.4.2 i aro atu matou ki tetahi mea penei i te TimescaleDB. He aha tena? He toronga tenei mo PostgreSQL, ara, he atanga PostgreSQL taketake. Ano, ma tenei toronga ka taea e koe te mahi pai ake me nga raraunga raupapa-waahi me te wehewehe aunoa. He aha te ahua:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

He maataipera tenei - he ahua penei kei te Timescale. He ripanga taapiri tenei ka waihangahia e koe, a kei roto he mokamoka. Ko nga tiihi he wehewehe, he teepu tamariki enei, mena kare au i pohehe. He tino whai hua.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

TimescaleDB me PostgreSQL

E ai ki nga kaihanga o TimescaleDB, ka whakamahi ratou i te algorithm tika ake mo te tukatuka i nga patai, inaa ko nga whakaurunga, e taea ai e ratou te mahi i nga wa katoa me te nui ake o te rahi o te whakauru raraunga. Arā, i muri i te 200 miriona nga rarangi o nga Postgres, ka tiimata te tiimata ka ngaro te mahi ki te kore, ma te Timescale ka taea e koe te whakauru i nga whakaurunga kia rite ki te kaha me te nui o nga raraunga.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Me pehea te whakauru i te TimescaleDB? He ngawari noa!

Kei roto i nga tuhinga, kua whakaahuahia - ka taea e koe te whakauru mai i nga kohinga mo tetahi ... Kei runga i nga kohinga Postgres mana. Ka taea te whakahiato ā-ringa. Ko te tikanga me whakahiato e au mo te putunga raraunga.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

I runga i te Zabbix ka whakahohe noa matou i te Toronga. Ki taku whakaaro ko te hunga i whakamahi i te Extention i Postgres... Ka whakahohe noa koe i te Extention, hangahia mo te putunga raraunga Zabbix e whakamahia ana e koe.

Na te taahiraa whakamutunga ...

TimescaleDB. Te hekenga o nga ripanga hitori

Me hanga e koe he ripanga taapiri. He mahi motuhake mo tenei - Waihangahia te riipene. I roto, ko te tawhā tuatahi ko te ripanga e hiahiatia ana i roto i tenei putunga raraunga (e hiahia ana koe ki te hanga i tetahi taapapa).

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te mara hei waihanga, me te chunk_time_interval (koinei te waahi o nga wahanga (he wehewehenga me whakamahi) 86 he ra kotahi.

Tawhā Migrate_data: Mēnā ka kōkuhu koe ki te pono, ka nukuhia ngā raraunga onāianei katoa ki ngā mongamonga i hanga-mua.

Kua whakamahia e au te migrate_data - he wa tika, i runga i te nui o to papaunga raraunga. Neke atu i te terabyte - neke atu i te kotahi haora te roa o te hanga. I etahi wa, i te wa o te whakamatautau, ka mukua e ahau nga raraunga o mua mo te tuhinga (history_text) me te aho (history_str) kia kore ai e whakawhiti - kaore i tino pai ki a au.

Na ka mahia e matou te whakahou whakamutunga i roto i ta maatau db_extention: ka whakauruhia e matou te timescaledb kia mohio ai te papaaarangi me to maatau Zabbix kei reira te db_extention. Ka whakahohehia e ia, ka whakamahi i te wetereo tika me nga patai ki te paataka, ma te whakamahi i aua "ahuatanga" e tika ana mo te TimescaleDB.

whirihoranga tūmau

I whakamahia e ahau nga kaitoro e rua. Ko te tūmau tuatahi he mihini mariko iti, 20 pūtukatuka, 16 gigabytes RAM. I whirihorahia e ahau te Postgres 10.8 ki runga:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te punaha whakahaere ko Debian, ko te punaha konae he xfs. He iti noa nga tautuhinga i mahia e au hei whakamahi i tenei paataka korero, haunga nga mea ka whakamahia e Zabbix. I runga i te miihini ano he tūmau Zabbix, PostgreSQL me nga kaihoko kawenga.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Kua whakamahia e ahau nga kaihoko kaha e 50 e whakamahi ana i te LoadableModule ki te whakaputa tere i nga hua rereke. Na ratou i hanga nga aho, nga nama, me era atu. I whakakīia e ahau te pātengi raraunga ki te maha o nga raraunga. I te timatanga, he 5 mano nga huānga raraunga kei roto i te whirihoranga mo ia kaihautu, me te tata ki ia huānga raraunga kei roto he keu - kia tika ai te whakarite. I etahi wa ka hiahia koe kia neke atu i te kotahi keu hei whakamahi.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

I whakahaeretia e ahau te waahi whakahou me te kawenga ake ma te whakamahi i nga kaihoko 50 anake (te taapiri atu), engari ma te whakamahi i nga huānga raraunga hihiri me te whakaheke i te waa whakahou ki te 4 hēkona.

Te whakamatautau mahi. PostgreSQL: 36 mano NVP

Ko te whakarewatanga tuatahi, ko te tatūnga tuatahi i mahia e au i runga i te PostreSQL 10 parakore i runga i tenei taputapu (35 mano uara ia rua). I te nuinga o te waa, ka kite koe i runga i te mata, ko te whakauru raraunga he hautau o te tuarua - he pai nga mea katoa me te tere, he puku SSD (200 gigabytes). Ko te mea anake ko te 20 GB ka whakakiia tere.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

He maha tonu nga kauwhata penei a muri ake nei. He papatohu mahi a te tūmau Zabbix paerewa tenei.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te kauwhata tuatahi ko te maha o nga uara mo ia hēkona (puru, runga maui), 35 mano uara i tenei keehi. Ko tenei (pokapū o runga) ko te utaina o nga tikanga hanga, ko tenei (te taha matau) ko te utaina o nga tikanga o roto: ko nga kaitoi hitori me te kaitiaki whare, i konei (pokapū o raro) kua roa e whakahaere ana.

Ko tenei kauwhata (pokapū o raro) e whakaatu ana i te whakamahi ValueCache - e hia nga WhiwhingaKei te patu mo nga keu (he maha nga mano uara mo ia hekona). Ko tetahi atu kauwhata nui ko te tuawha (ma te taha maui ki raro), e whakaatu ana i te whakamahinga o HistoryCache, i korerohia e au, he parepare i mua i te whakauru ki roto i te paataka.

Te whakamatautau mahi. PostgreSQL: 50 mano NVP

I muri mai, ka whakanuia e ahau te kawenga ki te 50 mano nga uara mo ia hekona i runga i te taputapu kotahi. I te utaina e te Kaitiaki Whare, 10 mano nga uara i tuhia i roto i te 2-3 hēkona me te tatauranga. He aha te mea e whakaatuhia ana i te whakaahua e whai ake nei:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te "Kaiwhakahaere Whare" kua timata ki te pokanoa ki nga mahi, engari i te nuinga o te waa, kei te 60% tonu te taumahatanga ki runga i nga kaitapahi hitori-sinker (te kauwhata tuatoru, runga matau). Kua timata kee te whakakii i te HistoryCache i te wa e rere ana te Kaitiaki Whare (maui raro). Tata ki te haurua gigabyte, 20% ki tonu.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Te whakamatautau mahi. PostgreSQL: 80 mano NVP

Na ka whakanuia e ahau ki te 80 mano uara mo ia hēkona:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Tata ki te 400 mano nga huānga raraunga, 280 mano nga kaiwhaiwhai. Ko te whakaurunga, e kite ana koe, i runga i te taumahatanga o nga kaipatu hitori (he 30 o ratou) kua tino tiketike. Na ka whakanuia e ahau nga momo tawhā: nga totohu hitori, te keteroki... I runga i tenei taputapu, ka tiimata te piki haere o te uta ki runga i nga totohu hitori, tata "i runga i te papa" - na reira, ka eke te HistoryCache ki te kawenga tino nui:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

I tenei wa katoa i aro turuki ahau i nga tawhā punaha katoa (me pehea te whakamahi i te tukatuka, RAM) ka kitea he nui rawa te whakamahinga o te kōpae - I tutuki i ahau te kaha o tenei kōpae i runga i tenei taputapu, i runga i tenei miihini mariko. I timata a "Postgres" ki te tuku i nga raraunga i runga i te kaha o te kaha, a kua kore te kōpae i whai wa ki te tuhi, panui...

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

I tangohia e ahau tetahi atu tūmau kua 48 nga pūtukatuka me te 128 gigabytes o te RAM:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

I "whakatangihia" ano e ahau - i whakauruhia te hitori tukutahi (60 nga waahanga) ka tutuki i nga mahi pai. Ko te mea pono, kaore matou i te "i runga i te papa," engari koinei pea te rohe o te hua, kei reira kua tika ki te mahi i tetahi mea.

Te whakamatautau mahi. TimescaleDB: 80 mano NVPs

Ko taku mahi nui ko te whakamahi i te TimescaleDB. Ka whakaatuhia e ia kauwhata he ruku:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko enei rahunga ko te hekenga raraunga tika. I muri i tera, i roto i te tūmau Zabbix, he nui te whakarereketanga o te kotaha o nga kaipatu hitori, ka kite koe. Ka taea e koe te whakauru raraunga tata ki te 3 nga wa tere ake ka iti ake te whakamahi HistoryCache - na reira, ka tukuna nga raraunga i te waa. Ano, 80 mano nga uara mo ia hekona he reeti tino nui (ko te tikanga, ehara mo Yandex). I te katoa he tatūnga tino nui tenei, me te tūmau kotahi.

PostgreSQL whakamātautau mahi: 120 mano NVPs

I muri mai, i whakanuia e ahau te uara o te maha o nga huānga raraunga ki te haurua miriona ka whiwhi i te uara tatau mo te 125 mano ia hekona:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Na ka whiwhi au i enei kauwhata:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko te tikanga, he mahinga mahi tenei, ka taea te mahi mo te wa roa. Engari i te mea he kōpae terabyte 1,5 noa taku, ka whakamahia e au i roto i nga ra e rua. Ko te mea tino nui ko te wa ano i hangaia nga waahanga hou i runga i te TimescaleDB, a kaore i tino kitea mo te mahi, kaore e taea te korero mo MySQL.

Ko te tikanga, ka hangaia nga wehewehenga i te po, na te mea ka aukati tenei i te whakaurunga me te mahi tahi me nga teepu ka taea te kino o te ratonga. I tenei keehi ehara tenei i te keehi! Ko te mahi matua ko te whakamatautau i nga kaha o TimescaleDB. Ko te hua ko te ahua e whai ake nei: 120 mano uara mo ia hēkona.

He tauira ano kei roto i te hapori:

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

I whakahurihia ano e te tangata te TimescaleDB me te uta i runga i te whakamahi io.weight i heke ki runga i te tukatuka; me te whakamahi i nga huānga tukanga o roto kua heke ano na te whakaurunga o TimescaleDB. Ano, he kopae panekeke noa enei, ara, he miihini mariko noa i runga i nga kopae noa (ehara i nga SSD)!

Mo etahi tatūnga iti e whakawhāitihia ana e te mahinga kōpae, ko TimescaleDB, ki taku whakaaro, he otinga tino pai. Ka taea e koe te mahi tonu i mua i te hekenga ki nga taputapu tere ake mo te papaunga raraunga.

Ka tono ahau ki a koutou katoa ki a maatau huihuinga: Huihuinga i Moscow, Huihuinga i Riga. Whakamahia a maatau hongere - Telegram, huinga, IRC. Mena kei a koe etahi patai, haere mai ki ta maatau tepu, ka taea e taatau te korero mo nga mea katoa.

Nga patai a te hunga whakarongo

He patai a te hunga whakarongo (i muri mai - A): - Mena he ngawari te whirihora a TimescaleDB, a ka whakanuia te mahi, katahi pea ka whakamahia tenei hei mahi pai mo te whirihora i a Zabbix me Postgres? A kei reira etahi mahanga me nga huakore o tenei otinga, i muri i nga mea katoa, ki te whakatau ahau ki te hanga Zabbix mo ahau, ka taea e au te tango i nga Postgres, te whakauru i te Timescale i reira tonu, whakamahia me te kore e whakaaro mo nga raruraru ?

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

AG: - Ae, ka kii ahau he korero pai tenei: whakamahia nga Postgres me te toronga TimescaleDB. Ka rite ki taku korero, he maha nga arotake pai, ahakoa ko tenei "ahuatanga" he whakamatautau. Engari ko nga whakamatautau e whakaatu ana he otinga pai tenei (me te TimescaleDB) a ki taku whakaaro ka whanake! Kei te aro turuki matou me pehea te whakawhanaketanga o tenei toronga me te whakarereke ina hiahiatia.

Ahakoa i te wa o te whakawhanaketanga, i whakawhirinaki matou ki tetahi o o raatau "ahuatanga" rongonui: ka taea te mahi me nga waahanga he rereke rereke. Engari ka tapahia e ratou i roto i te tukunga e whai ake nei, me mutu taatau ki te whakawhirinaki ki tenei waehere. Ka tūtohu ahau ki te whakamahi i tenei otinga i runga i nga huinga maha. Mena ka whakamahi koe i MySQL... Mo nga tatūnga toharite, he pai te mahi o tetahi otinga.

A: – I nga kauwhata whakamutunga mai i te hapori, he kauwhata me te "Kaiwhakahaere Whare":

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

I mahi tonu ia. He aha te mahi a Housekeeper ki a TimescaleDB?

AG: - Inaianei kaore e taea e au te kii - Ka titiro ahau ki te waehere ka korero atu ki a koe i nga korero taipitopito. Ka whakamahia nga patai a TimescaleDB kia kaua e whakakore i nga wahanga, engari ki te whakahiato. Kaore ano au kia rite ki te whakautu i tenei patai hangarau. Ka kitea etahi atu korero i te tuunga i tenei ra, apopo ranei.

A: – He rite ano taku patai – mo te mahinga o te mahi whakakore i te Timescale.
A (whakautu mai i te hunga whakarongo): – Ka mukua e koe nga raraunga mai i te ripanga, mena ka mahia e koe ma te whakakore, katahi ka haere koe ma te teepu - muku, horoi, tohuhia nga mea katoa mo te waatea a meake nei. I roto i te Timescale, i te mea kei a koe nga tiihi, ka taea e koe te taka. Ko te korero, ka kii noa koe ki te konae kei roto i nga raraunga nui: "Mukua!"

Kei te mohio noa a Timescale kua kore taua wahanga. A, i te mea kua whakauruhia ki roto i te mahere uiui, ka whakamahi matau ki te hopu i o tikanga i roto i nga mahi whiriwhiri, i etahi atu mahi ranei, me te mohio tonu kua kore tenei waahanga - "Kaore au e haere ki reira!" (karekau he raraunga i te waatea). Heoi ano! Arā, ka whakakapihia te karapa tepu ki te mukunga konae-rua, no reira he tere.

A: – Kua pa ki te kaupapa mo te kore-SQL. Ki taku mohio, kaore e tino hiahia a Zabbix ki te whakarereke i nga raraunga, a ko enei mea katoa he rite ki te poro. Ka taea te whakamahi i nga papaaarangi motuhake e kore e taea te whakarereke i o raatau raraunga, engari i te wa ano ka penapena, ka whakaemi, ka tohatoha tere atu - Clickhouse, hei tauira, he ahua Kafka? Ka taea pea te whakakotahi i a raatau?

AG: - Ka taea te tango. Kei a matou tetahi "ahuatanga" mai i te putanga 3.4: ka taea e koe te tuhi i nga konae hitori katoa, nga huihuinga, nga mea katoa ki nga konae; katahi ka tukuna atu ki etahi atu putunga ma te whakamahi i tetahi kaihautu. Inaa, he maha nga tangata e mahi ano ana, e tuhi tika ana ki te paataka raraunga. I runga i te rere, ka tuhia e te hunga totohu hitori enei mea katoa ki roto i nga konae, hurihia enei konae, me etahi atu, ka taea e koe te whakawhiti i tenei ki Clickhouse. Kaore e taea e au te korero mo nga mahere, engari ka kaha tonu te tautoko mo nga otinga NoSQL (penei i a Clickhouse).

A: - I te nuinga o te waa, ka puta mai ka taea e koe te whakakore i nga postgres?

AG: - Ae ra, ko te waahanga tino uaua i roto i te Zabbix ko nga ripanga o mua, e hanga ana i nga raru nui me nga huihuinga. I tenei keehi, ki te kore koe e penapena i nga huihuinga mo te wa roa me te penapena i nga hitori me nga ahuatanga i etahi atu rokiroki tere, na i te nuinga o te waa, ki taku whakaaro, kaore he raru.

A: – Ka taea e koe te whakatau i te tere o nga mahi katoa mena ka huri koe ki Clickhouse, hei tauira?

AG: - Kaore au i whakamatau. Ki taku whakaaro ko te iti rawa o nga nama ka taea te whakatutuki noa, na te mea kei a Clickhouse tana ake atanga, engari kaore e taea e au te kii. He pai ake te whakamatautau. Ka whakawhirinaki katoa ki te whirihoranga: e hia nga kaihautu kei a koe, me etahi atu. Ko te whakauru he mea kotahi, engari me tiki ano e koe enei raraunga - Grafana, tetahi atu mea ranei.

A: – Na e korero ana matou mo te whawhai rite, kaua mo te painga nui o enei putunga tere?

AG: – Ki taku whakaaro ka whakauru tatou, ka nui ake nga whakamatautau.

A: – I haere ki hea a RRD tawhito pai? He aha koe i huri ai ki nga papaa raraunga SQL? I te tuatahi, i kohia nga inenga katoa i runga i te RRD.

AG: – He RRD a Zabbix, tera pea i roto i te putanga tawhito. He putunga raraunga SQL tonu - he huarahi matarohia. Ko te huarahi matarohia ko MySQL, PostgreSQL (kua roa rawa e noho ana). Tata kore rawa matou i whakamahi i tetahi atanga noa mo nga papaa raraunga SQL me RRD.

HighLoad++, Andrey Gushchin (Zabbix): mahi teitei me te wehewehenga tangata whenua

Ko etahi panui 🙂

Mauruuru koe mo te noho ki a matou. He pai ki a koe a maatau tuhinga? Kei te hiahia koe ki te kite i etahi atu mea whakamere? Tautokohia matou ma te tuku ota me te tuku korero ki o hoa, kapua VPS mo nga kaihanga mai i te $4.99, he tairitenga ahurei o nga kaitoro taumata-urunga, na matou i hanga mo koe: Ko te pono katoa mo VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mai i te $19 me pehea ranei te tiri i tetahi tūmau? (e waatea ana me te RAID1 me te RAID10, tae atu ki te 24 matua me te 40GB DDR4).

Dell R730xd 2x iti ake i te pokapū raraunga Equinix Tier IV i Amsterdam? Anei i konei 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mai i te $199 i roto i te Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mai i te $99! Pānuihia mo Me pehea te hanga hanganga corp. akomanga ki te whakamahi o Dell R730xd E5-2650 v4 tūmau utu 9000 euros mo te pene?

Source: will.com

Tāpiri i te kōrero