نحوه کاهش بار سرور با استفاده از admin-ajax در وردپرس. نحوه افزایش سرعت وردپرس - خلاص شدن از شر admin-ajax تنظیم فرکانس درخواست ها به سرور

سلام به همه. موضوع افزایش سرعت سایت وردپرس را ادامه می دهیم. در مقاله ما چیزهای غیر ضروری را از پرونده ها حذف کردیم، اما هنوز همه چیز را نه. به طور کلی، خوبی در مورد وردپرس این است که به شما امکان می دهد کد را به روشی که می خواهید تغییر دهید، مطابق با خواسته های مختلف.

هنگام خرید هاست، مطمئناً تخمین می زنید که چقدر حافظه برای سایت مورد نیاز است و بارگذاری آن چقدر خواهد بود. و اگر محدودیت بودجه دارید، باید این پارامترها را ذخیره کنید.

چنین مکانیزمی در موتور وجود دارد - Heartbeat API. چرا نیاز است؟ آن چیست؟

HeartBeat API مسئول است

  • برای ذخیره خودکار؛
  • برای مسدود کردن یک صفحه یا پست برای سایر مدیران سایت در حالی که چیزی را در آنجا ویرایش می کنید.
  • برای به روز رسانی اطلاعات در مورد حضور کاربر در کنسول.

متوجه شدید، من امیدوارم که در این لحظه منابع صرفاً بلعیده شود، زیرا درخواست های دائمی برای میزبانی فایل admin-ajax.php وجود دارد. و اگر دوست دارید چندین برگه پنل مدیریت را به طور همزمان باز کنید، این یک مشکل کامل است. من را برای اصطلاحات ببخشید. درخواست ها به صورت مستقل برای هر برگه ارسال می شوند.

اساسا HeartBeat API پرمصرف ترین مکانیسم در موتور وردپرس است.

آیا به چنین مکانیزمی نیاز دارید؟ البته هر کس برای خودش تصمیم می گیرد. من به آن نیازی ندارم.

اعتقاد بر این است که اگر تنها مدیر هستید و همچنین اگر منابع کافی در حساب شما وجود دارد غیرفعال کردن آن منطقی است، اما در حالی که ادمین در کنسول است، بار افزایش می یابد و به طور قابل توجهی افزایش می یابد.

طبق مشاهدات من، پس از خاموش کردن API HeartBeat، حجم اشغال شده سایت من تقریبا 2.5 برابر کاهش یافت! جدی میگم حیف که اسکرین شات نگرفتم، اما نمی خواهم به حالت اولیه برگردم.

چگونه با خاموش کردن HeartBeat API سرعت سایت وردپرس را افزایش دهیم

خاموش شدن Heartbeat APIکد

همه چیز بسیار ساده است. شما باید آن را به ابتدای فایل functions.php، درست بعد از تگ اضافه کنید

Add_action("init"، "stop_heartbeat"، 1); تابع stop_heartbeat() (wp_deregister_script("Heartbeat");)

و شما خوشحال خواهید شد.

توجه!این کد ممکن است برای سایت شما مناسب نباشد. همه چیز به تم، افزونه ها و تنظیمات نصب شده بستگی دارد. می توانید امتحان کنید و اگر کد با هر عنصری از سایت ناسازگار است یا چیزی خراب شد و کار نکرد، همیشه می توانید همه چیز را برگردانید. فقط کد رو پاک کن

پلاگین Heart Beat Control

با کدها راحت نیستید و از آسیب رساندن به سایت خود نمی ترسید؟ چنین راه حلی برای شما وجود دارد.

افزونه HeartBeat Control را نصب کنید (افزونه‌ها را در کنسول انتخاب کنید، یک افزونه جدید نصب کنید، افزونه را جستجو کنید، نصب و فعال کنید).

به تنظیمات بروید (در کنسول Tools -> Heartbeat Control). در تنظیمات می توانید گزینه های زیر را انتخاب کنید:

1. غیرفعال کردن ضربان قلب برای کل سایت یا استفاده از آن برای برخی از بخش ها.

2. می توانید و باید تعداد درخواست ها را در فایل admin-ajax.php ویرایش کنید. هنگام نصب، به احتمال زیاد به عنوان 15 ثانیه نشان داده شده است. اگر مثلاً به 30 ثانیه تغییر دهید، مصرف منابع برای این درخواست ها 25٪ کاهش می یابد! و اگر زمان را بیشتر افزایش دهید، حتی بیشتر. چشمگیر است، درست است؟

توجه!

  • غیرفعال کردن HeartBeat API ویژگی ذخیره خودکار را غیرفعال می کند. هر از گاهی، صفحات و ورودی ها را هنگام ویرایش (در صورت لزوم) ذخیره کنید.
  • غیرفعال کردن HeartBeat API در یک الگوی خاص رخ می دهد. اگر قالب را تغییر دهید، همه چیز باید دوباره انجام شود.
  • اگر تم فعلی را به روز کرده اید، پس از به روز رسانی، خاموش شدن باید تکرار شود.

همگی موفق باشید!

2016-05-05T09:48:44+00:00 امیدوردپرس چگونه سرعت وردپرس را افزایش دهیم

