Hacker News

Се қабати кэш байни интихоб ва диск

Се қабати кэш байни интихоб ва диск Ин иктишоф ба се ҷиҳат дохил шуда, аҳамият ва таъсири эҳтимолии онро меомӯзад. Консепсияҳои асосӣ фаро гирифта шудаанд Ин мундариҷа таҳқиқ мекунад: Принсипҳо ва назарияҳои асосӣ Амалия...

1 min read Via frn.sh

Mewayz Team

Editorial Team

Hacker News

Вақте ки аризаи шумо изҳороти SELECT-ро оташ мезанад, он дархост қариб ҳеҷ гоҳ ба диски чархзананда ё ҳатто нигаҳдории флеши хом дахл намекунад - он аз се қабати кэш мегузарад, ки бесадо муайян мекунанд, ки посухи шумо дар микросонияҳо ё миллисонияҳо мерасад. Фаҳмидани ин қабатҳо фарқи байни платформаи тиҷорӣ мебошад, ки ба осонӣ васеъ мешавад ва платформае, ки дар зери бори воқеии ҷаҳонӣ баста мешавад.

Лаҳзае, ки дархости SELECT аризаи шуморо тарк мекунад, чӣ мешавад?

Ҳангоме ки барномаи шумо дархости SELECT мефиристад, он ба қубуре ворид мешавад, ки аксари таҳиягарон ҳеҷ гоҳ тафтиш намекунанд. Муҳаррики пойгоҳи додаҳо дархостро пеш аз ба амал омадани ҳама гуна воридот/барорӣ боздошта, SQL-ро ба нақшаи иҷрои дохилӣ таҳлил мекунад ва фавран ба хатти аввалини муҳофизати он машварат медиҳад: кэши натиҷаи дархост. Агар дархости якхела бо параметрҳои якхела ба наздикӣ иҷро шуда бошад, муҳаррик метавонад маҷмӯи натиҷаи кэшшударо бе ламс кардани як саҳифаи маълумот баргардонад. Инро баъзан кэши дархост ё кэши натиҷаҳо меноманд ва дар сарбории кории баландхонда ва камнавишт - ба монанди панелҳои таҳлилӣ ва модулҳои гузоришдиҳӣ - он метавонад қисми зиёди хондани дискҳоро комилан нест кунад.

Фандиши муҳим дар ин ҷо ин аст, ки кэши дархост ба мутатсияҳои додаҳо хеле ҳассос аст. Ҳама гуна INSERT, UPDATE ё DELETE дар муқобили ҷадвали асосӣ натиҷаҳои кэшшудаи мувофиқро бекор мекунад. Аз ин рӯ, системаҳои транзаксионии вазнини навиштан аксар вақт кэши дархостро комилан ғайрифаъол мекунанд ва ба ҷои он ба қабатҳои амиқтар такя мекунанд.

Ҳавзи буферӣ чист ва чаро он аз он ки шумо фикр мекунед, муҳимтар аст?

Қабати дуюми кэш - ва эҳтимолан муҳимтарин дар системаҳои истеҳсолӣ - ин ҳавзи буферӣ мебошад (буфери муштарак дар PostgreSQL, ҳавзи буферии InnoDB дар MySQL номида мешавад). Ин як минтақаи RAM аст, ки муҳаррики пойгоҳи додаҳо барои нигоҳ доштани саҳифаҳои маълумоти ба наздикӣ дастрасшуда истифода мебарад. Вақте ки дархостро аз кэши натиҷаҳо иҷро кардан ғайриимкон аст, муҳаррик пеш аз додани ягон диски хонданро тафтиш мекунад, ки оё саҳифаҳои маълумоти лозимӣ аллакай дар ҳавзи буферӣ ҷойгиранд ё не.

Ҳавзи буферӣ аз рӯи принсипи маҳалли ҷойгиршавии муваққатӣ ва фазоӣ кор мекунад: эҳтимол ба маълумоте, ки ба наздикӣ дастрас шудааст, дубора дастрас карда мешавад ва маълумоти дар наздикии маълумоти дастрас нигоҳ дошташуда эҳтимол ба зудӣ дастрас карда мешавад. Маъмурони пойгоҳи додаҳо андозаи ҳавзи буфериро ҳамчун яке аз қарорҳои конфигуратсияи баландтарин фишанги худ танзим мекунанд. Ҳавзи буферӣ, ки хеле хурд аст, боиси хориҷшавии доимии саҳифа мегардад ва падидаеро ба вуҷуд меорад, ки thrashing ном дорад, ки дар он система барои идоракунии пазмонҳои кэш нисбат ба иҷрои дархостҳо вақти бештар сарф мекунад.

Фаҳиши калидӣ: Дар аксари сарбориҳои кории OLTP, ҳавзи буферии калонҳаҷм маънои онро дорад, ки 95-99% тамоми хондани додаҳо аз RAM хизмат мекунанд. Маҷмӯи корӣ - зермаҷмӯи маълумоти шумо, ки дархостҳо воқеан зуд-зуд ламс мекунанд - аксар вақт аз андозаи умумии пойгоҳи додаҳо хеле хурдтар аст. Андозаи ҳавзи буферии шумо барои мувофиқ кардани маҷмӯаи кории шумо, на тамоми маҷмӯаи додаҳо, як амали танзимкунандаи баландтарин, ки шумо метавонед анҷом диҳед, мебошад.

