مطالب زیادی در خصوص نکاتی برای بهبود پرفورمنس مجنتو در اینترنت وجود دارد و این نشان دهنده اهمیت این مسئله در فروشگاه مجنتو می باشد.
همانطور که حتماً به گوشتان رسیده است که سرعت وب سایت مسئله خیلی مهمی در بهبود رنکینگ گوگل به حساب میاد.
سرعت سایت نه فقط برای بهبود رنک موتورهای جستجو، بلکه برای مالک وب سایت و همچنین کاربران اینترنت بسیار مهم می باشد.
زمانی که فروشگاه مجنتوی شما برای کاربر اینترنت به کندی باز شود احتمال اینکه مشتری سایت شما را ترک کند و یا حتی از رقیب شما خرید کند بسیار زیاد است.
یکی از مسائلی که شرکت نت وب به صورت روزانه با آن سر و کار دارد بهبود وضعیت سرعت و پرفورمنس وب سایت می باشد که در اینجا بخشی از تجربیاتمان را در اختیارتان قرار می دهیم.
1-پیکربندی سرور برای بهبود پرفورمنس مجنتو
-
تهیه یک سرور اختصاصی ( Dedicated Server )
-
کل سرور در اختیار شما قرار دارد و می توانید هر پکیج مورد نیاز خود را بر روی آن نصب کنید و یا فقط پکیج مورد نیاز خود را روی سرور داشته باشید
به عنوان مثال زمانی که از یک Shared Host استفاده می کنید که بر روی آن کنترل پنل هاستینگ نصب شده است بسیاری از پکیج هایی که شاید خیلی از آنها برای مجنتو نیاز نباشد به طور پیشفرض نصب می باشد (مثل Dovecot ، Postfix ، Bind ، Web File Manager ، PhpMyAdmin و …)و …)
علاوه بر اینکه نصب بودن این پکیج ها بر روی پرفورمنس سرور تاثیر می گذارد ریسک نفوذ به سرور و مشکلات امنیتی پس از آن را نیز افزایش می دهد.
-
امکان به روز رسانی وب سرور ، دیتابیس سرور ، نسخه PHP و … را به شما می دهد.
-
مشتری دیگری به جز شما بر روی سرور دسترسی ندارد و بنابر این این احتمال که شخص دیگری یک اسکریپت مخرب بر روی هاست خود بارگذاری کند و به فایل های شما دسترسی پیدا کند وجود ندارد.
-
مشتری دیگری بر روی سرور شما وجود ندارد تا با اجرای یک اسکریپت بد سرعت سرور را بگیرد.
-
آی پی سرور با دیگران Share نیست و این برای SEO بسیار مهم می باشد.
-
اگر مشتری دیگری یک بیزینسی داشته باشد که گوگل آی پی آن را بلاک کند این امر باعث تاثیر بر روی وب سایت شما و رنکینگ سئوی شما نیز می شود.
-
در صورت امکان وب سرور را از سرور دیتابیس جدا کنید.
-
وب سرور و دیتابیس سرور هر یک الزامات مختلفی دارند.
به عنوان مثال یک دیتابیس سرور می بایست Memory زیاد و هارد سریع (به عنوان مثال هارد SSD یا هارد SAS سرعت بالا و یا SAN Storage های پر سرعت که با فیبر نوری و HBA به سرور متصل می شوند) داشته باشد اما یک وب سرور نیاز به CPU زیاد دارد.
-
پیشنهاد می شود یک سرور مجزا برای Backend در نظر بگیرید تا هم کاربران پنل ادمین به آن متصل شوند و هم اینکه Cron Job های مجنتو بر روی آن اجرا شود.
-
ترجیحاً از به روز ترین نسخه ی Mysql استفاده کنید و یا حتی از Percona XDB استفاده کنید.
-
پیکربندی درست Mysql
-
یکی از مهم ترین جنبه های بحث پرفورمانس مجنتو بهینه سازی تنظیمات mysql می باشد که می تواند تا 65 درصد به بهبود پرفورمنس فروشگاه بیانجامد.
پیشنهاد می شود Caching را روی سرور mysql فعال کنید تا برای دریافت اطلاعات از هارد سرور به I/O کمتری نیاز داشته باشد.
در اینجا توصیه می شود زمانی که سرور دیتابیس از وب سرور جدا است 80 درصد از میزان Available Memory خود را برای کش در نظر بگیرید.
-
سایر تنظیمات mysql نیز بهتر است به این شکل باشد.
innodb_thread_concurrency = 2 * [numberofCPUs] + 2 innodb_flush_log_at_trx_commit = 2 thread_concurrency = [number of CPUs] * 3 thread_cache_size = 32 table_cache = 1024 query_cache_size = 64M query_cache_limit = 2M join_buffer_size = 8M tmp_table_size = 256M key_buffer = 32M innodb_autoextend_increment=512 max_allowed_packet = 16M max_heap_table_size = 256M read_buffer_size = 2M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_max_extra_sort_file_size = 10G myisam_repair_threads = 1
-
بهتر است از پس از جند روز کار با mysql پیکربندی شده طریق اسکریپت MySQLTuner یکبار دیگر mysql خود را tune کنید زیرا که این تنظیمات بر روی هر سرور با توجه به میزان منابع سخت افزاری ، بازدید کننده ها و … می تواند متفاوت باشد.
-
هارد دیسک های خود را با گزینه noatime به سرور mount کنید.
-
برای این کار کافیست فایل /etc/fstab را باز کنید و پارتیشن / سرور و یا سایر پارتیشن هایی که ممکن است I/O زیادی بر روی آن ها باشد را به شکل زیر تغییر دهید.
/dev/mapper/ LogVol00 /tmp ext4 defaults,noatime 0 1
-
برای Dynamic Data از Memory Base File System ها استفاده کنید.
-
می توانید برای کاهش I/O هارد دیسک دایرکتوری های /var/cache و /var/session را از طریق ابزارهای tempfs و RAMdisk به Memory منتقل کنید.
-
سرور را در کشوری که بیشترین کاربرتان در آن کشور قرار دارد هاست کنید.
-
نزدیکترین محل به مشتریانتان باعث سریعتر پاسخ دادن به آن ها می شود.
در تمامی کشورها از جمله کشورهای ما دیتاسنتر هایی وجود دارند که می توانید با پرداخت هزینه ای سرور خود را در آن جا Co-Locate کنید.
-
ترجیحاً از جدیدترین و به روزترین نسخه PHP استفاده کنید.
-
Php نسخه 5.2 بسیار قدیمی و کند می باشد.
php نسخه 5.3 حدود 30 تا 40 درصد سریعتر از نسخه 5.2 و Memory کمتری استفاده
php نسخه 5.4 حدود 20 درصد از 5.3 نیز سریعتر است.
-
برخی از تنظیمات مورد نیاز برای فایل php.ini سرور به شرح ذیل می باشد.
realpath_cache_size = 32k realpath_cache_ttl = 7200 max_execution_time = 90 max_input_time = 90 memory_limit = 256M default_socket_timeout = 90 pdo_mysql.cache_size = 2000 output_buffering = 4096
-
از یک سیستم کش مثل APC برای افزایش سرعت PHP استفاده کنید.
-
به طور پیشفرض مجنتو دیتاهای Cache را بر روی فایل سیستم ذخیره می کند.
این کار در بیزینس های کوچک بسیار مناسب ایت اما در فروشگاه های پر بازدید باعث افزایش خواندن و نوشتن لحظه به لحظه و در نهایت افزایش I/O بر روی دیسک می شود.
با APC شما دیگر این مشکل را نخواهید داشت زیرا که این دیتاها بر روی Memory سرور قرار می گیرد.
-
نمونه ای از تنظیمات APC در php.ini
apc.enabled = 1 apc.optimization = 0 apc.shm_segments = 1 apc.shm_size = 768M apc.ttl = 48000 apc.user_ttl = 48000 apc.num_files_hint = 8096 apc.user_entries_hint = 8096 apc.mmap_file_mask = /tmp/apc.XXXXXX apc.enable_cli = 1 apc.cache_by_default = 1 apc.max_file_size = 10M apc.include_once_override = 0
-
از وب سرور Nginx به جای Apache استفاده کنید.
-
بدون شک یکی از قویترین وب سرورها از نظر Performance و Reverse Proxy وب سرور Nginx می باشد.
-
فشرده سازی Gzip را بر روی nginx یا Apache فعال کنید.
-
برای فایل های استاتیک Expiration Header تنظیم کنید.
Configuration for nginx vhost: location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|eot|mp4|ogg|ogv|webm)$ { expires max; access_log off; } Apache: Make sure the module “mod_expire” is enabled
-
فقط ماژول های مورد نیاز برای Apache رو فعال نگه دارید.
-
KeepAlive را در وب سرور فعال کنید.
-
CDN پیکربندی کنید.
-
روی سرور Production خود حتماً Xdebug و Zend Debugger را غیر فعال کنید.
2- پیکربندی مجنتو برای بهبود پرفورمنس
-
در صورتی که از یک وب سرور استفاده می کنید در فایل /app/etc/locale.xml تنظیمات مربوط به APC را به این صورت وارد کنید.
... apc mgt_ ...
-
در صورتی که از چندین وب سرور همزمان استفاده می کنید می بایست از MemCached به عنوان یک cache متمرکز استفاده کنید.
... memcached ...
-
Session ها را در Memory نگه دارید.
-
در راهکارهای تک سروری از Memory Base File System هایی مثل tempfs و RAMdisk می توانید استفاده کنید.
-
هر گونه Extentionی که بر روی مجنتو نصب کرده اید و ضروری نیست حذف کنید
-
در مسیر System -> Configuration -> Catalog -> Catalog -> Frontend وارد شوید و گزینه های Use Flat Catalog Category و Use Flat Catalog Product را روی Yes قرار دهید.
-
گزینه های “Merge JavaScript Files” و “Merge CSS Files” را روی yes قرار دهید.
-
حتی الامکان از layered navigation استفاده نکنید
-
از افزونه ioncube encrypted که برای Encode کردن فایل های PHP کاربرد دارد استفاده نکنید
-
تعداد محصول نمایش داده شده در صفحه کتیگوری را حتی الامکان محدود کنید
System -> Configuration -> Catalog -> Catalog -> Frontend
-
لاگ مجنتو را غیر فعال کنید (به طور پیشفرض غیر فعال است)
System -> Configuration -> Advanced -> Developer -> Log Settings
-
Cron و Log Cleaning را فعال کنید
System > Configuration > Advanced > System -> Log Cleaning
3- تغییرات Front End
-
تصاویر سایت می بایست بهینه شده و فشرده شده باشد
-
فایل های javascript می بایست minimize شده باشد
-
ابعاد تصاویر مشخص شده باشد (image Dimensions)
-
بلاک هایی که از آن ها استفاده نمی کنید را از لیوت های XML تان حذف کنید
-
از Lazy Image Loader استفاده کنید
-
ترجیحاً از قالب های سبک و کم حجم استفاده کنید
4-صفحه استاتیک خاص
در صورتی که بر روی یک صفحه استاتیک خاص ترافیک بسیار زیادی دارید (به عنوان مثال بر روی یک صفحه تبلیغاتی به صورت PopUp قرار دادید) می توانید از Varnish cache نیز استفاده کنید.کش varnish برای آن دسته از وب سایت هایی که بازدید بسیار زیادی دارند اما محتوای آن ها به لحظه تغییر نمی کند می تواند بسیار قوی و تاثیر گذار باشد زیرا که به این صورت عمل می کند که بین وب سرور و کاربر قرار می گیرد و خروجی html وب سایت را در حافظه RAM کش می کند و اگر بار دوم درخواستی برای آن صفحه برسد ، صفحه از داخل رم برای کاربر لود می شود و درخواست سمت وب سرور و php و mysql نمی رسد بنابر این سرعت به طور چشم گیری افزایش می یابدپیکربندی این نوع کش برای مجنتو نیاز به تجربه زیادی دارد و در صورتی که میخواهید آن را پیکربندی کنید توصیه می شود حتماً ابتدا در محیط Development این کار انجام شود و پس از تست بر روی سرور Production پیاده سازی شود.
جهت آگاهی بیشتر می توانید با کارشناس ان ما صحبت کنید.
با کارشناسان خبره ما در ارتباط باشید
در این راستا کارشناسان نت وب علاوه بر داشتن ارتباط مستمر با مشتریان، بطور پیوسته در حال بهبود ارتقاء سطح دانش فنی کارشناسان حرفه ایی خود میباشد تا بدینوسیله علاوه بر افزایش رضایت مشتریان و بالابردن کارایی سیستمها، مزیت رقابتی بهتری را برای مشتریان خود فراهم سازد.در صورت وجود هر گونه سوال در مورد مطلب فوق می توانید به راحتی از طریق هر یک از بستر های ارتباطی مدرن با ما در ارتباط باشید
[fullwidth background_color=”” background_image=”” background_parallax=”fixed” enable_mobile=”no” parallax_speed=”0.3″ background_repeat=”no-repeat” background_position=”left top” video_url=”” video_aspect_ratio=”16:9″ video_webm=”” video_mp4=”” video_ogv=”” video_preview_image=”” overlay_color=”” overlay_opacity=”0.5″ video_mute=”yes” video_loop=”yes” fade=”no” border_size=”0px” border_color=”#ffffff” border_style=”solid” padding_top=”50″ padding_bottom=”10″ padding_left=”0px” padding_right=”0px” hundred_percent=”no” equal_height_columns=”no” hide_on_mobile=”no” menu_anchor=”” class=”” id=””][separator style_type=”single” top_margin=”” bottom_margin=”20″ sep_color=”#2d2e42″ border_size=”” icon=”” icon_circle=”” icon_circle_color=”” width=”” alignment=”center” class=”” id=””][one_half last=”no” spacing=”yes” center_content=”no” hide_on_mobile=”no” background_color=”” background_image=”” background_repeat=”no-repeat” background_position=”center center” hover_type=”none” link=”” border_position=”all” border_size=”0px” border_color=”” border_style=”solid” padding=”” margin_top=”” margin_bottom=”” animation_type=”0″ animation_direction=”down” animation_speed=”0.1″ animation_offset=”” class=”” id=””][imageframe lightbox=”no” gallery_id=”” lightbox_image=”” style_type=”none” hover_type=”none” bordercolor=”” bordersize=”0px” borderradius=”0″ stylecolor=”” align=”none” link=”” linktarget=”_self” animation_type=”0″ animation_direction=”down” animation_speed=”0.1″ animation_offset=”” hide_on_mobile=”no” class=”” id=””] [/imageframe][/one_half][one_half last=”yes” spacing=”yes” center_content=”no” hide_on_mobile=”no” background_color=”” background_image=”” background_repeat=”no-repeat” background_position=”center center” hover_type=”none” link=”” border_position=”all” border_size=”0px” border_color=”” border_style=”solid” padding=”” margin_top=”” margin_bottom=”” animation_type=”0″ animation_direction=”down” animation_speed=”0.1″ animation_offset=”” class=”” id=””]
با کارشناسان خبره ما در ارتباط باشید
در این راستا کارشناسان نت وب علاوه بر داشتن ارتباط مستمر با مشتریان، بطور پیوسته در حال بهبود ارتقاء سطح دانش فنی کارشناسان حرفه ایی خود میباشد تا بدینوسیله علاوه بر افزایش رضایت مشتریان و بالابردن کارایی سیستمها، مزیت رقابتی بهتری را برای مشتریان خود فراهم سازد.در صورت وجود هر گونه سوال در مورد مطلب فوق می توانید به راحتی از طریق هر یک از بستر های ارتباطی مدرن با ما در ارتباط باشید