Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم

نظرة عامة

تُعدّ ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم آلية تخزين مؤقت جديدة تتيح تخزين البيانات في الذاكرة داخل العملية بدلًا من الاعتماد على ذاكرة التخزين المؤقت لصفحات نظام التشغيل.

يوفّر ClickHouse بالفعل ذاكرة التخزين المؤقت لنظام الملفات بوصفها وسيلة للتخزين المؤقت فوق تخزين الكائنات البعيد مثل Amazon S3 وGoogle Cloud Storage (GCS) أو Azure Blob Storage. وقد صُمّمت ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم لتسريع الوصول إلى البيانات البعيدة عندما لا يكون التخزين المؤقت المعتاد في نظام التشغيل كافيًا.

وتختلف عن ذاكرة التخزين المؤقت لنظام الملفات في الجوانب التالية:

ذاكرة التخزين المؤقت لنظام الملفات ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم
تكتب البيانات إلى نظام الملفات المحلي توجد في الذاكرة فقط
تستهلك مساحة على القرص (ويمكن أيضًا تهيئتها على tmpfs) مستقلة عن نظام الملفات
تبقى بعد إعادة تشغيل الخادم لا تبقى بعد إعادة تشغيل الخادم
لا تظهر في استخدام ذاكرة الخادم تظهر في استخدام ذاكرة الخادم
مناسبة لكلٍ من التخزين على القرص وداخل الذاكرة (ذاكرة التخزين المؤقت لصفحات نظام التشغيل) مناسبة للخوادم من دون أقراص

إعدادات التهيئة والاستخدام

الاستخدام

لتمكين ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم، اضبطها أولًا على الخادم:

cat config.d/page_cache.yaml
page_cache_max_size: 100G

بعد ذلك، فعّل استخدامها على مستوى الاستعلام:

SET use_page_cache_for_disks_without_file_cache=1;

الإعدادات

Setting Description Default
use_page_cache_for_disks_without_file_cache استخدم ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم للأقراص البعيدة التي لم تُفعَّل لها ذاكرة التخزين المؤقت لنظام الملفات. 0
use_page_cache_with_distributed_cache استخدم ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم عند استخدام ذاكرة التخزين المؤقت الموزعة. 0
read_from_page_cache_if_exists_otherwise_bypass_cache استخدم ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم في الوضع السلبي، على غرار read_from_filesystem_cache_if_exists_otherwise_bypass_cache. 0
page_cache_inject_eviction ستُبطِل ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم أحيانًا بعض الصفحات عشوائيًا. وهذا مخصّص للاختبار. 0
page_cache_block_size حجم أجزاء الملف التي ستُخزَّن في ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم، بالبايت. ستُقرَّب جميع عمليات القراءة التي تمر عبر ذاكرة التخزين المؤقت إلى أقرب مضاعف لهذا الحجم. 1048576
page_cache_history_window_ms مدة التأخير قبل أن تتمكن ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم من استخدام الذاكرة المُحرَّرة. 1000
page_cache_policy اسم سياسة ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم. SLRU
page_cache_size_ratio حجم الطابور المحمي في ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم نسبةً إلى الحجم الإجمالي لذاكرة التخزين المؤقت. 0.5
page_cache_min_size الحد الأدنى لحجم ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم. 104857600
page_cache_max_size الحد الأقصى لحجم ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم. اضبطه على 0 لتعطيل ذاكرة التخزين المؤقت. إذا كانت القيمة أكبر من page_cache_min_size، فسيُعدَّل حجم ذاكرة التخزين المؤقت باستمرار ضمن هذا النطاق لاستخدام معظم الذاكرة المتاحة مع إبقاء إجمالي استخدام الذاكرة دون الحد (max_server_memory_usage[_to_ram_ratio]). 0
page_cache_free_memory_ratio النسبة من حد الذاكرة التي يجب إبقاؤها خالية من ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم. وهي مماثلة لإعداد Linux ‏min_free_kbytes. 0.15
page_cache_lookahead_blocks عند تعذّر العثور على البيانات في ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم، اقرأ حتى هذا العدد من الكتل المتتالية دفعةً واحدة من التخزين الأساسي، إذا لم تكن موجودة أيضًا في ذاكرة التخزين المؤقت. حجم كل كتلة هو page_cache_block_size بايت. 16
page_cache_shards قسِّم ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم إلى هذا العدد من الأجزاء لتقليل التنازع على mutex. هذه ميزة تجريبية، ومن غير المرجّح أن تحسّن الأداء. 4
Navigation