Чӣ гуна кэши системаи оператсионӣ фосилаи байни RAM ва дискро пур мекунад?

Ҳатто вақте ки ҳавзи буферии пойгоҳи додаҳо гум мешавад, дархост ҳанӯз барои хондани диски ҳақиқӣ таъин нашудааст. Системаи оператсионии кэши саҳифа-ро нигоҳ медорад (инчунин кэши системаи файлӣ номида мешавад), як минтақаи RAM-и аз ҷониби ядро ​​идорашаванда, ки хондан ва навиштанро барои блоки дастгоҳҳо буфер мекунад. Вақте ки муҳаррики пойгоҳи дода саҳифаеро дархост мекунад, ки дар ҳавзи буферии он мавҷуд нест, ядрои ОС пеш аз додани фармони физикии вуруд/баҳо ба контроллери нигаҳдорӣ кэши саҳифаи худро тафтиш мекунад.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Ин қабати сеюм барои таҳиягарони барнома асосан ноаён аст, аммо барои системаҳое, ки ҳавзи буферии пойгоҳи додаҳо кам таъмин карда шудааст, хеле муҳим аст. Кэши саҳифаи OS дар тамоми равандҳо тақсим карда мешавад, аз ин рӯ он бо сервери замимаи шумо, сервери веб ва ҳама гуна нармафзори дигаре, ки дар ҳамон ҳост кор мекунанд, рақобат мекунад. Дар серверҳои бахшидашудаи махзани маълумот, ин рақобат ҳадди аққал аст ва кэши OS буфери дуюми имконро таъмин мекунад. Дар ҳостҳои муштарак ё контейнерҳое, ки маҳдудияти хотираи маҳдуд доранд, кэши OS аксар вақт барои кӯмак кардан хеле хурд аст.

Кадом қабати кэш барои пирӯзиҳои бештар дар амал масъул аст?

Дар системаҳои истеҳсолии воқеии ҷаҳон, ҳавзи буферӣ дар натиҷаи иҷроиш бо маржаи васеъ бартарӣ дорад. Ин аст, ки чаро ҳар як қабат дар ҳолатҳои истифода ба таври гуногун саҳм мегузорад:

  • Кэши натиҷаҳои пурсиш: Фоидаи баландтарин дар маҷмӯаҳои додаҳои вазнини хондан, асосан статикӣ — дархостҳои гузоришдиҳӣ, панелҳои кэшшуда, нуқтаҳои ниҳоии мундариҷаи ҷамъиятӣ. Бефоида дар ҷадвалҳои вазнин.
  • Павзи буферии махзани маълумот: Кори универсалӣ. Ҳар як сервери пойгоҳи додаҳои истеҳсолӣ бояд дар ин ҷо аввал танзим карда шавад. Ҳам намунаҳои дастрасии тасодуфӣ ва ҳам пайдарпайро самаранок идора мекунад.
  • Кэши саҳифаи OS: Ҳангоми хурд будани ҳавзи буферӣ шабакаи бехатариро таъмин мекунад. Инчунин ҳангоми сканкунии пайдарпайи ҷадвалҳои калон, ки дар акси ҳол саҳифаҳои гармро аз ҳавзи буферӣ хориҷ мекунанд, ба таври назаррас кӯмак мекунад.
  • Кэши контроллерҳои нигаҳдорӣ (қабати сахтафзор): Қабати чорум, ки аксар вақт нодида гирифта мешавад — NVMe SSDs ва контроллерҳои RAID кэшҳои навиштанро бо захираи батарея ё конденсатор нигоҳ медоранд. Ин устувориро бидуни қурбонии интиқоли навиштан аз ҳисоби таъхири fsync муҳофизат мекунад.
  • Кэши қабати замимаҳо (Redis, Memcached): Дар болои пойгоҳи додаҳо ҷойгир шуда, натиҷаҳои пурсишҳои силсилавӣ ё объектҳои ҳисобшударо кэш мекунанд, то ба ҳеҷ ваҷҳ ворид шудан ба махзани маълумотро пешгирӣ кунанд - беҳтарин платформаҳои бисёриҷораи SaaS, ки ба ҳазорон корбарони ҳамзамон хидмат мерасонанд.

Чӣ гуна платформаҳои муосири тиҷорат метавонанд аз меъмории кэш барои эътимоднокӣ дар миқёс истифода баранд?

