it-swarm.asia

ضبط تلقائي لقيم الخلية

لقد قمت بتعيين اتصالات قصوى إلى حوالي 2000 في ملف my.cnf.

max_connections=2048

لقد قمت بالترقية إلى 5.5.20 والآن أرى السطر التالي في سجل الأخطاء.

120201 19:40:24 [Warning] Changed limits: max_open_files: 1024  max_connections: 214  table_cache: 400

لماذا قام mysql بتغيير قيمة الاتصالات القصوى إلى 214؟

# mysqladmin variables | grep max_connections
| max_connections | 214                                               

الملفات المفتوحة والثابتة المقيدة بنظام التشغيل هي 1024

# ulimit -Sa | grep "open files"
open files                      (-n) 1024

# ulimit -Ha | grep "open files"
open files                      (-n) 1024

عدد الاتصالات القصوى المستخدمة بالفعل:

# mysql -e"show status like '%used_connections%'"
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 95     |
+----------------------+-------+
11
shantanuo

يبدو موافق بالنسبة لي. لا يمكن أن يكون لديك اتصالات max_connect أكبر من ذلك ، لأن open_files_limit منخفض جدًا. لكل اتصال يفتح MySQL عدة ملفات. نلقي نظرة هنا .

لذلك ، سيكون عليك زيادة حد الملفات المفتوحة على نظام التشغيل الخاص بك ، وبعد ذلك ، يمكنك وضع قيمة أعلى من max_connections.

6
Aleksandar Vucetic

يبدو أن هذه هي نفس المشكلة التي أجبت عنها في stackoverflow هنا ، على الرغم من أنني كنت أستخدم CentOS 7 و MySQL 5.6.26

تحتاج إلى رفع الحد الأقصى لملفاتك المفتوحة لكل من مستخدم mysql (في limits.conf) ولخدمة mysql (في ملف mysql.service)

قم بإلحاق هذين الخطين إلى /etc/security/limits.conf

mysql hard nofile 65535
mysql soft nofile 65535

ألحق هذا الخط بـ /usr/lib/systemd/system/mysqld.service (في قسم [الخدمة])

LimitNOFILE=65535

ثم أخيرًا إعادة التشغيل وتحقق من اختفاء رسائل الخطأ هذه من سجل أخطاء mysql.

5
MNB

يبدو أن هذا خطأ في الخلية الجديدة. كان لي نفس المشكلة. تم تعيين max_connections على 700 ، ولكن إذا قمت بتعيينه على 900 ، فسيتم إعادة تعيينه إلى 214 أثناء بدء التشغيل. إذا كان هذا تغييرًا هادفًا ، لكان قد خفضه إلى 700 أو شيء مشابه ، فإن القيمة 214 لا معنى لها.
على أي حال ، رفع حد الواصف باستخدام ulimit -n يعمل على إصلاح المشكلة.

0
Bart K