Hacker News

Тандоо менен дисктин ортосундагы үч кэш катмары

Тандоо менен дисктин ортосундагы үч кэш катмары Бул чалгындоо анын маанисин жана потенциалдуу таасирин изилдеп, үчкө бөлүнөт. Негизги түшүнүктөр камтылган Бул мазмун изилдейт: Негизги принциптер жана теориялар Практика...

1 min read Via frn.sh

Mewayz Team

Editorial Team

Hacker News

Колдонмоңуз SELECT билдирүүсүн иштеткенде, ал сурам дээрлик эч качан айлануучу дискке же алтургай чийки флеш сактагычка тийбейт — ал жоопуңуздун микросекундда же миллисекундда келерин унчукпай аныктаган үч башка кэш катмарынан өтөт. Бул катмарларды түшүнүү кыйынчылыксыз масштабдуу бизнес платформа менен реалдуу жүктөмдүн астында бүктөлгөн платформанын ортосундагы айырма болуп саналат.

ТАНДОО суроосу колдонмоңуздан чыгып кеткен учурда эмне болот?

Колдонмоңуз SELECT суроосун жөнөткөндө, ал көпчүлүк иштеп чыгуучулар эч качан текшербейт. Берилиштер базасы кыймылдаткычы суроо-талапты кандайдыр бир I/O пайда боло электе токтотуп, SQLди ички аткаруу планына талдап, дароо анын биринчи коргонуу сабы: суроонун натыйжасынын кэши менен кеңешет. Эгерде окшош параметрлери менен окшош суроо жакында аткарылса, кыймылдаткыч маалыматтын бир бетине тийбестен кэштелген натыйжалар топтомун кайтара алат. Бул кээде суроо кэши же натыйжа кэши деп аталат, ал эми жогорку окуу, аз жазуу иш жүктөмдөрүндө, мисалы, аналитика панелдери жана отчеттуулук модулдары - ал дисктин окууларынын басымдуу бөлүгүн толугу менен жок кыла алат.

Бул жерде маанилүү түшүнүк - сурам кэши берилиштердин мутацияларына өтө сезгич. Ар кандай INSERT, UPDATE же DELETE негизги таблицага каршы кэштелген тиешелүү натыйжаларды жокко чыгарат. Ошондуктан жазууну оор транзакция тутумдары көбүнчө сурам кэшин толугу менен өчүрүп, анын ордуна тереңирээк катмарларга таянышат.

Буфердик бассейн деген эмне жана ал эмне үчүн сиз ойлогондон да маанилүү?

Экинчи кэш катмары - жана өндүрүш системаларында эң маанилүүсү - бул буфердик пул (PostgreSQLде бөлүшүлгөн буфер, MySQLде InnoDB буфердик бассейни деп аталат). Бул маалымат базасы кыймылдаткычы жакында ачылган маалымат баракчаларын кармоо үчүн колдонгон оперативдик эс тутумдун аймагы. Натыйжа кэшинен суроону тейлөө мүмкүн болбогондо, кыймылдаткыч дисктин окуусун берүүдөн мурун талап кылынган маалымат барактары буфердик бассейнде мурунтан эле резидент экенин текшерет.

Буфердик бассейн убактылуу жана мейкиндик локалдуулук принцибинде иштейт: жакында алынган маалыматтарга кайра кирүү мүмкүн, ал эми жеткиликтүү берилиштерге жакын сакталган маалыматтар жакын арада жеткиликтүү болот. Берилиштер базасынын администраторлору буфердик пулдун өлчөмүн эң жогорку рычаг конфигурациялоо чечимдеринин бири катары тууралашат. Өтө кичине буфердик пул барактын үзгүлтүксүз чыгарылышын шарттайт, бул ташылуу деп аталган көрүнүштү жаратат, мында система сурамдарды аткарууга караганда кэштин жетишсиздигин башкарууга көбүрөөк убакыт коротот.

Негизги түшүнүк: Көпчүлүк OLTP жүктөөлөрүндө, жакшы өлчөмдүү буфердик пул бардык окуулардын 95–99% оперативдүү эс тутумдан тейленет дегенди билдирет. Жумушчу топтому - сурамдар чындыгында тез-тез тийип турган берилиштериңиздин топтому - көбүнчө маалымат базасынын жалпы көлөмүнөн алда канча кичине. Буфердик пулуңуздун өлчөмүн толугу менен дайындар топтомуңузга эмес, жумушчу топтомуңузга туура келтирүү - бул сиз жасай ала турган эң көп кайтарымдуу жөндөө аракети.

Операциондук системанын кэши 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 SSD жана RAID контроллерлору батареянын же конденсатордун резервдик көчүрмөсү менен борттогу жазуу кэштерин сакташат. Бул fsync күтүү убактысынын эсебинен жазуу өткөрүү жөндөмдүүлүгүн жоготпостон, туруктуулукту коргойт.
  • Колдонмонун катмарынын кэши (Redis, Memcached): Маалыматтар базасына такыр тийбеш үчүн серияланган сурамдардын натыйжаларын же эсептелген объекттерди кэштеп, маалымат базасынын үстүндө толугу менен отурат — миңдеген колдонуучуларды тейлеген көп ижарачы SaaS платформалары үчүн идеалдуу.