Барои корхонаҳое, ки дар бисёр модулҳои функсионалӣ фаъолият мекунанд - CRM, идоракунии лоиҳа, тиҷорати электронӣ, таҳлил - меъмории кэш мустақиман мутобиқати платформаро бо афзоиши дастаҳо муайян мекунад. Платформаҳое, ки дар стратегияи хуби кэш сохта шудаанд, метавонанд ба даҳҳо ҳазор корбарони ҳамзамон бидуни хароҷоти мутаносиби инфрасохтор хидмат расонанд. Калиди тарҳрезии намунаҳои дастрасии додаҳост, ки ҳудуди кэшро эҳтиром мекунанд: хурд нигоҳ доштани маълумоти гарм ва намунаҳои дастрасиро пешгӯӣ кардан, истифодаи репликаҳои хондан барои тақсими сарбории буферӣ ва ҷойгир кардани кэши қабати барнома ба монанди Redis дар назди пойгоҳи додаҳо барои нуқтаҳое, ки маълумоти якхеларо ба чанд корбар ҳамзамон пешкаш мекунанд.

Мевейз маҳз бо ҳамин фалсафа меъморӣ шудааст. Бо 207 модули ҳамгирошудаи тиҷорӣ, ки беш аз 138 000 корбарро таъмин мекунанд, қабати додаҳои платформа тавре тарҳрезӣ шудааст, ки аксарияти мутолиаи хонданҳо аз кэш таъмин карда шаванд - вақти вокунишро зуд нигоҳ медорад ва хароҷоти инфрасохторро пешгӯӣ кардан мумкин аст, ки оё шумо дар нақшаи оғози $19/моҳа ё сатҳи касбии $49/моҳа кор мекунед.

Саволҳои зуд-зуд додашаванда

Оё хомӯш кардани кэши дархост ҳамеша иҷрои пойгоҳи додаҳоро беҳтар мекунад?

На ҳамеша, аммо барои сарбории кории вазнин одатан чунин мекунад. Кэши пурсиш барои нигоҳ доштани мувофиқат як мутекси глобалиро талаб мекунад, ки дар зери ҳамоҳангии баланд монеа мешавад. MySQL 8.0 бо ин сабаб кэши дархостро комилан хориҷ кард. PostgreSQL ҳеҷ гоҳ кэши дарунсохтро татбиқ накардааст, ки ба ҷои он ба ҳавзи буферӣ ва кэшкунии қабати барнома такя мекунад. Агар таносуби хондан ба навиштани шумо баланд бошад ва дархостҳои шумо хеле такроршаванда бошанд, кэши дархост метавонад фоидаи воқеӣ ба даст орад - дар акси ҳол, ин кӯшиши танзимро дар ҳавзи буферӣ сарф кунед.

Ман аз куҷо медонам, ки ҳавзи буферии ман дуруст андоза шудааст?

Таносуби зарбаи ҳавзи буферии худро назорат кунед: фоизи дархостҳои саҳифа аз ҳавз дар муқоиса бо онҳое, ки хондани дискро талаб мекунанд. Таносуби хит аз 95% дар сарбории кории OLTP як сигнал барои зиёд кардани андозаи ҳавз аст. Дар MySQL, SHOW ENGINE INNODB STATUS-ро пурсед ва ба суръати зарбаи ҳавзи буферӣ нигаред. Дар PostgreSQL, намуди pg_statio_user_tables блокҳои теппаеро, ки аз диск хонда мешаванд ва аз ҳавзи буферӣ хидмат мекунанд, фош мекунад. Ҳадаф кунед, ки тамоми маҷмӯаи кории худро нигоҳ доред, на маҷмӯи маълумоти пурраи шумо - резиденти дар RAM.

Муносибати байни қабатҳои кэш ва эътимоднокии SaaS-и бисёрсоҳавӣ чист?

Дар SaaS-и бисёрсоҳавӣ, қабатҳои кэш мушкилоти "ҳамсояи пурғавғо"-ро пешгирӣ мекунанд, ки дар он бори вазнини дархости як иҷорагир кори ҳамаи иҷорагиронро паст мекунад. Кэшкунии замимаи аз иҷорагир огоҳ бо беэътибор дар асоси TTL маълумоти гарм барои ҳар як иҷорагирро дар Redis нигоҳ медорад ва фишори ҳавзи буфериро аз ҳисобҳои калон ба таври назаррас коҳиш медиҳад. Якҷоякунии пайвастшавӣ дар сатҳи пойгоҳи додаҳо дар якҷоягӣ бо ҳавзи буферии гарм кафолат медиҳад, ки фаъолияти таркиш аз ягон ҳисоби ягона саҳифаҳои муштаракро аз кэш тоза намекунад ва боиси афзоиши таъхир дар платформа мегардад.


Қабатҳои кэш ночизҳои махзани маълумот нестанд - онҳо заминаи меъморӣ мебошанд, ки платформаҳоеро, ки дар миқёси зуд боқӣ мемонанд, аз онҳое, ки ба оташнишонии доимии инфрасохтор ниёз доранд, ҷудо мекунад. Агар шумо тиҷорате созед ё кор карда истода бошед, ки ба платформаи аллакай барои ин воқеият оптимизатсияшуда ниёз дорад, дар бораи Mewayz дар app.mewayz.com омӯзед — 207 модул, як платформаи ҳамоҳанг, ки барои иҷрои боэътимод аз корбари аввал то садҳазоруми шумо сохта шудааст.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Related Guide

HR Management Guide →

Manage your team effectively: employee profiles, leave management, payroll, and performance reviews.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime