כמות חיבורים בו זמנית MySQL על אבונטו VPS (ב AWS)
-
הפעלתי קמפיין שהיו לי מאות שיחות בו זמנית (ימות המשיח באמצעות שלוחת API) .
בסופו של דבר הmysql סגר את עצמו לעשר דקות (לא קריסה של השרת הCPU בקושי גירד 20 %).
סיבת הדבר הוא ככל הנראה בכמות החיבורים האפשרי בו זמנית.
כבר מזמן עשיתי חיפוש בנושא והגדרתי בקובץ mysqld.cnf אתmax_connections = 2500 open_files_limit = 2048
מה שמוזר לי ביותר שכאשר אני בודק את SHOW FULL PROCESSLIST אני לא רואה יותר מאחד, שזה של השאילתה עצמה של הבדיקה...
(כאשר אני פותח תוכנה של ניהול MYSQL אני כן רואה עוד 2/3 חיבורים, אבל תו לא).
למעשה לא מזמן עשיתי שינוי במחלקה שלי להתחברות לMYSQL והגדרתי שעל כל שאילתה החיבור ייסגר מידית, ואפילו אם יהיו כמה שאילתות בסקריפט (PHP) אחד, זה ייפתח ויסגר על כל שאילתה. כך המליצו לי, (הייתי צריך את זה בגלל סקריפטים שניגשים למקורות חיצוניים שיכולים להתמשך זמן מה, שלא יהיה חיבור פתוח סתם, ולא יעבור את המקסימום המתנה).
מצד שני בסטיסטיקות אני כן רואה שישנם הרבה חיבורים בו זמנית, (Max. concurrent connections 64) .
השאלה היא איך אני יכול לראות בצורה אחרת את כמות החיבורים בו זמנית?
ומה עוד אני יכול לעשות להגדיל את המקסימום?
תודה -
@dovid אמר בכמות חיבורים בו זמנית MySQL על אבונטו VPS (ב AWS):
בסופו של דבר הmysql סגר את עצמו לעשר דקות
איך זה התבטא? מה הייתה הודעת השגיאה המדוייקת?
הפלט בסקריפט PHP שנכשל היה
PDOStatement::execute(): MySQL server has gone away
וכאשר ניסיתי להכנס לניהול דרך PHPmyadmin או דרך adminer קיבלתי הודעה שגיאה באנגלית משהו של אין גישה/ לא נמצא קובץ משאבים.
לא זכרתי להעתיק את הנוסח המדוייק שנכתב. -
@חוקר אמר בכמות חיבורים בו זמנית MySQL על אבונטו VPS (ב AWS):
MySQL server has gone away
https://dev.mysql.com/doc/refman/8.0/en/gone-away.html
הפתרון לפי מה שאני קורא ברפרוף זה הגדלת הערכים האלו:
wait_timeout
max_allowed_packetאבל בברירת מחדל עריכיהם ענקיים כך שאני מתפלא. יש בטבלאות שדות של בתים (BLOB)?
-
@dovid אמר בכמות חיבורים בו זמנית MySQL על אבונטו VPS (ב AWS):
@חוקר אמר בכמות חיבורים בו זמנית MySQL על אבונטו VPS (ב AWS):
MySQL server has gone away
https://dev.mysql.com/doc/refman/8.0/en/gone-away.html
הפתרון לפי מה שאני קורא ברפרוף זה הגדלת הערכים האלו:
wait_timeout
max_allowed_packetאבל בברירת מחדל עריכיהם ענקיים כך שאני מתפלא. יש בטבלאות שדות של בתים (BLOB)?
max_allowed_packet = 16M
לא נראה לי שיש צורך ביותר, כי בשעה שלימה הוא בקושי מגיע ל 50 מגה.
לא הבנתי את המשפט האחרון
-
ב"ה
בהמשך להנ"ל כעת הפעלתי קמפיין והשרת SQL שוב סגר את עצמו, זו ההודעה כאשר ניסיתי להיכנס לניהול דרך PHPMYADMIN
#2002 - No such file or directory<br />The server is not responding (or the local server's socket is not correctly configured). Connection for controluser as defined in your configuration failed.
את משתני המערכת הורדתי לאקסל המצ"ב
למעשה ייתכן שזה כן בעיה בCPU ועלי לשדרג את השרת, מצ"ב תמונת מנהל משימות
תודה לעונים.
0_1540751203802_ערכים בעת עומס.xlsx