Заманбап бизнес платформалары масштабдагы ишенимдүүлүк үчүн кэш архитектурасын кантип колдоно алат?

Көптөгөн функционалдык модулдар боюнча иштеген бизнес үчүн - CRM, долбоорлорду башкаруу, электрондук коммерция, аналитика - кэш архитектурасы командалар өскөн сайын платформанын жооп берүү жөндөмдүүлүгүн түздөн-түз аныктайт. Жакшы катмарлуу кэш стратегиясына негизделген платформалар пропорционалдуу инфраструктуралык чыгымсыз он миңдеген колдонуучуларга кызмат кыла алат. Негизгиси кэш чектерин сыйлаган берилиштерге кирүү үлгүлөрүн иштеп чыгуу: ысык маалыматтарды кичинекей сактоо жана кирүү үлгүлөрүн алдын ала айтуу, буфердик пулдун жүгүн бөлүштүрүү үчүн окуу репликаларын колдонуу жана бир эле учурда бир нече колдонуучуларга бирдей маалыматтарды тейлеген акыркы чекиттер үчүн Redis сыяктуу тиркеме катмарынын кэшин маалымат базасынын алдында жайгаштыруу.

Mewayz дал ушул философияны эске алуу менен курулган. 138 000ден ашык колдонуучуну иштеткен 207 интеграцияланган бизнес модулу менен платформанын маалымат катмары окуулардын басымдуу көпчүлүгү кэштен аткарыла тургандай кылып жасалган — жооп берүү убакыттарын тез жана инфраструктуралык чыгымдарды айына $19 баштапкы планда же айына $49 профессионалдык деңгээлде иштеп жатасызбы, алдын ала айтууга болот.

Көп берилүүчү суроолор

Суроо кэшин өчүрүү дайыма маалымат базасынын иштешин жакшыртабы?

Дайыма эмес, бирок жазуу оор жүктөмдөр үчүн, адатта, ушундай болот. Суроолордун кэши ырааттуулукту сактоо үчүн глобалдык мутексти талап кылат, ал жогорку параллелдүүлүктө тоскоолдукка айланат. MySQL 8.0 ушул себептен сурам кэшин толугу менен алып салды. PostgreSQL эч качан орнотулган суроо кэшин ишке ашырган эмес, анын ордуна буфердик пулга жана тиркеме катмарынын кэшине таянган. Эгерде сиздин окуу-жазуу катышыңыз жогору болсо жана сурамдарыңыз өтө кайталанса, сурам кэши реалдуу пайда алып келет — антпесе, бул жөндөө аракетин буфердик бассейнге жумшаңыз.

Менин буфердик бассейнимдин өлчөмү туура экенин кантип билем?

Буфердик пулуңуздун хит катышына көз салыңыз: дискти окууну талап кылгандарга каршы бассейнден тейленген барак сурамдарынын пайызы. OLTP жумуш жүгү боюнча 95% дан төмөн сокку катышы бассейндин көлөмүн көбөйтүү үчүн сигнал болуп саналат. MySQLде SHOW ENGINE INNODB STATUS деп сураңыз жана буфердик пулдун соккусунун ылдамдыгын караңыз. PostgreSQLде pg_statio_user_tables көрүнүшү буфердик бассейнден тейленгенге каршы дисктен окулган үймөк блокторду көрсөтөт. Толук маалымат топтомуңузду эмес, бүт жумушчу топтомуңузду RAMда резиденттүү сактоону максат кылыңыз.

Кэш катмарлары менен көп ижарачылардын SaaS ишенимдүүлүгүнүн ортосунда кандай байланыш бар?

Көп ижарачылардын SaaS системасында кэш катмарлары бир ижарачынын оор суроо жүктөмү бардык башка ижарачылардын ишин начарлаткан "ызы-чуу кошуна" көйгөйлөрүн алдын алат. TTL негизинде жараксыз кылуу менен ижарачыга маалым болгон тиркемени кэштөө Редисте ар бир ижарачыга тиешелүү ысык маалыматтарды сактап, чоң эсептерден буфердик пулдун басымын кескин төмөндөтөт. Жылуу буфердик пул менен айкалышкан берилиштер базасынын деңгээлиндеги туташууну бириктирүү ар бир каттоо эсебинин жарылуу аракети бөлүшүлгөн баракчаларды кэштен тазалап, платформада күтүү мөөнөтүн жогорулатпасын камсыздайт.


Кэш катмарлары маалымат базасынын майда-чүйдөсүнө чейин эмес — алар инфраструктуранын туруктуу өрт өчүрүүнү талап кылган платформалардан масштабда ылдам турган платформаларды бөлүп турган архитектуралык негиз. Эгер сиз ушул реалдуулуктар үчүн оптималдаштырылган платформага муктаж болгон бизнести куруп же иштетип жатсаңыз, app.mewayz.com сайтынан Mewayz менен таанышыңыз — биринчи колдонуучуңуздан жүз миңге чейин ишенимдүү иштөө үчүн курулган 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