الانتقال إلى المحتوى الرئيسي

نظرة عامة

تُعدّ ذاكرة التخزين المؤقت للصفحات في فضاء المستخدم آلية تخزين مؤقت جديدة تتيح تخزين البيانات في الذاكرة داخل العملية بدلًا من الاعتماد على ذاكرة التخزين المؤقت لصفحات نظام التشغيل.
يوفّر 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;

الإعدادات

SettingDescriptionDefault
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
آخر تعديل في ٢٥ يونيو ٢٠٢٦