سلام به همه. موضوع افزایش سرعت سایت وردپرس را ادامه می دهیم. در مقاله نحوه افزایش سرعت وردپرس با کوچک کردن CSS، HTML و جاوا اسکریپت، موارد غیر ضروری را از فایل ها حذف کردیم، اما نه همه آنها. به طور کلی، خوبی در مورد وردپرس این است که به شما امکان می دهد کد را به روشی که می خواهید تغییر دهید، مطابق با خواسته های مختلف. هنگام خرید هاست، مطمئناً در نظر می گیرید ...

نادژدا تروفیمووا [ایمیل محافظت شده]سایت وبلاگ مدیر

همچنین ممکن است که شما علاقه مند باشید به:

نحوه ساخت فاویکون برای وب سایت

فاویکون آیکون زیبایی است که همه در کنار نام سایت در مرورگر می بینند. فاویکون به سایت شما اجازه می دهد تا هم در بوکمارک های مرورگر برجسته شود و هم...

دکمه های زیبا برای سایت

روز همگی بخیر ناگهان افرادی پیدا می شوند که می خواهند دکمه های زیبایی را در وب سایت خود قرار دهند، اما نمی توانند آنها را پیدا کنند. در واقع من در موتورهای جستجو تلاش کردم ...

مثال 404 صفحه

با سلام خدمت شما خواننده عزیز وبلاگ من. این مقاله در مورد هیچ چیزی نیست، من بالاخره به صفحه 404 رسیدم.

برچسب‌های عنوان و توضیحات چگونه و کجا نوشته می‌شوند

برچسب های عنوان و توضیحات چیست؟ این تگ ها برای بهینه سازی سایت شما ضروری هستند. اگر برچسب ها اشتباه نوشته شده باشند، موتورهای جستجو مقاله شما را ایندکس نمی کنند. بسیاری از...

برای سئو و تجربه کاربری بهتر، کارشناسان همیشه به کاربر نهایی توصیه می کنند. در این زمینه، اگر کاربران زیادی دارید که از سایت شما بازدید می کنند، داشبورد وردپرس ممکن است دیر پاسخ دهد.

هنگام تست سرعت سایت وردپرس خود با استفاده از ابزارهای تست سرعت آنلاین، ممکن است متوجه شده باشید که این فایل admin-ajax.phpمسئول تجربه بارگذاری آهسته است. در این مقاله در مورد این فایل توضیح خواهیم داد که چگونه می توانید با کاهش تعداد درخواست های ایجاد شده توسط admin-ajax.php زمان پاسخ سرور و استفاده از CPU را کاهش دهید.

admin-ajax.php در وردپرس چیست؟

در سال 2013، وردپرس API قلب وردپرس را معرفی کرد که چندین ویژگی مهم مانند ویژگی ذخیره خودکار در هنگام انقضای ورود به سیستم و هشدار ممنوعیت زمانی که کاربر دیگری در حال نوشتن یا ویرایش یک پست در وردپرس است را ارائه می‌کرد.

دو ویژگی بسیار متمایز Heartbeat API:

1. ذخیره خودکار

هر زمان که پیش‌نویس پستی را ذخیره می‌کنید و به کار روی آن ادامه می‌دهید، وردپرس به‌طور خودکار نوشته‌های اضافه شده شما را ذخیره می‌کند. تفاوت واضحی بین ذخیره خودکار و ذخیره دستی پروژه وجود دارد. اسکرین شات زیر را بررسی کنید که هر دو نوع ذخیره را نشان می دهد:

2. پیام را مسدود کنید

هر زمان که بخواهید پستی را ویرایش کنید که کاربر دیگری روی آن کار می کند، یک هشدار درباره وضعیت ظاهر می شود. سه عمل در دسترس شماست.

ویژگی های فوق توسط WordPress Heartbeat API امکان پذیر شده است که ارتباطی بین سرور و مرورگر برای پیام و پاسخ های مربوطه ایجاد می کند.

WordPress Heartbeat API درخواست‌هایی برای ارتباط با سرور ایجاد می‌کند و رویدادها را برای دریافت/پاسخ داده‌ها فعال می‌کند. این به طور کلی باعث افزایش بار روی سرور و در نهایت کاهش سرعت پنل مدیریت وردپرس می شود.

نمونه زنده

ما وارد داشبورد وردپرس شدیم و شروع به ویرایش پست کردیم. در مرحله بعد، تب را برای چند دقیقه باز گذاشتیم و شروع به مرور سایر تب ها کردیم. پانل ابزار هنوز در سیستم است و شما می توانید آن را ببینید admin-ajaxبه طور مداوم درخواست ارسال می کند.

طبق تیکت ذکر شده در بالا، admin-ajax.php در وردپرس هر 15 ثانیه یک بار درخواست ایجاد می کند. درخواست می تواند هر گونه اتصال به سرور باشد.

افزایش سرعت پنل مدیریت وردپرس

برای افزایش سرعت بک‌اند وردپرس، بهترین روش این است که API Heartbeat را غیرفعال کنید یا حداقل آن را روی یک دوره زمانی طولانی‌تر تنظیم کنید تا هر چند ثانیه یک بار درخواست‌هایی برای سرور ایجاد نکند.

افزونه Heartbeat Control را نصب کنید

وارد ادمین وردپرس خود شوید و به افزونه ها >> افزودن جدید، پیدا کردن کنترل ضربان قلب, نصبو فعال کردنخود.

به برگه بروید تنظیمات >> کنترل تنظیمات ضربان قلب. در آنجا سه ​​منوی کشویی برای پیکربندی افزونه پیدا خواهید کرد.

می‌توانید ناحیه‌ای را که Heartbeat API کار می‌کند انتخاب کنید. سه گزینه برای انتخاب وجود دارد:

  • داشبورد وردپرس: با این کار Heartbeat API در پنل وردپرس فعال می شود.
  • Frontend: این API را در رابط وب فعال می کند.
  • ویرایشگر پیام: اگر می‌خواهید به Heartbeat API اجازه دهید قابلیت‌های ذخیره خودکار و مسدود کردن ایمیل را فعال کند، این کادر را علامت بزنید.

اگر می‌خواهید API قلب وردپرس در مکان‌های خاصی غیرفعال شود، این گزینه را انتخاب کنید. هنگام انتخاب مکان مراقب باشید زیرا سایر افزونه ها نیز ممکن است از API قلب وردپرس استفاده کنند. اگر تنها کاربر بک‌اند وردپرس هستید، پیشنهاد می‌کنم آن را در همه جا غیرفعال کنید و سپس بررسی کنید که آیا وب‌سایت را خراب می‌کند یا خیر. با این حال، اگر سایت شما بیش از یک کاربر دارد که به طور منظم مشارکت می‌کنند، پیشنهاد می‌کنیم فقط در صفحات ویرایش پست Heartbeat API را فعال کنید.


این منوی کشویی به شما امکان می دهد فاصله زمانی را از 0 تا 300 ثانیه برای اجرای درخواست های مدیریت Ajax تنظیم کنید. اگر آن را نصب کنید 120 ثانیه، سپس درخواست هر 120 ثانیه ایجاد می شود. این به میزان قابل توجهی بار روی سرور را کاهش می دهد. آن را مطابق با نیاز خود سفارشی کنید.

ایجاد قوانین متعدد

شما می توانید قوانین متعددی را بر اساس نیاز خود ایجاد کنید. به عنوان مثال، شما می خواهید وردپرس هر 120 ثانیه فعال شود، اما پس از ویرایش به مدت 60 ثانیه فعال شود. برای انجام این کار، باید دو قانون ایجاد کنید. یکی برای داشبورد وردپرس و دیگری برای ویرایشگر پست و فرکانس آنها را به ترتیب 120 و 60 تنظیم کنید.

اکنون که همه چیز را تنظیم کرده اید، وقت آن است که بررسی کنید کدام افزونه ها با استفاده از فایل admin-ajax.php سرعت وب سایت شما را کاهش می دهند.

به GTmetrix بروید، آدرس سایت خود را وارد کنید. تجزیه و تحلیل سایت چند دقیقه طول می کشد. پس از آن، به تب Waterfall بروید و خواهید دید که فایل چقدر طول می کشد تا اتصالات و پاسخگویی را انجام دهد. کمی پایین بروید و ببینید آیا ورودی وجود دارد یا خیر POST admin-ajax.php. اگر بله، آن را گسترش دهید و به تب Post بروید. در اینجا می توانید مقصر را شناسایی کنید. در مورد ما، افزونه “Desktop switch” از فایل admin-ajax.php استفاده می کند و به طور مداوم درخواست ها را به سرور ارسال می کند. اکنون زمان تصمیم گیری برای جایگزینی آن با افزونه دیگری یا حذف آن است.

کلمات پایانی

با توجه به مجموعه ویژگی های آن، Heartbeat API در سایت وردپرس شما بسیار مفید است. با این حال، اگر به درستی از آن استفاده نشود، می تواند زمان بارگذاری در باطن وردپرس و در خود سایت را افزایش دهد و درخواست ها را به وردپرس ارسال کند.

تنها دو راه حل برای این مشکل وجود دارد. یا Heartbeat API را غیرفعال کنید/فقط در چند مکان آن را فعال کنید.

اگر از هر پلاگین کش مانند W3TC استفاده می کنید، کش شی را حتما غیرفعال کنید. این کار باعث افزایش سرعت داشبورد وردپرس شما نیز می شود.

اگر پیشنهاد یا درخواستی دارید، در زیر نظر دهید.

یک سناریوی رایج هنگام کار با وردپرس، تشخیص افزایش استفاده از admin-ajax.php است. اگر مدتی با وردپرس کار می‌کنید، به احتمال زیاد هنگام اجرای تست‌های سرعت شخص ثالث یا بررسی گزارش‌های دسترسی به سرور با این مشکل مواجه شده‌اید. به طور معمول، افزایش استفاده از admin-ajax.php با استفاده از افزونه های شخص ثالث یا درخواست های مکرر غیر قابل ذخیره از پنل مدیریت بر اساس Heartbeat API (به عنوان مثال، ذخیره خودکار پیش نویس ها) مرتبط است. بسیار مهم است که فوراً چنین پیک های بالایی را در بازدیدهای admin-ajax.php شناسایی کنید، زیرا می توانند منجر به در دسترس نبودن سایت شوند. توصیه های زیر را برای عیب یابی مشکلات admin-ajax.php در وردپرس بررسی کنید.

فایل admin-ajax.php چیست؟

خود فایل admin-ajax.php اگر درست استفاده شود بد نیست. به عنوان بخشی از هسته عمل می کند. این فایل توسط تیم توسعه وردپرس در نسخه 3.6 اضافه شده است. هدف admin-ajax.php ایجاد ارتباط بین مرورگر و سرور با استفاده از AJAX است. این به ویژگی‌های پیشرفته‌ای از جمله بهبود ذخیره خودکار، ردیابی نسخه، زمان‌بندی ورود، مدیریت جلسه و اعلان‌های قفل پست زمانی که چندین نویسنده در حال ویرایش یک پست هستند، اجازه می‌دهد. همه این ویژگی ها عالی هستند، به خصوص برای آن دسته از کاربرانی که از سایت هایی با چندین نویسنده و مدیر پشتیبانی می کنند.

ایده این است که یک API نسبتا ساده را پیاده سازی کنیم که درخواست های XHR را هر 15 ثانیه به سرور ارسال می کند و هنگام دریافت داده ها، رویدادها (یا پاسخ به تماس ها) را فعال می کند. سایر مؤلفه‌ها همچنین می‌توانند «وصل شوند» یا اعلان‌هایی درباره فعالیت سایر کاربران دریافت کنند. این می تواند برای جلوگیری از ویرایش همزمان ویجت ها یا منوها یا سایر کارهایی که نیاز به به روز رسانی منظم از سرور دارند استفاده شود."

مگر اینکه از نظر فنی کاربر باهوشی باشید، تنها موقعیتی که در زمینه admin-ajax.php برای شما مهم خواهد بود این است که بفهمید چرا سرعت این فایل در تست ها کاهش می یابد (مثلاً در Pingdom). یا ممکن است تعداد زیادی درخواست برای این فایل در گزارش های دسترسی میزبانی مشاهده کنید.

ظاهر admin-ajax.php در تست‌های سرعت و گزارش‌های دسترسی معمولاً نتیجه دو سناریو مختلف است: یکی در frontend و دیگری در backend. بعداً در این مورد صحبت خواهیم کرد.

افزونه ها ممکن است باعث کند شدن admin-ajax.php شوند

محبوب ترین مشکلی که کاربران در زمینه admin-ajax.php با آن مواجه می شوند توسط افزونه های شخص ثالث ایجاد می شود. این معمولا در قسمت جلویی قابل مشاهده است و در تست های سرعت خود را نشان می دهد. توسعه دهندگان از این فایل یا AJAX برای افزودن قابلیت به افزونه های خود استفاده می کنند. فقط به این دلیل که درخواستی از admin-ajax.php می بینید به این معنی نیست که لزوما سرعت سایت را کاهش می دهد. AJAX پس از ارائه صفحه بارگیری می شود و برخی از درخواست ها ممکن است به صورت ناهمزمان بارگیری شوند. اما این همیشه به این معنی نیست که توسعه دهنده دانلود را به درستی انجام داده و کدهای کارآمد را از نظر عملکرد نوشته است.

در زیر نمونه هایی از نحوه تشخیص سریع کاهش سرعت در admin-ajax.php آورده شده است. ما از GTmetrix استفاده کردیم زیرا به ما اجازه می دهد تا داده های پست و پاسخ را بررسی کنیم. متأسفانه Pingdom به ما اجازه نمی دهد درخواست های داده را در فرم ها ببینیم. همچنین می توانید از Google Chrome Devtools یا WebPageTest استفاده کنید.

هنگام استفاده از پلاگین ویژوال کامپوزر، admin-ajax.php بارگذاری بالایی دارد

در زیر سایت وردپرس ما است که در آن هنگام استفاده از admin-ajax.php با تأخیر بسیار بالایی مواجه بودیم. همانطور که از GTmetrix می بینید، تاخیر درخواست ها به admin-ajax.php بیش از 8 ثانیه است. بقیه "آبشار" خوب به نظر می رسد، اما این تاخیر باید توسط صاحبان سایت برطرف شود.

اگر روی درخواست POST admin-ajax.php کلیک کنید، سه تب زیر را مشاهده خواهید کرد: Headers، Post و Response. هنگام تشخیص مشکلاتی که به آنها نگاه می کنیم، فقط به برگه های ارسال و پاسخ علاقه مند خواهیم بود. نکات را می توان در تب Response مشاهده کرد. می بینیم که بخشی از درخواست با اسکریپت vc_shortcodes-custom-css مرتبط است.

یک کپی و پیست سریع در گوگل نشان می دهد که این مشکل توسط افزونه ویژوال کامپوزر ایجاد شده است.

قدم بعدی برای کاربر این است که اطمینان حاصل کند که افزونه ویژوال کامپوزر کاملاً به روز است. اگر بله، پس باید با توسعه دهندگان افزونه تماس بگیرید و مشکل admin-ajax.php را به آنها بگویید. این در واقع یک مشکل نسبتاً رایج است، با قضاوت در پست‌های Stack Overflow. اگر یک توسعه دهنده نتواند آن را در افزونه خود حل کند، همیشه چندین افزونه جایگزین وجود دارد که تقریباً همان کار را انجام می دهند - این قدرت WP است. به عنوان مثال، اگر به صفحه ساز نیاز دارید، می توانید Beaver Builder یا Elementor را امتحان کنید.

تأخیر بالا با admin-ajax.php به دلیل افزونه نوار اعلان

نمونه دومی که خودمان با آن مواجه شدیم پس از نصب یک افزونه شخص ثالث رخ داد. ما متوجه افزایش شدید درخواست ها به admin-ajax.php شدیم.

دوباره، اگر روی درخواست POST admin-ajax.php کلیک کنید، می توانید همه چیز را با جزئیات بررسی کنید. می بینیم که داده ها حاوی رشته "action=mtsnb_add_impression&bar_id=88&ab_variation=none" هستند.

به درستی، قسمت اول اکشن پست معمولاً به کلاس CSS افزونه اشاره دارد. ما یک جستجوی سریع در گوگل برای "mtsnb" انجام می دهیم و متوجه می شویم که این کلاس در افزونه نوار اعلان که در سایت خود اجرا می کنیم استفاده می شود.

اگر توسعه‌دهنده هستید، راه‌های دیگری برای ردیابی اینکه کدام افزونه ممکن است پاسخ POST ایجاد کند وجود دارد، اما روش‌های توضیح‌داده‌شده در این مقاله را بسیار مؤثر می‌دانیم.

روش قدیمی برای تعیین منبع درخواست های admin-ajax.php

در بالا چندین راه ساده برای پیدا کردن یک افزونه در سایت وردپرس ارائه کرده ایم که ممکن است منجر به این مشکل در admin-ajax.php شود. طبق تجربه ما، این روش ها در 99٪ موارد کار می کنند. با این حال، همچنین اتفاق می افتد که داده ها یا اقدامات POST ممکن است چندان واضح نباشند، و بنابراین شما باید راه ثابت شده قدیمی را طی کنید. به سادگی تمام افزونه های سایت وردپرس خود را غیرفعال کنید. تست سرعت را اجرا کنید. اگر admin-ajax.php در جایی یافت نشد، هر افزونه را به نوبه خود فعال کنید و تست سرعت انجام دهید. به این ترتیب می توانید به سرعت افزونه مشکل ساز را شناسایی کنید.

مشکلات CPU با admin-ajax.php در backend

دومین مشکل اصلی این است که API قلب وردپرس از admin-ajax.php برای راه‌اندازی تماس‌های AJAX از مرورگر وب استفاده می‌کند، که می‌تواند منجر به مصرف بالای CPU شود. هر درخواست AJAX همچنین پشتیبان کامل وردپرس را بارگیری می‌کند، و همه اشکال کش را دور می‌زند. به طور معمول، شما این را در تست های سرعت نخواهید دید. دانستن این موضوع برای کسانی که از هاست اشتراکی ارزان استفاده می کنند بسیار مهم است، زیرا در مورد CPU اتاق تکان دادن زیادی ندارند. این مشکل قبلا با میزبانی HostGator ظاهر شده بود.

یکی از سناریوهایی که باید بسیار مراقب آن باشید، ذخیره خودکار در وردپرس و داشتن تب های باز است. به عنوان مثال، ما یک پروژه جدید در وب سایت خود راه اندازی کردیم و برگه را باز گذاشتیم. Heartbeat API به‌طور پیش‌فرض، فایل admin-ajax.php را هر 15 ثانیه یک‌بار برای ذخیره‌سازی خودکار نظرسنجی می‌کند. این را می توان در گزارش های دسترسی مشاهده کرد. اگر برگه را برای یک روز باز بگذاریم، یک پست می تواند 5760 درخواست در روز ایجاد کند.

این تعداد درخواست های پشتیبان برای یک نفر بسیار زیاد است. تصور کنید اگر چندین ویرایشگر در سایت خود داشته باشید چه اتفاقی می افتد. این درخواست ها به صورت تصاعدی افزایش خواهند یافت. ما در طول تحقیقات خود با DARTDrones، که در آن به گسترش سایت WooCommerce آنها برای Shark Tank کمک کردیم، با این موضوع مواجه شدیم. آنها روزانه بیش از 4100 تماس با admin-ajax.php داشتند، در حالی که تنها 2000 بازدیدکننده داشت. این بهترین نسبت درخواست به بازدید نیست. تحقیقات ما نشان داد که اکثر درخواست‌ها از کنسول می‌آمدند - به این دلیل که مدیران سایت را به‌روزرسانی می‌کردند و آن را برای نمایش آماده می‌کردند.

راهی برای تشخیص برخی مشکلات مربوط به تماس‌های admin-ajax.php در backend وجود دارد که در مورد ذخیره‌سازی خودکار، ویرایش‌ها، قفل کردن رکوردها و غیره به میان می‌آید. برای این کار باید افزونه Heartbeat Control را نصب کنید.

افزونه Heartbeat Control در حال حاضر بر روی بیش از 50000 سایت نصب شده است و دارای امتیاز 5 از 5 است. 2 سال از به روز رسانی آن می گذرد، اما همچنان به همان صورت کار می کند، زیرا API Heartbeat نیز به روز نشده است.

این افزونه به شما اجازه می دهد تا فرکانس تماس ها با API قلب وردپرس را با چند کلیک کنترل کنید. گزینه اول به شما امکان می دهد مکان ضربان قلب را کنترل کنید - برای مثال، آن را در همه جا غیرفعال کنید یا فقط در صفحات ویرایش پست اجازه دهید. توصیه می‌کنیم از گزینه دوم استفاده کنید، زیرا غیرفعال کردن کامل افزونه ممکن است باعث شود برخی از افزونه‌های وابسته به Heartbeat API از کار بیفتند.

گزینه دوم به شما امکان می دهد فرکانس نظرسنجی را تنظیم کنید. تغییر از 15 ثانیه به 60 ثانیه به شما این امکان را می دهد که تعداد درخواست ها را به میزان قابل توجهی ذخیره کنید و منابع سرور را ذخیره کنید (کاهش بار CPU).

همچنین می توانید از یک پلاگین ممتاز مانند perfmatters برای خاموش کردن ضربان قلب، تغییر فرکانس نظرسنجی و تغییر فاصله ذخیره خودکار استفاده کنید.

نتیجه

همانطور که می بینید، چندین گزینه سریع و آسان برای تشخیص و رفع مشکلات با admin-ajax.php وجود دارد. معمولاً به دلیل پلاگین های شخص ثالث ظاهر می شوند که ممکن است با یکدیگر تضاد داشته باشند یا پایگاه کد ضعیفی داشته باشند.

آیا در وب سایت خود با این مشکل مواجه شده اید؟ اگر چنین است، لطفا داستان های خود را به اشتراک بگذارید.

جریان توصیه های مفید به کاربران محبوب ترین CMS رایگان جهان پایان نخواهد یافت. دقیقاً به این دلیل که محبوب است و ویژگی هایی دارد که باید به خاطر بسپارید. قبلا در مورد چگونگی صحبت کردیم:

امروز تم دوم را کمی گسترش می دهیم و یک مکانیسم بسیار پرمصرف را غیرفعال می کنیم و همه به مکانیزم وردپرس نیاز ندارند. Heartbeat API.

Heartbeat API- قابلیت وردپرس که مواردی مانند:

  • ذخیره خودکار؛
  • قفل کردن یک پست یا صفحه برای سایر ویرایشگران سایت در حالی که پست یا صفحه توسط یک نفر ویرایش می شود.
  • به روز رسانی اطلاعاتی که کاربر هنوز در بخش مدیریت (کنسول) است.

این کار را با حفظ ارتباط بین مرورگر شما (جایی که سایت را ویرایش می کنید) و سرور (که سایت در آن ذخیره می شود) انجام می دهد.

در واقع، این در درخواست های ثابت با فاصله 15-30 ثانیه (بسته به نسخه نصب شده) به یک فایل خاص admin-ajax.php از تقریباً هر صفحه از پنل مدیریتی بیان می شود. اگر ترجیح دهید چندین تب کنسول را به طور همزمان باز نگه دارید، وضعیت بدتر می شود: درخواست ها به طور مستقل از هر برگه ارسال می شوند. در حقیقت، HeartBeat API از همه مکانیسم های استاندارد وردپرس پرمخاطب ترین منبع است.

امروز این ویژگی را غیرفعال خواهیم کرد. اگر:

  • به طور کلی، سایت های شما منابع کافی در حساب شما دارند، قابل توجه است بیش از حد فقط هنگام کار در کنسول رخ می دهد;
  • ویرایش سایت فقط توسط شما شخصا انجام می شود(یعنی سایت 1 ویرایشگر دارد نه چندین ویرایش).

توجه!این راه حل برای همه سایت ها مناسب نیست. این بستگی به موضوع نصب شده در سایت، افزونه ها و تنظیمات سایت فردی دارد. می توانید آن را امتحان کنید و اگر مشخص شد که با هر عنصری از سایت ناسازگار است یا بر عملکرد سایتی که برای شما مهم است تأثیر می گذارد، همیشه می توانید با بازگرداندن تنظیمات قبلی HeartBeat API را فعال کنید.

نحوه غیرفعال کردن HeartBeat API

برای این کار باید تغییراتی در فایل ایجاد کنید functions.phpداخل پوشه با تم (قالب) فعال فعلی سایت. این را می توان در یک مدیر فایل یا از طریق FTP انجام داد.

مسیر فایل functions.php به این صورت است: /path_to_site_root/wp-content/themes/theme_name/functions.php.

در همان ابتدای فایل بعد از تگ اضافه کنید

Add_action("init"، "stop_heartbeat"، 1); تابع stop_heartbeat() (wp_deregister_script("Heartbeat");)

این خطوط، ضربان قلب را برای کل سایت غیرفعال می کند.

پلاگین Heart Beat Control

همچنین راه حل کمتری نسبت به غیرفعال کردن کامل HeartBeat API وجود دارد. توسط یک پلاگین خاص ارائه شده است کنترل ضربان قلب. آن را نصب کنید، آن را فعال کنید و به تنظیمات (Tools -> Heartbeat Control) بروید. در تنظیمات می توانید گزینه های زیر را انتخاب کنید:

1. غیرفعال کردن HeartBeat برای کل سایت یا اجازه استفاده از آن فقط برای بخش‌های خاصی از آن، به عنوان مثال، برای صفحه ویرایش و انتشار پست‌ها در پانل مدیریت.

2. فراوانی درخواست ها به فایل admin-ajax.php. به طور پیش فرض می تواند 15 ثانیه باشد - این مقدار را به عنوان مثال به 60 ثانیه تغییر دهید و در نتیجه مصرف منابع برای این پرس و جوها را تا 75 درصد کاهش دهید!

آنچه مهم است به خاطر بسپارید

  • با غیرفعال کردن HeartBeat API، ویژگی ذخیره خودکار را غیرفعال کردیم. صفحات و پست های ویرایش شده را به صورت دوره ای (در صورت نیاز) ذخیره کنید.
  • از آنجایی که HeartBeat API در سطح تم (قالب) سایت غیرفعال است، به محض تغییر تم (قالب)، API HeartBeat دوباره کار خواهد کرد. برای هر موضوع جدیدی که در سایت شروع به استفاده از آن می کنید، باید روند غیرفعال کردن تکرار شود.
  • همین امر در مورد به‌روزرسانی موضوع فعلی نیز صدق می‌کند: پس از به‌روزرسانی، روند خاموش کردن باید تکرار شود.

ما برای شما یک کار لذت بخش آرزو می کنیم!

من مجبور شدم این پست را به دلیل مشکلی ایجاد کنم که با اصرار بیشتر و بیشتر در سایت من ضربه زد. مشکل باز کردن صفحات سایت و کار در پنل مدیریت است. آنها آنقدر قوی و مکرر شدند که نوشتن یک پیام کوچک دشوار شد. اتصال به سرور مدام قطع می شد. بار زیاد روی CPU، که به معنای فراتر رفتن از حد به اصطلاح نرم است، به طور مداوم رخ می دهد. من اغلب از متریکا و پلاگین Jetpack پیام‌های ایمیل دریافت می‌کردم، مبنی بر اینکه سایت اغلب در دسترس نیست، حتی در زمانی که من روی آن کار نمی‌کردم. خلاصه بازم یه وحشت وحشتناک با مشکل سرعت سایت منو گرفت. و من دوباره با خدمات پشتیبانی در هاست خود "Gino" تماس گرفتم

پاسخ بلافاصله آمد و با گفتگوی بیشتر با توضیحات کوچک، اصل مشکلات را فهمیدم و توانستم آنها را برطرف کنم.

پشتیبانی هاست اول از همه توجه من را به تعداد زیادی درخواست جلب کرد /wp-admin/admin-ajax.php.«درخواست‌ها اقداماتی را در پنل مدیریت سایت ایجاد می‌کنند. اگر یکی از افزونه ها به درستی کار نکند، این رفتار معمولی است. پلاگین های سایت را یکی یکی غیرفعال کنید و بر عملکرد آن نظارت کنید. اگر افزونه مشکلی پیدا کردید، آن را به روز کنید یا یک نسخه پایدار نصب کنید یا آن را با آنالوگی جایگزین کنید که مشکلی ایجاد نمی کند.

تعداد زیادی افزونه در سایت من نصب شده است و بررسی هر کدام به صورت جداگانه بسیار مشکل ساز است. بنابراین به لینکی که پشتیبانی فنی برای افزونه از من گذاشته بود توجه کردم کنترل ضربان قلب. با نصبش و چند تا تنظیمات دیگه مشکلم حل شد!

سرویس پشتیبانی فنی همچنین به مشکل دیگری اشاره کرده و پیشنهاد کرده است که برای تصحیح کد موجود در فایل wp-cron.php اقداماتی انجام شود. اما در مورد این مشکل در انتهای پیام.

خب حالا بیایید به اصل مطلب بالا برویم.

Heartbeat API در وردپرس چیست و چگونه آن را محدود کنیم

کلمه "Heartbeat" به عنوان "Heartbeat" ترجمه شده است و به دلیلی برای API به آن گفته می شود. فرکانس مشخصی از درخواست ها را به سرور ارائه می دهد. به طور پیش فرض و بسته به صفحه پنل مدیریت، این در فواصل زمانی مختلف اتفاق می افتد: هنگام ویرایش رکوردها - هر 15 ثانیه، هنگام کار در کنسول - یک دقیقه. WordPress Heartbeat API یک ویژگی است که ارائه می دهد:

  • ذخیره خودکار هنگام ایجاد پیام؛
  • مسدود کردن پست ها یا صفحات برای سایر ویرایشگران سایت در حالی که یک پست یا صفحه توسط یک نفر ویرایش می شود.
  • اطلاعاتی را که کاربر هنوز در بخش مدیریت است (صفحه ویرایش کنسول یا پست) به روز کنید.

این تابع که در موتور WordPres نوشته شده است، بسیار مهم است، به خصوص زمانی که چندین نویسنده می توانند در سایت کار کنند و مدیریت به صورت جمعی باشد. با این حال، همچنین می تواند باعث کاهش سرعت سایت و افزایش قابل توجه بارگذاری روی سرور شود.

اگر شما تنها نویسنده سایت هستید، عملکرد Heartbeat API می تواند به طور کامل غیرفعال شود یا در حالتی که برای شما مناسب است پیکربندی شود و به شما امکان می دهد بار روی سرور را تنظیم کنید.

غیرفعال کردن کامل Heartbeat API

این سناریوی سخت، که من نمی‌خواستم انجام دهم، این است که شما باید عملیاتی را در فایل functions.php تم خود که در حال حاضر روی سایت نصب شده است انجام دهید.

Add_action("init"، "stop_heartbeat"، 1); تابع stop_heartbeat() (wp_deregister_script("Heartbeat");)

البته هنگام به روز رسانی این تم یا جایگزینی آن با تم دیگری، باید این عملیات را دوباره انجام دهید.

افزونه Heartbeat Control و تنظیمات آن

تنها دو تنظیمات وجود دارد و با وجود انگلیسی بودن افزونه، برای کسانی که این زبان را نمی دانند، درک آنها دشوار نخواهد بود. اجازه دهید به شما یادآوری کنم که راه اندازی افزونه استفاده به طور پیش فرضیعنی Heartbeat API در هیچ صفحه ای غیرفعال نیست و فاصله درخواست به سرور 15 ثانیه است.یعنی همه چیز به نظر می رسد که این افزونه در سایت شما نیست.

4. استفاده از تنظیمات صفحات پنل مدیریت

برای شفافیت، توضیح می دهم:

1. از پیش فرض استفاده کنید - به طور پیش فرض از Heartbeat API استفاده کنید.
2. غیرفعال کردن همه جا - غیرفعال کردن Heartbeat API در همه جا.
3. غیرفعال کردن صفحه داشبورد - غیرفعال کردن Heartbeat API در صفحه داشبورد (کنسول).
4. اجازه onli از صفحات ویرایش پست - فقط هنگام ویرایش صفحات از Heartbeat API استفاده کنید.

2. تنظیم فرکانس درخواست به سرور

اینجا همه چیز خیلی ساده است. شما فقط باید فاصله زمانی مناسب از درخواست ها را به سمت شمال انتخاب کنید. هر چه "پالس" نادرتر باشد - هر چه درخواست ها نادرتر باشد - بار روی سرور کمتر می شود.

پس از انجام تنظیمات، تغییرات را ذخیره کنید.

از آنجایی که ذخیره خودکار ضبط ها در حین ویرایش آنها یک عملکرد مطلوب باقی می ماند (شما می توانید ویرایش های غیر ضروری را بعداً با پاک کردن آنها با افزونه های خاص حذف کنید) و از دست دادن ضبط تقریباً کامل شده به دلایل فنی ناخوشایند است (از دست دادن اینترنت یا اتصال با سرور و غیره). ) بسیار نامطلوب است. بنابراین، تنظیمات بلوک اول در فیلد را می توان روی حالت "استفاده از پیش فرض" تنظیم کرد، اما برای انجام تنظیمات در بلوک دوم کاملاً کافی است، زیرا تایمر فرکانس درخواست را روی فایل admin-ajax.php تنظیم کنید. . V 60 ثانیه مصرف منابع برای این درخواست ها را تا 75 درصد کاهش می دهد.!

البته دلایل زیادی وجود دارد که باعث کند شدن سرعت وب سایت ها می شود. بدون دانش مناسب و کار با آنها، ما به سادگی نمی دانیم چه چیزی باعث چنین فرآیندهای بسیار نامطلوبی می شود. احتمالاً باید بیشتر با متخصصان از جمله پشتیبانی فنی میزبانی تماس بگیریم.

در ابتدای مقاله ذکر کردم که کارگران پشتیبانی دلیل دیگری را برای دشواری عملکرد سایت های من به من نشان دادند. دلیل -

فرآیندهای ناخواسته در فایل wp-cron.php

پشتیبانی فنی، در نتیجه تحقیق در مورد عملکرد سایت های من، متوجه شد که "فرآیندهای wp-cron.php" روی آنها مشاهده می شود. آنها توصیه کردند: "اگر اجرای این فایل باعث بارگیری ناسالم روی سرور می شود - می توانید این وظایف را غیرفعال کنید."

  1. برای انجام این کار در فایل پیکربندی وردپرس wp-config.phpخط را اضافه کنید:
    define('DISABLE_WP_CRON', 'true');
    بعد از نصب زبان می توانید آن را در جایی اضافه کنید، یعنی. بعد از خط
    define('WPLANG', 'ru_RU');
  2. راه حل دیگر در خود فایل است wp-cron.phpدر خط نظر دهید: wp-cron.php ignore_user_abort(true); برای انجام این کار، باید قبل از آن یک اسلش دوبل بزنید. اینجوری میشه: //ignore_user_abort(true);این خط در ردیف 12 فایل قرار دارد.

دوستان همین.

(304 بار بازدید شده، 1 بازدید امروز)