प्रदर्शन अक्सर पूछे जाने वाले प्रश्न
प्रदर्शन अक्सर पूछे जाने वाले प्रश्न
Section titled “प्रदर्शन अक्सर पूछे जाने वाले प्रश्न”XOOPS प्रदर्शन को अनुकूलित करने और धीमी साइटों का निदान करने के बारे में सामान्य प्रश्न और उत्तर।
सामान्य प्रदर्शन
Section titled “सामान्य प्रदर्शन”प्रश्न: मैं कैसे बता सकता हूं कि मेरी XOOPS साइट धीमी है?
Section titled “प्रश्न: मैं कैसे बता सकता हूं कि मेरी XOOPS साइट धीमी है?”ए: इन टूल और मेट्रिक्स का उपयोग करें:
- पेज लोड समय:
# Use curl to measure response timecurl -w "@curl-format.txt" -o /dev/null -s https://yoursite.com
# Or use online tools# - PageSpeed Insights (Google)# - GTmetrix# - WebPageTest- लक्ष्य मेट्रिक्स:
- पहला कंटेंटफुल पेंट (एफसीपी): <1.8 सेकेंड
- सबसे बड़ा कंटेंटफुल पेंट (एलसीपी): <2.5 सेकेंड
- पहली बाइट का समय (TTFB): <0.6 सेकंड
- कुल पृष्ठ आकार: <2-3 एमबी
- सर्वर लॉग जांचें:
# Apachetail -100 /var/log/apache2/access.log
# Nginxtail -100 /var/log/nginx/access.log
# Look for slow requests (> 1 second)प्रश्न: सबसे आम प्रदर्शन समस्याएं क्या हैं?
Section titled “प्रश्न: सबसे आम प्रदर्शन समस्याएं क्या हैं?”ए:
pie title Common Performance Issues "Unoptimized Database Queries" : 25 "Large Uncompressed Assets" : 20 "Missing Caching" : 20 "Too Many Extensions/Plugins" : 15 "Insufficient Server Resources" : 12 "Unoptimized Images" : 8प्रश्न: मुझे अपने अनुकूलन प्रयासों को कहाँ केंद्रित करना चाहिए?
Section titled “प्रश्न: मुझे अपने अनुकूलन प्रयासों को कहाँ केंद्रित करना चाहिए?”ए: अनुकूलन प्राथमिकता का पालन करें:
graph TD A[Performance Optimization] --> B["1. Caching"] A --> C["2. Database Queries"] A --> D["3. Asset Optimization"] A --> E["4. Code Optimization"]
B --> B1["✓ Page caching"] B --> B2["✓ Object caching"] B --> B3["✓ Query caching"]
C --> C1["✓ Add indexes"] C --> C2["✓ Optimize queries"] C --> C3["✓ Remove N+1"]
D --> D1["✓ Compress images"] D --> D2["✓ Minify CSS/JS"] D --> D3["✓ Enable gzip"]
E --> E1["✓ Remove bloat"] E --> E2["✓ Lazy loading"] E --> E3["✓ Code refactoring"]कैशिंग
Section titled “कैशिंग”प्रश्न: मैं XOOPS में कैशिंग कैसे सक्षम करूं?
Section titled “प्रश्न: मैं XOOPS में कैशिंग कैसे सक्षम करूं?”ए: XOOPS में अंतर्निहित कैशिंग है। व्यवस्थापक > सेटिंग्स > प्रदर्शन में कॉन्फ़िगर करें:
<?php// Check cache settings in mainfile.php or admin// Common cache types:// 1. file - File-based cache (default)// 2. memcache - Memcached (if installed)// 3. redis - Redis (if installed)
// In code, use cache:$cache = xoops_cache_handler::getInstance();
// Read from cache$data = $cache->read('cache_key');
if ($data === false) { // Not in cache, get from source $data = expensive_operation();
// Write to cache (3600 = 1 hour) $cache->write('cache_key', $data, 3600);}?>प्रश्न: मुझे किस प्रकार की कैशिंग का उपयोग करना चाहिए?
Section titled “प्रश्न: मुझे किस प्रकार की कैशिंग का उपयोग करना चाहिए?”ए:
- फ़ाइल कैश: डिफ़ॉल्ट, सरल, कोई अतिरिक्त सेटअप नहीं। छोटी साइटों के लिए अच्छा है.
- मेमकेचे: तेज़, मेमोरी-आधारित। उच्च-ट्रैफ़िक वाली साइटों के लिए बेहतर.
- रेडिस: सबसे शक्तिशाली, अधिक डेटा प्रकारों का समर्थन करता है। स्केलिंग के लिए सर्वोत्तम.
स्थापित करें और सक्षम करें:
# Install Memcachedsudo apt-get install memcached php-memcached
# Or install Redissudo apt-get install redis-server php-redis
# Restart PHP-FPM or Apachesudo systemctl restart php-fpmsudo systemctl restart apache2फिर XOOPS एडमिन में सक्षम करें।
प्रश्न: मैं XOOPS कैशे कैसे साफ़ करूँ?
Section titled “प्रश्न: मैं XOOPS कैशे कैसे साफ़ करूँ?”ए:
# Clear all cacherm -rf xoops_data/caches/*
# Clear Smarty cache specificallyrm -rf xoops_data/caches/smarty_cache/*rm -rf xoops_data/caches/smarty_compile/*
# Or in admin panelGo to Admin > System > Maintenance > Clear Cacheकोड में:
<?php$cache = xoops_cache_handler::getInstance();$cache->deleteAll();
// Or clear specific keys$cache->delete('cache_key');?>प्रश्न: मुझे कब तक डेटा कैश करना चाहिए?
Section titled “प्रश्न: मुझे कब तक डेटा कैश करना चाहिए?”ए: डेटा ताज़ाता आवश्यकताओं पर निर्भर करता है:
<?php// 5 minutes - Frequently changing data$cache->write('key', $data, 300);
// 1 hour - Semi-static data$cache->write('key', $data, 3600);
// 24 hours - Static data, images, etc.$cache->write('key', $data, 86400);
// No expiration (until manual clear)$cache->write('key', $data, 0);
// Cache during current request only$cache->write('key', $data, 1);?>डेटाबेस अनुकूलन
Section titled “डेटाबेस अनुकूलन”प्रश्न: मैं धीमी डेटाबेस क्वेरीज़ का पता कैसे लगा सकता हूँ?
Section titled “प्रश्न: मैं धीमी डेटाबेस क्वेरीज़ का पता कैसे लगा सकता हूँ?”ए: क्वेरी लॉगिंग सक्षम करें:
<?php// In mainfile.phpdefine('XOOPS_DB_DEBUGMODE', true);define('XOOPS_SQL_DEBUG', true);
// Then check xoops_log tableSELECT * FROM xoops_log WHERE logid > SOME_NUMBERORDER BY created DESC LIMIT 20;?>या MySQL धीमी क्वेरी लॉग का उपयोग करें:
# Enable in /etc/mysql/my.cnf[mysqld]slow_query_log = 1slow_query_log_file = /var/log/mysql/slow.loglong_query_time = 1 # Log queries > 1 second
# View slow queriestail -100 /var/log/mysql/slow.logप्रश्न: मैं डेटाबेस क्वेरीज़ को कैसे अनुकूलित करूं?
Section titled “प्रश्न: मैं डेटाबेस क्वेरीज़ को कैसे अनुकूलित करूं?”ए: इन चरणों का पालन करें:
1. डेटाबेस इंडेक्स जोड़ें
-- Add index to frequently searched columnsALTER TABLE `xoops_articles` ADD INDEX `author_id` (`author_id`);ALTER TABLE `xoops_articles` ADD INDEX `created` (`created`);
-- Check if index helpsANALYZE TABLE `xoops_articles`;EXPLAIN SELECT * FROM xoops_articles WHERE author_id = 5;2. LIMIT और पेजिनेशन का उपयोग करें
<?php// WRONG - Gets all records$result = $db->query("SELECT * FROM xoops_articles");
// CORRECT - Gets 10 records starting at offset$limit = 10;$offset = 0; // Change with pagination$result = $db->query( "SELECT * FROM xoops_articles LIMIT $limit OFFSET $offset");?>3. केवल आवश्यक कॉलम चुनें
<?php// WRONG$result = $db->query("SELECT * FROM xoops_articles");
// CORRECT$result = $db->query( "SELECT id, title, author_id, created FROM xoops_articles");?>4. एन+1 प्रश्नों से बचें
<?php// WRONG - N+1 problem$articles = $db->query("SELECT * FROM xoops_articles");while ($article = $articles->fetch_assoc()) { // This query runs once per article! $author = $db->query( "SELECT * FROM xoops_users WHERE uid = " . $article['author_id'] );}
// CORRECT - Use JOIN$result = $db->query(" SELECT a.*, u.uname, u.email FROM xoops_articles a JOIN xoops_users u ON a.author_id = u.uid");
while ($row = $result->fetch_assoc()) { echo $row['title'] . " by " . $row['uname'];}?>5. प्रश्नों का विश्लेषण करने के लिए EXPLAIN का उपयोग करें
EXPLAIN SELECT * FROM xoops_articles WHERE author_id = 5 AND status = 1;
-- Look for:-- - type: ALL (bad), INDEX (ok), const/ref (good)-- - possible_keys: Should show available indexes-- - key: Should use best index-- - rows: Should be low numberप्रश्न: मैं डेटाबेस लोड कैसे कम करूं?
Section titled “प्रश्न: मैं डेटाबेस लोड कैसे कम करूं?”ए:
- कैश क्वेरी परिणाम:
<?php$cache = xoops_cache_handler::getInstance();$articles = $cache->read('all_articles');
if ($articles === false) { $result = $db->query("SELECT * FROM xoops_articles"); $articles = $result->fetch_all(); $cache->write('all_articles', $articles, 3600);}?>- पुराने डेटा को अलग-अलग तालिकाओं में संग्रहीत करें
- लॉग साफ़ करें नियमित रूप से:
# Delete old log entries (older than 30 days)DELETE FROM xoops_log WHERE created < NOW() - INTERVAL 30 DAY;- क्वेरी कैश सक्षम करें (MySQL):
SET GLOBAL query_cache_type = 1;SET GLOBAL query_cache_size = 268435456; -- 256 MBसंपत्ति अनुकूलन
Section titled “संपत्ति अनुकूलन”प्रश्न: मैं CSS और JavaScript को कैसे अनुकूलित करूं?
Section titled “प्रश्न: मैं CSS और JavaScript को कैसे अनुकूलित करूं?”ए:
1. फ़ाइलें छोटा करें:
# Using online tools# - cssminifier.com# - javascript-minifier.com# - minify.org
# Or with command-line toolssudo apt-get install yui-compressor closure-compileryui-compressor file.css -o file.min.css2. संबंधित फ़ाइलें संयोजित करें:
{* Instead of many files *}<link rel="stylesheet" href="{$xoops_url}/themes/{$xoops_theme}/style1.css"><link rel="stylesheet" href="{$xoops_url}/themes/{$xoops_theme}/style2.css"><link rel="stylesheet" href="{$xoops_url}/themes/{$xoops_theme}/style3.css">
{* Combine into one *}<link rel="stylesheet" href="{$xoops_url}/themes/{$xoops_theme}/style.css">3. गैर-महत्वपूर्ण को स्थगित करें JavaScript:
{* Critical JS - load immediately *}<script src="critical.js"></script>
{* Non-critical JS - load after page *}<script src="analytics.js" defer></script><script src="ads.js" async></script>4. Gzip संपीड़न सक्षम करें (.htaccess):
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/xml</IfModule>प्रश्न: मैं छवियों को कैसे अनुकूलित करूं?
Section titled “प्रश्न: मैं छवियों को कैसे अनुकूलित करूं?”ए:
1. सही प्रारूप चुनें:
- जेपीजी: तस्वीरें और जटिल छवियां
- पीएनजी: पारदर्शिता के साथ ग्राफिक्स और छवियां
- WebP: आधुनिक ब्राउज़र, बेहतर संपीड़न
- AVIF: नवीनतम, सर्वोत्तम संपीड़न
2. छवियाँ संपीड़ित करें:
# Using ImageMagickconvert image.jpg -quality 85 image-compressed.jpg
# Using ImageOptimimageoptim image.jpg
# Online tools# - imagecompressor.com# - tinypng.com3. प्रतिक्रियाशील छवियाँ परोसें:
{* Serve different sizes *}<picture> <source srcset="image-large.webp" type="image/webp" media="(min-width: 1200px)"> <source srcset="image-medium.webp" type="image/webp" media="(min-width: 768px)"> <source srcset="image-small.webp" type="image/webp"> <img src="image.jpg" alt="description"></picture>4. आलसी लोड छवियां:
{* Native lazy loading *}<img src="image.jpg" loading="lazy" alt="description">
{* Or with JavaScript library *}<script src="https://cdn.jsdelivr.net/npm/lazysizes@5/lazysizes.min.js"></script><img src="placeholder.jpg" data-src="image.jpg" class="lazyload" alt="description">सर्वर कॉन्फ़िगरेशन
Section titled “सर्वर कॉन्फ़िगरेशन”प्रश्न: मैं सर्वर के प्रदर्शन की जाँच कैसे करूँ?
Section titled “प्रश्न: मैं सर्वर के प्रदर्शन की जाँच कैसे करूँ?”ए:
# CPU and Memorytop -b -n 1 | head -20free -hdf -h
# Check PHP-FPM processesps aux | grep php-fpm
# Check Apache/Nginx connectionsnetstat -an | grep ESTABLISHED | wc -l
# Monitor in real-timewatch 'free -h && echo "---" && df -h'प्रश्न: मैं XOOPS के लिए PHP को कैसे अनुकूलित करूं?
Section titled “प्रश्न: मैं XOOPS के लिए PHP को कैसे अनुकूलित करूं?”ए: संपादित करें /etc/php/8.x/fpm/php.ini:
; Increase limits for XOOPSmax_execution_time = 300 ; 30 seconds defaultmemory_limit = 512M ; 128MB defaultupload_max_filesize = 100M ; 2MB defaultpost_max_size = 100M ; 8MB default
; Enable opcache for performanceopcache.enable = 1opcache.memory_consumption = 256opcache.max_accelerated_files = 20000opcache.validate_timestamps = 0 ; Production: 0 (reload on restart)opcache.revalidate_freq = 0 ; Production: 0 or high number
; Databasedefault_socket_timeout = 60mysqli.default_socket = /run/mysqld/mysqld.sockफिर PHP पुनः आरंभ करें:
sudo systemctl restart php8.2-fpm# orsudo systemctl restart apache2प्रश्न: मैं HTTP/2 और कम्प्रेशन कैसे सक्षम करूं?
Section titled “प्रश्न: मैं HTTP/2 और कम्प्रेशन कैसे सक्षम करूं?”ए: अपाचे (.htaccess) के लिए:
# Enable HTTPS (required for HTTP/2)<IfModule mod_ssl.c> Protocols h2 http/1.1</IfModule>
# Enable compression<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript</IfModule>
# Enable browser caching<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType text/css "access plus 1 month" ExpiresByType text/javascript "access plus 1 month"</IfModule>Nginx के लिए (nginx.conf):
http { # Enable gzip gzip on; gzip_types text/plain text/css text/javascript application/json; gzip_min_length 1000;
# Enable HTTP/2 listen 443 ssl http2;
# Browser caching expires 1y; add_header Cache-Control "public, immutable";}निगरानी एवं निदान
Section titled “निगरानी एवं निदान”प्रश्न: मैं समय के साथ XOOPS प्रदर्शन की निगरानी कैसे करूँ?
Section titled “प्रश्न: मैं समय के साथ XOOPS प्रदर्शन की निगरानी कैसे करूँ?”ए:
1. Google Analytics का उपयोग करें:
- कोर वेब वाइटल्स
- पेज लोड समय
- उपयोगकर्ता व्यवहार
2. सर्वर मॉनिटरिंग टूल का उपयोग करें:
# Install Glances (system monitor)sudo apt-get install glancesglances
# Or use New Relic, DataDog, etc.3. अनुरोध लॉग करें और उनका विश्लेषण करें:
# Get average response timegrep "GET /index.php" /var/log/apache2/access.log | \ awk '{print $NF}' | \ sort -n | \ awk '{sum+=$1; count++} END {print "Average: " sum/count " ms"}'प्रश्न: मैं मेमोरी लीक की पहचान कैसे करूँ?
Section titled “प्रश्न: मैं मेमोरी लीक की पहचान कैसे करूँ?”ए:
<?php// In code, track memory usage$start_memory = memory_get_usage();
// Do operationsfor ($i = 0; $i < 1000; $i++) { $array[] = expensive_operation();}
$end_memory = memory_get_usage();$used = ($end_memory - $start_memory) / 1024 / 1024;
if ($used > 50) { // Alert if > 50MB error_log("Memory leak detected: " . $used . " MB");}
// Check peak memory$peak = memory_get_peak_usage();echo "Peak memory: " . ($peak / 1024 / 1024) . " MB";?>प्रदर्शन चेकलिस्ट
Section titled “प्रदर्शन चेकलिस्ट”graph TD A[Performance Optimization Checklist] --> B["Infrastructure"] A --> C["Caching"] A --> D["Database"] A --> E["Assets"]
B --> B1["✓ PHP 8.x installed"] B --> B2["✓ Opcache enabled"] B --> B3["✓ Sufficient RAM"] B --> B4["✓ SSD storage"]
C --> C1["✓ Page caching enabled"] C --> C2["✓ Object caching enabled"] C --> C3["✓ Browser caching set"] C --> C4["✓ CDN configured"]
D --> D1["✓ Indexes added"] D --> D2["✓ Slow queries fixed"] D --> D3["✓ Old data archived"] D --> D4["✓ Query logs cleaned"]
E --> E1["✓ CSS minified"] E --> E2["✓ JS minified"] E --> E3["✓ Images optimized"] E --> E4["✓ Gzip enabled"]संबंधित दस्तावेज़ीकरण- डेटाबेस डिबगिंग
Section titled “संबंधित दस्तावेज़ीकरण- डेटाबेस डिबगिंग”- डिबग मोड सक्षम करें
- मॉड्यूल अक्सर पूछे जाने वाले प्रश्न
- प्रदर्शन अनुकूलन
#xoops #प्रदर्शन #अनुकूलन #faq #समस्या निवारण #कैशिंग