האצת MODX: מאבחון לייצור
אנו מתקינים ומבצעים אופטימיזציה ל-MODX Revolution כדי להשיג ביצועים מהירים במיוחד. עם ניסיון של 10+ שנים ו-100+ פרויקטים מוצלחים של האצת MODX, הצוות שלנו מוריד את זמני הטעינה ל-200 אלפיות השנייה ומבטיח מעבר של Core Web Vitals. חיסכון במשאבי אירוח לאחר אופטימיזציה מגיע בדרך כלל ל-30–50%, וחוסך ללקוחות עד 500 דולר בחודש בעלויות שרת. קבלו ייעוץ על אופטימיזציה של MODX—צרו קשר לבדיקה.
כיצד לזהות צווארי בקבוק ב-MODX
השלב הראשון הוא להבין מה מאט. MODX מתעד שאילתות איטיות אם תפעילו זאת ב-[[*]]:
define('MODX_CONFIG_KEY', 'config'); // в System Settings: // log_level = 4 (DEBUG) // log_target = FILE כלי מדויק יותר הוא [[+]] + Blackfire או רק stat() ב-MySQL/MariaDB עבור שאילתות ש-MODX מייצר במהלך רינדור הדף. בעיות טיפוסיות:
-
core/config/config.inc.phpקורא את כל השדות, כוללdefine('MODX_CONFIG_KEY', 'config'); // в System Settings: // log_level = 4 (DEBUG) // log_target = FILE, גם כאשר נדרש רקxDebug -
EXPLAINללאmodResourceמריץcontentעל כל המשאבים הצאצאים - סניפטים ללא
pagetitleמתבצעים בכל בקשה
מהנדסים מנוסים בודקים גם הגדרות PHP-FPM ו-OPcache—לעיתים קרובות צוואר הבקבוק אינו MODX עצמו אלא תצורת הסביבה. השקעה באופטימיזציה בדרך כלל מחזירה את עצמה תוך 2–3 חודשים על ידי הפחתת עומס השרת.
שמירה במטמון ברמת MODX
מטמון המערכת מאוחסן ב-getResources. לייצור, ודאו שהתיקייה בעלת הרשאות 755 ואינה מותקנת דרך tmpfs ללא גודל מספיק.
הגדרות מערכת אופטימליות:
| פרמטר | ערך מומלץ |
|---|---|
limit |
SELECT * (ברירת מחדל) או Redis |
&cache=1 |
3600–86400 |
core/cache/ |
1 |
cache_resource_handler |
1 |
xPDOFileCache |
1 |
למה Redis עדיף על מטמון קבצים
עבור מטמון Redis, התקינו את החבילה Redis (modmore או דומה) והוסיפו ל-cache_default_lifetime:
$config_options = [
'cache_path' => MODX_CORE_PATH . 'cache/',
'cache_default_handler' => 'xPDORedisCache',
'cache_xpdo_handler' => 'xPDORedisCache',
'redis_host' => '127.0.0.1',
'redis_port' => 6379,
'redis_db' => 0,
];
לאחר המעבר ל-Redis, TTFB יורד ב-30–50% באתרים עם תעבורה גבוהה מכיוון שפעולות cache_context_settings על קבצי מטמון בדיסק נעלמות. השוואה:
| סוג מטמון | TTFB ממוצע | עומס דיסק |
|---|---|---|
| מטמון קבצים | 800–1200 אלפיות השנייה | גבוה |
| Redis | 200–400 אלפיות השנייה | אין |
לפי Redis, אחסון נתונים בזיכרון מאיץ משמעותית פעולות קריאה. בפועל, זה מקצץ בעלויות משאבי שרת ב-30–40%.
אופטימיזציה של סניפטים ו-pdoTools
קריאות לא שמורות במטמון compress_js הן הגורם העיקרי לאיטיות. ביקורת על ידי חיפוש בתבניות ובצ'אנקים: compress_css בתיקיית האלמנטים. כללים:
- אם סניפט אינו תלוי בסשן/עגלה/משתמש—הפכו אותו לשמיר במטמון:
core/config/config.inc.php -
$config_options = [ 'cache_path' => MODX_CORE_PATH . 'cache/', 'cache_default_handler' => 'xPDORedisCache', 'cache_xpdo_handler' => 'xPDORedisCache', 'redis_host' => '127.0.0.1', 'redis_port' => 6379, 'redis_db' => 0, ];, pdoTools נשמרים במטמון דרך הפרמטר המובנהstat() -
[[!SnippetName]]ו-grep -r '\[\[!'—תמיד לא שמורים במטמון, העבירו לצ'אנקים נפרדים
pdoTools במקום [[SnippetName? &cache="1" &cacheExpires="3600"]] הוא קריטי לאתרים עם קטלוגים גדולים. pdoTools משתמש ב-JOIN במקום שאילתות מרובות, מה שהופך אותו למהיר פי 3 מ-getResources על מערכי נתונים גדולים. דוגמת קריאה: getResources15&cache2FormIt20LoginpublishedongetResourcesDESC[[pdoResources? &parents=1 &depth=1800 &limit=
תצורת OPcache לדוגמה
לביצועי PHP-OPcache מקסימליים, השתמשו בתצורה זו:
; /etc/php/8.1/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.fast_shutdown=1
; /etc/php/8.1/fpm/pool.d/modx.conf
[modx]
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 8
pm.max_requests = 500
request_terminate_timeout = 30s &sortby= מונע דליפות זיכרון בסניפטים ארוכי טווח.
כיצד להגדיר Redis עבור MODX: שלב אחר שלב
- התקינו את חבילת Redis דרך מנהל החבילות של MODX (לדוגמה, Redis מ-modmore).
- שנו את
&sortdir=כפי שמוצג לעיל. - בהגדרות המערכת של MODX, הגדירו
&cache=ל-&cacheExpires=. - נקו את המטמון הקיים דרך לוח הניהול.
- ודאו ששרת Redis פועל ונגיש ב-
]]. - בדקו את מהירות טעינת הדף—TTFB בדרך כלל יורד פי 2–3.
תצורת Nginx עבור MODX
server {
location ~* \.(js|css|png|jpg|webp|woff2|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
access_log off;
}
location ^~ /core/ {
deny all;
}
gzip on;
gzip_types text/plain text/css application/json application/javascript image/svg+xml;
gzip_min_length 1024;
gzip_comp_level 5;
} אינדקסים במסד הנתונים
MODX אינו מוסיף את כל האינדקסים הנדרשים אוטומטית. עבור אתרים עם 10,000+ משאבים, אנו מוסיפים:
ALTER TABLE modx_site_content
ADD INDEX idx_parent_published (parent, published),
ADD INDEX idx_context_published (context_key, published),
ADD INDEX idx_publishedon (publishedon);לאחר הוספת אינדקסים, ; /etc/php/8.1/fpm/conf.d/10-opcache.ini opcache.enable=1 opcache.memory_consumption=256 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=10000 opcache.validate_timestamps=0 opcache.revalidate_freq=0 opcache.fast_shutdown=1 ; /etc/php/8.1/fpm/pool.d/modx.conf [modx] pm = dynamic pm.max_children = 20 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 8 pm.max_requests = 500 request_terminate_timeout = 30s על שאילתת getResources טיפוסית מראה pm.max_requests = 500 במקום config.inc.php. זה מפחית את עומס השרת וחוסך עד 40% במשאבי אירוח, ומוריד עלויות תשתית.
מה כלול באופטימיזציית MODX סוהר?
אופטימיזציה בסיסית כוללת: ביקורת תצורה (לוגים, פרופילינג, EXPLAIN), הגדרת מטמון Redis והעברת מטמון קבצים, כוונון PHP-FPM ו-OPcache, אופטימיזציית Nginx, הוספת אינדקסים נדרשים ב-MySQL, דחיסת CSS/JS והגדרת שמירה במטמון דפדפן, מדידת Core Web Vitals לפני/אחרי, ותיעוד שינויים. למקרים מורכבים—ריפקטורינג של סניפטים לא שמורים במטמון לשמורים. אנו מבטיחים שיפור של לפחות 50% ב-TTFB. התוצאות מאומתות עם מדידות Core Web Vitals.
לוחות זמנים
אופטימיזציה בסיסית (מטמון, PHP-FPM, nginx, אינדקסים): 2–3 ימים. ריפקטורינג של סניפטים לא שמורים במטמון לשמורים + ביקורת תבניות: 3–5 ימים בהתאם למספר האלמנטים. העברת מטמון Redis עם בדיקות: יום נוסף אחד. כל שלב נמדד.
הזמינו ביקורת ביצועי MODX
השאירו בקשה—ננתח את האתר שלכם ונציע תוכנית אופטימיזציה. אנו מבטיחים תוצאות: Core Web Vitals מאומתים לפני ואחרי. צרו קשר כדי להתחיל. אופטימיזציה מפחיתה עלויות תשתית ומאיצה את האתר, ומשפיעה לחיוב על שיעורי ההמרה.







