هو ضبط innodb_buffer_pool_size هامة على Solaris ZFS ؟
سؤال
نحن تشغيل متوسطة الحجم (350GB) قاعدة البيانات مع بعض إلى حد كبير الجداول (بضع مئات من ملايين الصفوف ، 50GB) على كبيرة بدرجة معقولة الخادم (2 x quad-core Xeons, 24GB RAM, 2.5" 10k الأقراص في RAID10), و يتم الحصول على بعض بطيئة جدا إدراج (مثلا ، بسيطة إدراج صف واحد أخذ 90 ثانية!).
لدينا innodb_buffer_pool_size هو 400MB ، والتي عادة ما تكون منخفضة جدا لهذا النوع من الإعداد.ومع ذلك ، فإن موفر استضافة تنصح هذا لا يهم عند تشغيل ZFS.هل هو صحيح ؟
(أعتذر عن المنصب المزدوج على https://dba.stackexchange.com/questions/1975/is-tuning-the-innodb-buffer-pool-size-important-on-solaris-zfs, ولكن أنا لست متأكدا كم كبير من الجمهور هناك!)
المحلول
وأود أن لا تزال تعيين innodb_buffer_pool_size أعلى بكثير من أن 400 متر.السبب ؟ ك InnoDB تجمع المخزن المؤقت لا تزال ذاكرة التخزين المؤقت البيانات وصفحات الفهرس تحتاج الجداول الوصول إليها بشكل متكرر.
تشغيل هذا الاستعلام للحصول على الموصى innodb_buffer_pool_size في ميجا بايت:
SELECT CONCAT(الجولة(KBS/السلطة(1024 ، إذا(pw<0,0,إذا(pw>3,0,pw)))+0.49999),SUBSTR(' KMG' ، إذا(pw<0,0,إذا(pw>3,0,pw))+1,1)) recommended_innodb_buffer_pool_size من (SELECT SUM(data_length+index_length) KBS من information_schema.الجداول حيث المحرك='ك InnoDB') أ(اختر 2 pw) ب ؛
ببساطة استخدام إما نتيجة هذا الاستعلام أو 80% من ذاكرة الوصول العشوائي المثبتة (في حالة 19660M) أيهما أصغر.
وأود أيضا تعيين innodb_log_file_size إلى 25% من ك InnoDB تجمع المخزن المؤقت الحجم.للأسف القيمة القصوى من innodb_log_file_size هو 2047M.(1M قصيرة من 2G) وهكذا ، مجموعة innodb_log_file_size إلى 2047M منذ 25% من innodb_buffer_pool_size من recommendated الإعداد 4915M.
آخر recommedation هو تعطيل حمض الامتثال.استخدام إما 0 أو 2 innodb_flush_log_at_trx_commit (الافتراضي هو 1 التي تدعم حمض الامتثال) هذا وسوف تنتج أسرع ك InnoDB يكتب في خطر من فقدان ما يصل إلى 1 ثانية بقيمة المعاملات في حالة وقوع حادث.
نصائح أخرى
قد يستحق القراءة إدراجات بطيئة mysql إذا لم تكن قد لم تفعل ذلك بالفعل. أيضا هذا الرابط إلى مستندات mysql في هذه المسألة - خاصة فيما يتعلق بالنظر إلى معاملة إذا كنت تقوم بعمل إدراجات متعددة على طاولة كبيرة.
أكثر ملاءمة هو هذه المقالة MySQL حول أداء InnoDB و ZFS الذي تعتبر خصيصا حجم التجمع العازلة.