سامان آخته 12 ارسال شده در اردیبهشت 89 با وجود این که جوملا! یکی از انعطاف پذیرترین و قدرتمندترین سیستمهای مدیریت محتوای (cms) موجود در دنیا است، از لحاظ زمان اجرا و عملکرد (Performance) میتواند شما را با دشواریهایی روبهرو کند. چند کار وجود دارد که شما میتوانید با انجام دادنِ آن سرعت سایت جوملایی خود را افزایش دهید. سطح عملکرد قابل قبول به وسیله هر بسته هاستینگ (hosting) میتواند انجام شود تا زمانی که بهترین عملکرد میتواند بر روی سرور اختصاصی( Lighttpd که بسیار سریعتر از Apache است) دیده شود. برای برخی از مدیرها، ارتقاء به یک سرور اختصاصی ممکن است کار مناسب و بهصرفهای نباشد. بهینهسازی قالب (template): ما بحث را با یکی از معمولترین و (زیانآورترین) مشکلاتی که من تا به حال در جوملا (یا هر سایت دیگری) که طراحی می شود، آغاز میکنیم. هزاران هزار قالب که مشخصاً برای جوملا طراحی شدهاند، وجود دارد و بیشتر آنها بسیار زیبا به نظر میرسند ولی تعدادی از آنها خطاهای سختی در عملکرد دارند. مشکل اینجاست که قالبهایی وجود دارند که بیش از 70 تصویر جدا در صفحه را نمایش میدهند. هر تصویر یک درخواست جدید را به وجود میآورد (که به بین 1/ 0تا 1 ثانیه به تأخیر لود وب سایت اضافه میکند) که حتماً باید دانلود (Download) شوند. مشکل آنجایی بدتر میشود که تصاویر بهینـهسازی شده نیستند. وب سایت های بزرگی در این رابطه وجود دارند که به شما کمک میکند تشخیص بدهید چه بهینه سازی قالبی باید انجام بشود و اطمینان کسب کنید که بعد از تغییر و بهینه سازی می توانید از قالب سایتتان بدونه نقص در عملکرد استفاده کنید. (TheWebsite Analyzer). بعضی اوقات، Gzip: رمز گذاری صفحات شما با Gzip در ٪90 موارد جواب می دهد... اگر پردازشگر سرور شما سریعتر از پهنای باند سرور سایت شماست (با تأکید: ٪90 موارد)، فعالسازی Gzip compression حقیقتاً سرعت سایت طراحی شده با جوملا را افزایش خواهد داد. Gzip کردن صفحات به یک CPU پرقدرت نیاز دارد. اگر سایت شما سریع بالا نمیآید، Gzip را فعال کنید(مخصوصاً در سرورهای با سرعت بالا). احتمالاً اگر به نتیجه نرسیدید یا از هاست اخطار CPU دریافت کردید، Gzip را غیرفعال کنید چون این کار میتواند به شما آسیب زند، اما اکثر اوقات این کار به شما کمک می کند. تنها راه فهمیدن، امتحان کردن آن است، یعنی همان آزمون خطا! تمامی کامپوننتها، کامپوننتهای خوبی نیستند (components): اگر به پوشه امکانات جوملا نگاهی بیندازید. کامپوننت هایی را پیدا خواهید کرد که تمام خواستههای شما را برآورده میکند (در بیشتر قسمت ها). مشکل این جا است که بعضی از این کامپوننتها (به غیر از کامپوننت های هسته) واقعاً بی تأثیر هستند ولی کندی سایت شما را ناگهان بیشتر می کند. اگر شما به دنبال یک راه آسان برای شناسایی کامپوننتهای کند هستید که ممکن است از آنها استفاده هم میکنید، می خواهید، کامپوننت my page caching راا نصب کنید، اما caching را فعال نکنید(بگذارید تا صفحه را با زمان طولانی ضبط کند برای هرURL).بعد از یک هفته یا بیشتر، به سراغ فهرستی که تولید شده بروید وURL های کند را پیدا کنید.آن کامپوننتها به شما نشان خواهند داد که کدامشان از بقیه کندتر هستند. اگر می توانید آنهایی که خیلی کند هستند را حذف کنید و از محصول دیگری استفاده کنید. کامپوننت های نمایش آمار شاید خوب به نظر برسند، اما...: آنها از SQL Queryهای فراوانی استفاده میکنند تا کارشان را انجام دهند که خیلی هم ارزشمند نیستند! اگر شما آمار خوبی میخواهید از تحلیلگر Google برای شمارش بازدید کنندگان خود استفاده کنید و کامپوننتهای اضافی دوری کنید. آنها آمار و ارقام خوبی را به شما نمایش میدهند اما همراه با خطایی بزرگ در عملکرد! تنها آمارگیرندهای که ارزش نگهداشتن دارد search queryها هستند (در config کامپوننت جستجو جوملا 1.5) اگر شما به وبسرور دسترسی دارید، همچنین میتوانید آمار ورود به سایت را از طریق سرور غیرفعال کنید (این عمل بسیار موثر است و تنها راهی است که اگر سرور بهکندی بالا میآید، به شما کمک کند.) پلاگینها (مامبوت) بهراستی بسیار قدرتمند هستند اما کند...: (mambots - plugins) نگاهی بیندازید و ببینید از چه پلاگینهایی استفاده میکنید. اگر از هیچکدام از آنها استفاده نمیکنید، خود را از دست آنها رها کنید (تنها غیرفعال کردن آنها کافی نیست، بلکه آنها را حذف کنید). هر بار که شما صفحه ای را بالا می آورید، پلاگینها 20 تا 30 برابر بیشتر خوانده میشوند. اگر کد ٪100 موثر و مورد احتیاج نیست، این تلف کردن انرژی است. به این معنا نیست که اگر شما از پلاگین استفاده می کنید، هنوز و همچنان باید آنها را نگه داشت. بعضی از پلاگینها هستند که به خاطر کند کردن سایت، شناخته شده هستند. یکی از آنها All Videos Plugin است. این یک راه حل عالی است اما برای تکمیل باید از مقدار فراوانی Query استفاده کنید. SEF، سرور دوستانهای (Server Friendly) نیست: یکی از بهترین کارهایی که شما می توانید برای سایت خود انجام دهید، این است که کاری کنید تا URLها بهتر و زیباتر به نظر برسند. هستهی جوملا 1.5 کار را به شکل قابل قبولی انجام میدهد اما کامپوننتهای اضافی کارآمدی هستند که می توانند URLهای سایت شما را بسیار زیباتر کنند.تنها مشکلی که این کامپوننتها دارند عملکرد غیردوستانه آنها است (آنها از هزاران Query استفاده می کنند). من استفاده از OpenSEF را به بقیه ترجیح می دهم و همانطور که به نظر می آید می تواند ترکیبی از قدرت، انعطاف پذیری و عملکرد است. همیشه به یاد داشته باشید که استفاده از SEF URLs یک معاوضه است.یک URL ظاهر زیباتری به یک موتور جستجو می دهد که می تواند استفاده کنندگان را به هدفشان برساند، اما برای بالا آمدن سایت زمان بیشتری لازم است. پیش از فعال سازی SEF URLها به آن خوب فکر کنید. کاری که شما میتوانید انجام دهید، بهینهسازی پایگاه داده است به صورت دورهای به وسیله حذف کردن URLهای نامعتبر و منتشرنشده از پایگاه داده OpenSEF است (یک گزینه در بخش مدیریت OpenSEF) تا حد امکان ذخیرهسازی (caching) را فعال کنید: اگر می توانید، ذخیرهسازی محتوای هستهی جوملا را فعال کنید، این کار به شما سرعت بیشتری میدهد وقتی شما در حال نظاره محتوا و ماژولها هستید (لازم نیست هر زمان که صفحه بالا می آید پلاگینها را پردازش کنید). اگر شما واقعاً می خواهید که سرعت را برای کاربران ثبت نشده افزایش دهید، نگاهی به کامپوننت ذخیرهسازی صفحه بیاندازید که می تواند کل صفحات را ذخیره سازد. احتمالاً این بهترین کاری است که شما می توانید برای پیدا کردن کاربران ثبت نشده، انجام دهید (بیشتر کاربران برای ٪95 از وبسایتها).این به این معنا نیست که شما میتوانید بقیه این بهینهسازیها را فراموش کنید و به خاطر این که کاربران ثبت شده همچنان همان سایت ذخیرهنشده را خواهند دید. یافتن Queryهای بد: از پیکربندی کلی جوملا، خطازدایی را فعال سازید.سپس به سایت نگاه کنید و مرتب بودن Queryهای پایگاه داده را بررسی کنید. شما میخواهید این تعداد در کمترین حد خود باشند (کمتر از 30، ترجیحا، اما کمتر از 50 هم اکتفا میکند). با نگاه کردن به Queryهای بازگشتی آغاز کنید (آنها را دوباره و دوباره مرتب کنید). شما باید قادر باشید تا بگویید که کدام امکان در حال تولید Query است، تنها با توجه به جدولی که به آن مینگرید. (برای مثال *Select* از _job_openset_configمتعلق به OpenSEF است). دو راه برای مواجهه با Queryهای در حال اجرا وجود دارد. شما میتوانید آن امکان را غیرفعال کنید یا با گسترشدهنده تماس بگیرد تا آن امکان را بهینهسازی کند (چه گسترشدهنده خود امکان یا یک گسترشدهنده قراردادی مانند من). از پلهای ارتباطی جوملا با سایر برنامه ها (پرتال ها) دوری کنید (joomla bridge): یکی از محبوبترین متدها برای اضافه کردن توابع جدید به جوملااز طریق یک پل ارتباطی است.این کار شامل تغییراتی سطحی هسته جوملا و یا نرم افزارهای دیگر هم می شود (مانند SMF و یا Gallery2) برای فراهم ساختن تابعای از هردوی آنها. از لحاظ ظاهری، زیبا به نظر میرسد زیرا نرم افزارهای دیگر بسیار تصفیه شدهتر و دارای تابعهای بیشتری نسبت به امکانات قابل دسترسی جوملاهستند اما درزیر یک داستان متفاوت دارد.مشکل این جاست که آنها دو سیستم جدا و مستقل از یکدیگر هستند. این به این معنا است که هر کدام باید هسته خود را بارگذاری (شامل frameworks، مدیریت کاربران و غیره). این یک خطای بزرگ است زیرا شما برای صفحه، عملاً دو صفحه را بارگذاری میکنید. برای عملکرد با ارزشتر،از دست دادن توابع بسیار کوچک در رفتن از SMF به سوی چیزی چون fireboard بسیار خوب است. بهینهسازی پایگاه داده (database): یکی از چیزهایی که نصب جوملا را تحت فشار قرار می دهد سرور پایگاه داده است. دو راه اصلی وجود دارد که پایگاه داده را بهینهسازی کنید. بهینهسازی جدولها و بهینهسازی شِما (Schema). فرق آنها این است که جدولها نشان دهنده چگونگی ذخیره کردن جدولها در داده است و شِما نشان دهنده این که آنها چطور باید ذخیره شوند.شِما فقط باید یک بار بهینهسازی شود در حالی که جدولها باید مرتبا ًبهینهسازی شوند (تا وقتی که داده اضافه شود، تنظیم شود و حذف شود).برای بهینهسازی جدولها به phpmyAdmin بروید، همه جدولها را انتخاب کنید و بر روی بهینهسازی کلیک کنید. در پایان نسخه پشتیبان تهیه کنید و سرور را مشاهده کنید (backup): شما باید مرتباً از سایت خود نسخه پشتیبان بگیرید و آنها را از پروسه تولید سرور بیرون بکشید. شما ممکن است به این فکر بییفتید «این چه ارتباطی با عملکرد شما دارد؟»، این به تمام عملکرد ارتباط دارد. بدون پشتیبان رایج، اگر نصب، به روز رسانی یا tweak به درستی انجام نگرفت، شما چگونه میخواهید سایت خود را ذخیره نمایید؟ یک کاهش سرعت ناگهانی می تواند شرایط برای ه-ک شدن که باعث تزریق شدن رمزهای خرابکار (SQL injection) به هسته می شود را فراهم سازد (متا ُسفانه امکان دارد).چه اتفاقی خواهد افتاد اگر سرور تصمیم به زدن گلوله کند؟ بهترین راه برای تهیه نسخه پشتیبان با یک automated script می باشد(تا شما نتوانید فراموش کنید).نمونه های خوبی از آن در کل اینترنت وجود دارد.(این می تواند شامل control panel شما هم شود اگر یکی از آنها دارید). به یاد داشته باشید قبل از انجام هر کاری در سایت خود، نخست از آن یک نسخه پشتیبان تهیه کنید. منبع : جوملا فارسي نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر