Speed up RT Shreeder / or why RT shredder is so slow

לקראת שדרוג התשתיות אצלנו במשרד, החלטתי לשדרג את RT, מערכת הכרטיסים הישנה שלנו (או בשמה המלא Request Tracker )  , ואחד הדברים שרציתי זה לנקות כרטיסים ישנים וזבל מיותר שקיים במערכת (בעיקר הודעות SPAM שלא נתפסו וכ”ד).

על פי הגדרה – המערכת לא מאפשרת למחוק כרטיסים ישירות מהממשק – כל מה שניתן לעשות הוא לסמן כרטיס כמחוק  – דבר שמשנה את הסטטוס שלו “למחוק” אך עדיין משאירה אותו במערכת (רק מסתירה אותו מהחיפוש הרגיל). על מנת להסיר את המידע המיותר מה-DB ממש, יש להשתמש בתוסף חיצוני (שנכון להיום הוא כבר מגיע ביחד עם חבילת המקור) שנקרא Shredder (אחלה שם אני חייב להודות). התוסף מאפשר לבצע את המחיקה ברמת ה-DB, והוא דואג למחוק גם את כל המידע שמקושר לכל כרטיס (אנשי קשר, קבצים מצורפים וכ”ו..)

באתר התעוד מצאתי 2 פקודות פשוטות שניתן להריץ משורת הפקודה וכך גם לתזמן בעתיד את המחיקה של הכרטיסים האלה דרך Cron ולא לתת להם להצטבר. הבעייה עם התוסף הנ”ל הייתה שהיה לוקח  לו כ-3 שעות למחוק 25 כרטיסים – דבר שהיה הזוי לדעתי.

אז החלטתי לחקור טיפה, והפעלתי את האופציה לניטור שאילתות איטיות ב-MySQL (וגם על הדרך יצא לי להתקל בכלי בשם mytop שהוא די נחמד למעקב בזמן אמת). בסופו של דבר מצאתי כמה טבלאות שאם מוסיפים להם Index, זמן המחיקה של הכרטיסים יורד פלאים עד לכ-2.5 דקות אפילו.

הפעלת מעקב אחרי שאילתות אטיות / Log slow querys

 

הוספת אינדקסים / Add Index to some of the Tables

 

מקורות:

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *