WordPress дээр admin-ajax ашиглан серверийн ачааллыг хэрхэн бууруулах вэ. WordPress-ийг хэрхэн хурдасгах вэ - админ-ajax-аас салах Сервер рүү илгээх хүсэлтийн давтамжийг тохируулах

Сайн уу. Бид WordPress сайтыг хурдасгах сэдвийг үргэлжлүүлж байна. Нийтлэлд бид шаардлагагүй зүйлсийг файлуудаас устгасан боловч бүгдийг нь хараахан биш. Ерөнхийдөө WordPress-ийн сайн тал нь өөр өөр хүсэлд нийцүүлэн кодыг хүссэнээрээ өөрчлөх боломжийг олгодог.

Та хостинг худалдаж авахдаа тухайн сайтад хэр хэмжээний санах ой хэрэгтэй, ачаалал ямар байхыг тооцдог. Хэрэв та хөрөнгийн хувьд хязгаарлагдмал бол эдгээр параметрүүдийг хадгалах хэрэгтэй.

Хөдөлгүүрт ийм механизм байдаг - HeartBeat API. Яагаад хэрэгтэй байна вэ? Энэ юу вэ?

HeartBeat API нь хариуцдаг

  • автоматаар хадгалах;
  • Та тэнд ямар нэг зүйлийг засварлаж байх үед бусад бүх сайтын администраторын хуудас эсвэл нийтлэлийг блоклох;
  • консол дээр байгаа хэрэглэгчийн талаарх мэдээллийг шинэчлэхэд зориулагдсан.

Та ойлгож байна уу, одоогоор admin-ajax.php файлыг байршуулах хүсэлт байнга ирдэг тул нөөцийг зүгээр л идэж байна гэж найдаж байна. Хэрэв та админ самбарын хэд хэдэн табыг нэг дор нээх дуртай бол энэ нь үнэхээр аймшигтай юм. Үг хэллэгийг минь уучлаарай. Хүсэлтийг таб бүрт бие даан илгээдэг.

Үндсэндээ HeartBeat API нь WordPress хөдөлгүүрийн хамгийн их нөөц шаарддаг механизм юм.

Ийм механизм хэрэгтэй юу? Мэдээжийн хэрэг, хүн бүр өөрөө шийддэг. Надад хэрэггүй.

Хэрэв та цорын ганц администратор бол, мөн таны дансанд хангалттай нөөц байгаа бол үүнийг идэвхгүй болгох нь утга учиртай гэж үздэг, гэхдээ админ консол дээр байх үед ачаалал нэмэгдэж, мэдэгдэхүйц нэмэгддэг.

Миний ажигласнаар HeartBeat API-г унтраасны дараа миний сайтын эзлэхүүн бараг 2.5 дахин буурсан байна! Би нухацтай байна. Би дэлгэцийн агшин аваагүйдээ харамсалтай байна, гэхдээ би анхны төлөв рүүгээ буцахыг хүсэхгүй байна.

HeartBeat API-г унтрааснаар WordPress сайтыг хэрхэн хурдасгах вэ

Унтраах HeartBeat APIкод

Бүх зүйл маш энгийн. Та үүнийг functions.php файлын эхэнд, шошгоны дараа нэмэх хэрэгтэй

Нэмэх_үйлдэл("init", "зүрхний цохилтыг зогсоох", 1); Зогсоох_зүрхний цохилт() функц ( wp_deregister_script("зүрхний цохилт"); )

Мөн та аз жаргалтай байх болно.

Анхаар!Энэ код нь таны сайтад тохирохгүй байж магадгүй. Энэ бүхэн суулгасан сэдэв, залгаасууд болон тохиргооноос хамаарна. Та оролдож болно, хэрэв код нь сайтын аль ч элементтэй нийцэхгүй эсвэл ямар нэг зүйл эвдэрч, ажиллахгүй байвал та бүх зүйлийг буцааж өгөх боломжтой. Зүгээр л кодыг арилгана уу.

HeartBeat Control залгаас

Кодуудад тохиромжгүй, сайтаа гэмтээхээс айж байна уу? Танд зориулсан ийм шийдэл байна.

HeartBeat Control залгаасыг суулгана уу (консолоос залгаасуудыг сонгоод шинийг суулгаж, залгаасыг хайж, суулгаад идэвхжүүлнэ үү).

Тохиргоо руу очно уу (консолын хэрэгслүүд -> Зүрхний цохилтын хяналт). Тохиргоо дотроос та дараах сонголтуудыг сонгож болно.

1. Бүх сайтад HeartBeat-ийг идэвхгүй болгох эсвэл зарим хэсэгт ашиглах эсэх.

2. Та admin-ajax.php файлын хүсэлтийн давтамжийг засварлаж болно. Суулгахдаа үүнийг 15 секунд гэж зааж өгсөн байх магадлалтай. Хэрэв та 30 секунд гэж солих юм бол эдгээр хүсэлтийн нөөцийн хэрэглээ 25% -иар буурах болно! Хэрэв та цагийг илүү их хэмжээгээр нэмэгдүүлбэл бүр ч их. Гайхалтай, тийм үү?

Анхаар!

  • HeartBeat API-г идэвхгүй болгосноор автоматаар хадгалах функц идэвхгүй болно. Үе үе хуудас, оруулгуудыг засварлахдаа (шаардлагатай бол) хадгал.
  • HeartBeat API-г идэвхгүй болгох нь тодорхой загварт тохиолддог. Хэрэв та загварыг өөрчилвөл бүх зүйлийг дахин хийх ёстой.
  • Хэрэв та одоогийн сэдвээ шинэчилсэн бол шинэчлэлт хийсний дараа унтрах ажиллагааг давтах ёстой.

Бүгдэд нь амжилт хүсье!

2016-05-05T09:48:44+00:00 Найдвар WordPress wordpress-ийг хэрхэн хурдасгах вэ

Сайн уу. Бид WordPress сайтыг хурдасгах сэдвийг үргэлжлүүлж байна. CSS, HTML болон Javascript-ийг багасгах замаар WordPress-ийг хэрхэн хурдасгах вэ гэсэн нийтлэлд бид шаардлагагүй зүйлсийг файлуудаас устгасан, гэхдээ бүгдийг нь биш. Ерөнхийдөө WordPress-ийн сайн тал нь өөр өөр хүсэлд нийцүүлэн кодыг хүссэнээрээ өөрчлөх боломжийг олгодог. Та хостинг худалдаж авахдаа мэдээжийн хэрэг...

Надежда Трофимова [имэйлээр хамгаалагдсан]Администраторын блог сайт

Та бас сонирхож магадгүй:

Вэбсайтад Favicon хэрхэн хийх вэ

Фавикон бол хөтөч дээрх сайтын нэрний хажууд хүн бүр хардаг үзэсгэлэнтэй дүрс юм. Favicon нь таны сайтыг хөтчийн хавчуурга болон...

Сайтын гоёмсог товчлуурууд

Бүгдэд нь энэ өдрийн мэнд. Гэнэт вэбсайт дээрээ үзэсгэлэнтэй товчлууруудыг байрлуулахыг хүссэн хүмүүс байдаг боловч тэд үүнийг олж чадахгүй. Үнэндээ би хайлтын системээр оролдсон ...

Жишээ 404 хуудас

Сайн байна уу, миний блогын эрхэм уншигч. Энэ нийтлэл нь юу ч биш, би сая 404-р хуудас руу орлоо.

Гарчиг, Тайлбар шошгуудыг хаана, хэрхэн бичдэг

Гарчиг, тайлбар шошго гэж юу вэ? Эдгээр хаягууд нь таны сайтыг оновчтой болгоход зайлшгүй шаардлагатай. Хэрэв шошгуудыг буруу бичсэн бол хайлтын систем таны нийтлэлийг индексжүүлэхгүй. Маш их...

SEO болон хэрэглэгчийн туршлагыг сайжруулахын тулд мэргэжилтнүүд эцсийн хэрэглэгчдэд үргэлж санал болгодог. Энэ хүрээнд, хэрэв танай сайтад олон хэрэглэгчид зочилж байгаа бол WordPress хяналтын самбар хариу өгөхдөө удаан байж магадгүй юм.

Онлайн хурд шалгах хэрэгслүүдийг ашиглан WordPress сайтынхаа хурдыг шалгах явцад та энэ файлыг анзаарсан байх admin-ajax.phpудаашралтай ачааллыг хариуцдаг. Энэ нийтлэлд бид энэ файлын талаар болон admin-ajax.php-ээс үүсгэсэн хүсэлтийн тоог багасгах замаар серверийн хариу өгөх хугацаа болон CPU-ийн хэрэглээг хэрхэн бууруулах талаар тайлбарлах болно.

WordPress дээр admin-ajax.php гэж юу вэ?

2013 онд WordPress нь WordPress Heartbeat API-г нэвтрүүлсэн бөгөөд энэ нь нэвтрэх хугацаа дуусах үед автоматаар хадгалах, өөр хэрэглэгч WordPress дээр нийтлэл бичиж, засварлаж байх үед хориглох анхааруулга зэрэг хэд хэдэн чухал функцээр хангагдсан.

Heartbeat API-ийн маш өвөрмөц хоёр онцлог:

1. Автоматаар хадгалах

Та нийтлэлийн ноорог хадгалаад үүн дээр үргэлжлүүлэн ажиллах бүрт WordPress таны нийтлэлийн нэмэлтүүдийг автоматаар хадгалдаг. Төслийг автоматаар хадгалах, гараар хадгалах хоёрын хооронд тодорхой ялгаа бий. Хоёр төрлийн хадгалалтыг харуулсан дараах дэлгэцийн агшинг үзээрэй.

2. Блок мессеж

Та өөр хэрэглэгчийн ажиллаж байгаа нийтлэлийг засах гэж оролдох бүрт нөхцөл байдлын талаар анхааруулга гарч ирнэ. Танд гурван үйлдэл хийх боломжтой.

Дээрх функцууд нь WordPress Heartbeat API-ийн тусламжтайгаар боломжтой болсон бөгөөд энэ нь сервер болон хөтөчийн хооронд холбогдох мессеж, хариултуудын холболтыг бий болгодог.

WordPress Heartbeat API нь сервертэй холбогдох хүсэлтийг үүсгэж, өгөгдөл хүлээн авах/хариулах үйл явдлуудыг эхлүүлдэг. Энэ нь ерөнхийдөө сервер дээрх ачааллыг нэмэгдүүлж, эцэст нь WordPress админ самбарыг удаашруулдаг.

Амьд жишээ

Бид WordPress хяналтын самбарт нэвтэрч, нийтлэлийг засварлаж эхлэв. Дараа нь бид табыг хэдэн минутын турш нээлттэй орхиж, бусад табуудыг үзэж эхлэв. Багажны самбар системд байгаа бөгөөд та үүнийг харж болно админ-ajaxбайнга хүсэлт илгээдэг.

Дээр дурдсан тасалбарын дагуу WordPress дээрх admin-ajax.php нь 15 секунд тутамд хүсэлт үүсгэдэг. Хүсэлт нь сервертэй ямар ч холболт байж болно.

WordPress админ самбарыг хурдасгах

WordPress-ийн арын хэсгийг хурдасгахын тулд хамгийн сайн арга бол Heartbeat API-г идэвхгүй болгох эсвэл ядаж хэдэн секунд тутамд серверт хүсэлт гаргахгүйн тулд илүү урт хугацаанд тохируулах явдал юм.

Heartbeat Control залгаасыг суулгана уу

WordPress админ руугаа нэвтэрч орно уу Plugins >> Шинээр нэмнэ үү, олох Зүрхний цохилтын хяналт, суулгахТэгээд идэвхжүүлэхтүүний.

Таб руу оч Тохиргоо >> Зүрхний цохилтын тохиргоог удирдах. Тэнд та залгаасыг тохируулах гурван унждаг цэсийг олох болно.

Та Heartbeat API ажиллах хэсгийг сонгож болно. Сонгох гурван сонголт байна:

  • WordPress хяналтын самбар: Энэ нь WordPress хяналтын самбар дээрх Heartbeat API-г идэвхжүүлнэ.
  • Frontend: Энэ нь вэб интерфэйс дэх API-г идэвхжүүлнэ.
  • Мессеж засварлагч: Хэрэв та Heartbeat API-д имэйлийг автоматаар хадгалах, хаах функцийг идэвхжүүлэхийг зөвшөөрөхийг хүсвэл энэ нүдийг чагтална уу.

Хэрэв та WordPress Heartbeat API-г тодорхой байршилд идэвхгүй болгохыг хүсвэл энэ сонголтыг сонгоно уу. Бусад залгаасууд WordPress Heartbeat API-г ашиглаж болзошгүй тул байршлыг сонгохдоо болгоомжтой байгаарай. Хэрэв та WordPress backend-ийн цорын ганц хэрэглэгч бол би үүнийг хаа сайгүй идэвхгүй болгож, дараа нь вэбсайтыг эвдэж байгаа эсэхийг шалгахыг зөвлөж байна. Гэсэн хэдий ч, хэрэв танай сайт тогтмол хувь нэмэр оруулдаг нэгээс олон хэрэглэгчтэй бол бид танд зөвхөн Heartbeat API-г нийтлэл засварлах хуудсан дээр идэвхжүүлэхийг зөвлөж байна.


Энэхүү унадаг цэс нь админ Ajax хүсэлтийг биелүүлэхийн тулд 0-300 секундын хоорондох хугацааны интервалыг тохируулах боломжийг танд олгоно. Хэрэв та үүнийг суулгасан бол 120 секунд, дараа нь хүсэлтийг 120 секунд тутамд үүсгэх болно. Энэ нь сервер дээрх ачааллыг мэдэгдэхүйц бууруулах болно. Өөрийн хэрэгцээнд нийцүүлэн тохируулаарай.

Олон дүрэм бий болгох

Та өөрийн шаардлагад үндэслэн олон дүрэм үүсгэж болно. Жишээлбэл, та WordPress-ийг 120 секунд тутамд ажиллуулахыг хүсч байгаа ч галыг засварласны дараа 60 секундын турш ажиллана. Үүнийг хийхийн тулд та хоёр дүрмийг бий болгох хэрэгтэй. Нэг нь WordPress хяналтын самбарт, нөгөө нь нийтлэл засварлагчдад зориулагдсан бөгөөд тэдгээрийн давтамжийг 120 ба 60 болгон тохируулна.

Одоо та бүх зүйлийг тохируулсан тул admin-ajax.php файлыг ашиглан ямар залгаасууд таны вэбсайтыг удаашруулж байгааг шалгах цаг болжээ.

GTmetrix руу очоод сайтынхаа URL хаягийг оруулна уу. Сайтыг шинжлэхэд хэдэн минут болно. Үүний дараа "Хүрхрээ" таб руу очвол файл холболт болон хариу үйлдэл хийхэд хэр хугацаа шаардагдахыг харах болно. Жаахан доош гүйлгээд оруулга байгаа эсэхийг хараарай POST admin-ajax.php. Хэрэв тийм бол үүнийг өргөжүүлээд "Шуудангийн" таб руу очно уу. Эндээс та гэмт хэрэгтэнг тодорхойлж болно. Манай тохиолдолд "desktop switch" залгаас нь admin-ajax.php файлыг ашигладаг бөгөөд сервер рүү тасралтгүй хүсэлт илгээдэг. Энэ бол үүнийг өөр залгаасаар солих эсвэл устгах шийдвэр гаргах цаг юм.

Эцсийн үгс

Түүний онцлог шинж чанарыг харгалзан Heartbeat API нь таны WordPress сайтад маш их хэрэгтэй байдаг. Гэсэн хэдий ч, хэрэв үүнийг зөв ашиглаагүй бол энэ нь WordPress backend болон сайт дээр ачаалах хугацааг нэмэгдүүлж, WordPress руу нааш цааш хүсэлт илгээх боломжтой.

Энэ асуудлыг шийдэх хоёр л шийдэл бий. Эсвэл Heartbeat API-г идэвхгүй болгож/зөвхөн хэдхэн газарт идэвхжүүлнэ үү.

Хэрэв та W3TC гэх мэт кэш залгаас ашиглаж байгаа бол объектын кэшийг идэвхгүй болгохоо мартуузай. Энэ нь таны WordPress хяналтын самбарыг хурдасгах болно.

Хэрэв танд ямар нэгэн санал, хүсэлт байвал доор сэтгэгдэл үлдээгээрэй.

WordPress-тэй ажиллахад тохиолддог нийтлэг тохиолдол бол admin-ajax.php-ийн хэрэглээ нэмэгдсэнийг оношлох явдал юм. Хэрэв та WordPress-тэй хэсэг хугацаанд ажиллаж байсан бол гуравдагч этгээдийн хурдны тестийг ажиллуулах эсвэл серверийн хандалтын бүртгэлийг шалгах үед ийм асуудалтай тулгарсан байх магадлалтай. Ихэвчлэн admin-ajax.php-ийн хэрэглээ нэмэгдэж байгаа нь гуравдагч талын залгаасуудыг ашиглах эсвэл Heartbeat API-д суурилсан админ самбараас байнга кэш хийх боломжгүй хүсэлтүүд (жишээ нь, ноорог автоматаар хадгалах) зэрэгтэй холбоотой байдаг. Admin-ajax.php-д ийм өндөр өсөлтийг нэн даруй тодорхойлох нь маш чухал бөгөөд энэ нь сайтыг ашиглах боломжгүй болоход хүргэдэг. WordPress дээрх admin-ajax.php-тэй холбоотой асуудлыг шийдэхийн тулд доорх зөвлөмжийг уншина уу.

admin-ajax.php файл гэж юу вэ?

Зөв ашиглавал admin-ajax.php файл өөрөө муу биш. Энэ нь үндсэн хэсгийн үүрэг гүйцэтгэдэг. Энэ файлыг WordPress хөгжүүлэлтийн баг 3.6 хувилбар дээр нэмсэн. Admin-ajax.php-ийн зорилго нь AJAX ашиглан хөтөч болон серверийн хооронд холболт үүсгэх явдал юм. Энэ нь сайжруулсан автомат хадгалалт, хувилбар хянах, нэвтрэх завсарлага, сессийн удирдлага, олон зохиогч нийтлэлийг засварлаж байх үед бичлэгийн түгжээний мэдэгдэл зэрэг дэвшилтэт функцуудыг ашиглах боломжийг олгодог. Эдгээр бүх боломжууд нь ялангуяа олон зохиогч, администратортой сайтуудыг дэмждэг хэрэглэгчдэд тохиромжтой.

"Энэ санаа нь 15 секунд тутамд XHR хүсэлтийг сервер рүү илгээх, өгөгдөл хүлээн авах үед үйл явдлуудыг (эсвэл буцаан залгах) илгээх харьцангуй энгийн API-г хэрэгжүүлэх явдал юм. Бусад бүрэлдэхүүн хэсгүүд нь бусад хэрэглэгчдийн үйл ажиллагааны талаар "холбох" эсвэл мэдэгдэл хүлээн авах боломжтой болно. Энэ нь виджет, цэсийг нэгэн зэрэг засварлах эсвэл серверээс тогтмол шинэчлэлт хийх шаардлагатай бусад ажлыг хаахад ашиглагдаж болно."

Хэрэв та техникийн мэдлэгтэй хэрэглэгч биш л бол admin-ajax.php-ийн хүрээнд танд чухал байх цорын ганц нөхцөл бол энэ файл яагаад туршилтын явцад удааширч байгааг ойлгохыг хичээх явдал юм (жишээлбэл, Pingdom дээр). Эсвэл та байршуулах хандалтын бүртгэлээс энэ файлын хүсэлтийг харж болно.

Хурдны тест болон хандалтын бүртгэлд admin-ajax.php гарч ирэх нь ихэвчлэн хоёр өөр хувилбарын үр дүн юм: нэг нь урд талд, нөгөө нь арын хэсэгт. Энэ талаар бид дараа ярих болно.

Plugins нь admin-ajax.php-г удаашруулахад хүргэж болзошгүй

Admin-ajax.php-ийн хүрээнд хэрэглэгчдэд тулгардаг хамгийн түгээмэл асуудал бол гуравдагч талын залгаасуудаас үүдэлтэй байдаг. Энэ нь ихэвчлэн урд талд харагддаг бөгөөд хурдны шалгалтанд харагдана. Хөгжүүлэгчид энэ файл эсвэл AJAX-ыг залгаасууддаа функц нэмэхийн тулд ашигладаг. Та admin-ajax.php-д хандах хүсэлтийг харлаа гэдэг нь сайтыг удаашруулна гэсэн үг биш юм. AJAX нь хуудсыг танилцуулсны дараа ачаалагдах ба зарим хүсэлтүүд асинхроноор ачаалагдаж болно. Гэхдээ энэ нь хөгжүүлэгч татан авалтыг зөв хийж, гүйцэтгэлийн хувьд үр ашигтай код бичсэн гэсэн үг биш юм.

Бид admin-ajax.php дээрх удаашралыг хэрхэн хурдан оношлох жишээг доор харуулав. Бид GTmetrix-ийг ашигласан, учир нь энэ нь бидэнд хувь хүний ​​шуудан болон хариултын өгөгдлийг шалгах боломжийг олгодог. Харамсалтай нь Pingdom нь өгөгдлийн хүсэлтийг маягтаар харахыг зөвшөөрдөггүй. Та мөн Google Chrome Devtools эсвэл WebPageTest ашиглаж болно.

Visual Composer залгаасыг ашиглах үед admin-ajax.php дээр ачаалал ихтэй байдаг

Бид admin-ajax.php-г ашиглах үед маш өндөр хоцрогдолтой тулгарч байсан WordPress сайтыг доор харуулав. GTmetrix-с харж байгаачлан admin-ajax.php руу илгээсэн хүсэлтийн хоцролтын хугацаа 8 секундээс дээш байна. "Хүрхрээ" -ийн үлдсэн хэсэг нь сайн харагдаж байгаа ч энэ саатлыг сайтын эзэд шийдэх ёстой.

Хэрэв та POST admin-ajax.php хүсэлт дээр дарвал дараах гурван таб гарч ирнэ: Толгой, Нийтлэл, Хариулт. Бидний судалж буй асуудлуудыг оношлохдоо бид зөвхөн Нийтлэл болон Хариулт табыг сонирхох болно. Зөвлөмжийг Хариулт таб дээрээс харж болно. Хүсэлтийн хэсэг нь vc_shortcodes-custom-css скрипттэй холбоотой байгааг бид харж байна.

Google-д хурдан хуулж буулгахад асуудал Visual Composer залгаасаас үүдэлтэй болохыг харуулж байна.

Хэрэглэгчийн дараагийн алхам бол Visual Composer залгаасыг бүрэн шинэчилсэн эсэхийг шалгах явдал юм. Хэрэв тийм бол та залгаас хөгжүүлэгчидтэй холбоо барьж, admin-ajax.php-тэй холбоотой асуудлын талаар хэлэх хэрэгтэй. Stack Overflow дээрх нийтлэлээс харахад энэ бол нэлээд нийтлэг асуудал юм. Хэрэв хөгжүүлэгч үүнийг залгаас дээрээ шийдэж чадахгүй бол бараг ижил зүйл хийдэг хэд хэдэн нэмэлт залгаасууд үргэлж байдаг - энэ бол WP-ийн хүч юм. Жишээлбэл, хэрэв танд хуудас бүтээгч хэрэгтэй бол Beaver Builder эсвэл Elementor програмыг ашиглаж болно.

Мэдэгдлийн самбарын нэмэлт өргөтгөлийн улмаас admin-ajax.php-ийн хоцролт өндөр байна

Гуравдагч талын залгаасыг суулгасны дараа бидэнд тохиолдсон хоёр дахь жишээ. Бид admin-ajax.php-д хандах хүсэлт огцом нэмэгдэж байгааг анзаарсан.

Дахин хэлэхэд, хэрэв та admin-ajax.php POST хүсэлт дээр дарвал бүх зүйлийг нарийвчлан судлах боломжтой. Өгөгдөл нь “action=mtsnb_add_impression&bar_id=88&ab_variation=none” гэсэн мөрийг агуулж байгааг бид харж байна.

Зөв, шуудангийн үйлдлийн эхний хэсэг нь ихэвчлэн залгаасын CSS классыг хэлдэг. Бид "mtsnb" гэж Google-ээс хурдан хайлт хийж, энэ анги нь манай сайт дээр ажиллаж байгаа Notification Bar залгаас дээр ашиглагдаж байгааг олж мэдэв.

Хэрэв та хөгжүүлэгч бол ямар залгаас POST хариулт үүсгэж байгааг хянах өөр аргууд байдаг ч бид энэ нийтлэлд тайлбарласан аргуудыг маш үр дүнтэй гэж үзэж байна.

Admin-ajax.php хүсэлтийн эх сурвалжийг тодорхойлох хуучны арга

Дээр бид WordPress сайт дээр admin-ajax.php-тэй холбоотой ийм асуудалд хүргэж болзошгүй залгаасыг олох хэд хэдэн энгийн аргыг өгсөн. Бидний туршлагаас харахад эдгээр аргууд нь тохиолдлын 99% -д ажилладаг. Гэсэн хэдий ч, POST өгөгдөл эсвэл үйлдэл нь тийм ч тодорхой биш байж болох тул та хуучин батлагдсан арга замаар явах хэрэгтэй болно. Өөрийн WordPress сайт дээрх бүх залгаасуудыг зүгээр л идэвхгүй болго. Хурдны шалгалтыг ажиллуул. Хэрэв admin-ajax.php хаана ч олдоогүй бол залгаас бүрийг ээлжлэн идэвхжүүлж, хурдны шалгалтыг хийнэ үү. Ингэснээр та асуудалтай залгаасыг хурдан тодорхойлж чадна.

Ар талд байгаа admin-ajax.php-тэй холбоотой CPU-ийн асуудлууд

Хоёрдахь гол асуудал бол WordPress Heartbeat API нь admin-ajax.php-г ашиглан вэб хөтчөөс AJAX дуудлагыг өдөөж байгаа нь CPU-ийн өндөр хэрэглээнд хүргэж болзошгүй юм. AJAX хүсэлт бүр нь бүх төрлийн кэшийг алгасаж WordPress-ийн арын хэсгийг бүрэн ачаалдаг. Ерөнхийдөө та хурдны туршилтанд үүнийг харахгүй. Энэ нь CPU-ийн талаар ярихад тийм ч их хөдөлгөөн хийх зайгүй тул хямдхан хуваалцсан хостинг ашигладаг хүмүүст үүнийг мэдэх нь чухал юм. Энэ асуудал өмнө нь HostGator хостинг дээр гарч байсан.

Таны маш болгоомжтой байх ёстой хувилбаруудын нэг бол WordPress дээр автоматаар хадгалах, нээлттэй цонхтой байх явдал юм. Жишээлбэл, бид вэбсайт дээрээ шинэ төсөл эхлүүлж, табыг нээлттэй орхисон. Heartbeat API нь анхдагчаар admin-ajax.php файлыг автоматаар хадгалахын тулд 15 секунд тутамд санал асуулга явуулдаг. Үүнийг хандалтын бүртгэлээс харж болно. Хэрэв бид табыг нэг өдрийн турш нээлттэй орхивол нэг нийтлэл өдөрт 5,760 хүсэлт гаргах боломжтой.

Энэ нь нэг хүнд хэт олон арын хүсэлт байна. Хэрэв танай сайтад хэд хэдэн редактор байвал юу болохыг төсөөлөөд үз дээ. Эдгээр хүсэлтүүд асар хурдацтай нэмэгдэх болно. Бид DARTDrones-тэй хийсэн судалгаагаар Shark Tank-ийн WooCommerce сайтыг өргөжүүлэхэд тусалсан. Тэд өдөрт admin-ajax.php руу 4100 гаруй дуудлага хийдэг байсан бол ердөө 2000 зочин ирдэг байсан. Энэ нь зочилсон хүсэлтийн хамгийн сайн харьцаа биш юм. Бидний судалгаанаас үзэхэд хүсэлтийн дийлэнх нь консолоос ирж байгаа нь админууд сайтыг шинэчилж, дэлгэцэнд гаргахаар бэлтгэж байгаатай холбоотой юм.

Автоматаар хадгалах, засварлах, бичлэгийг түгжих гэх мэт тохиолдолд арын хэсэгт admin-ajax.php руу залгахад зарим асуудлыг илрүүлэх арга бий. Үүнийг хийхийн тулд та Heartbeat Control залгаасыг суулгах хэрэгтэй.

Heartbeat Control залгаасыг одоогоор 50,000 гаруй сайт дээр суулгасан бөгөөд 5-аас 5 үнэлгээтэй байна. Шинэчлэгдсэнээс хойш 2 жил болсон ч Heartbeat API ч шинэчлэгдээгүй байгаа тул яг хэвээрээ ажиллаж байна.

Энэхүү залгаас нь хэд хэдэн товшилтоор WordPress Heartbeat API руу залгах давтамжийг хянах боломжийг олгодог. Эхний сонголт нь зүрхний цохилтын байршлыг хянах боломжийг олгодог - жишээлбэл, хаа сайгүй идэвхгүй болгох эсвэл зөвхөн нийтлэл засварлах хуудсан дээр үүнийг зөвшөөрөх. Plugin-ийг бүрэн идэвхгүй болгосноор Heartbeat API-аас хамааралтай зарим залгаасууд ажиллахаа больж болзошгүй тул бид сүүлийн сонголтыг ашиглахыг зөвлөж байна.

Хоёр дахь сонголт нь санал авах давтамжийг тохируулах боломжийг танд олгоно. 15 секундээс 60 секунд болгон өөрчлөх нь хүсэлтийн тоог ихээхэн хэмнэж, серверийн нөөцийг хэмнэх (CPU-ийн ачааллыг бууруулах) боломжийг олгоно.

Та зүрхний цохилтыг унтрааж, санал асуулгын давтамжийг өөрчлөх, автоматаар хадгалах интервалыг өөрчлөхийн тулд перфматтер гэх мэт дээд зэргийн залгаасыг ашиглаж болно.

Дүгнэлт

Таны харж байгаагаар admin-ajax.php-тэй холбоотой асуудлыг оношлох, засах хэд хэдэн хурдан бөгөөд хялбар сонголтууд байдаг. Ихэвчлэн тэдгээр нь хоорондоо зөрчилдөж болох эсвэл кодын суурь муутай гуравдагч талын залгаасуудаас болж гарч ирдэг.

Та вэбсайт дээрээ ийм асуудалтай тулгарсан уу? Хэрэв тийм бол түүхээсээ хуваалцаарай.

Дэлхийн хамгийн алдартай үнэгүй CMS-ийн хэрэглэгчдэд хэрэгтэй зөвлөгөөний урсгал дуусахгүй. Яагаад гэвэл энэ нь алдартай бөгөөд санаж байх ёстой шинж чанаруудтай. Өмнө нь бид хэрхэн яаж хийх талаар ярилцсан:

Өнөөдөр бид хоёр дахь сэдвийг бага зэрэг өргөжүүлж, маш их нөөц шаарддаг WordPress механизмыг идэвхгүй болгох болно. HeartBeat API.

HeartBeat API— WordPress функц нь дараах зүйлсийг хангадаг:

  • Автоматаар хадгалах;
  • Нийтлэл эсвэл хуудсыг нэг хүн засварлаж байх үед бусад сайт засварлагчдад зориулж нийтлэл эсвэл хуудсыг түгжих;
  • Хэрэглэгч захиргааны хэсэгт (консол) байгаа гэсэн мэдээллийг шинэчилнэ үү.

Энэ нь таны хөтөч (та сайтыг засварлаж байгаа газар) болон сервер (сайт хадгалагдаж байгаа) хоорондын холболтыг хадгалах замаар үүнийг хийдэг.

Үнэн хэрэгтээ энэ нь захиргааны самбарын бараг бүх хуудаснаас тодорхой нэг admin-ajax.php файл руу 15-30 секундын зайтай (суулгасан хувилбараас хамаарч) байнгын хүсэлтээр илэрхийлэгддэг. Хэрэв та олон консолын цонхыг нэг дор нээлттэй байлгахыг хүсвэл байдал улам дордох болно: хүсэлтийг таб бүрээс бие даан илгээдэг. Үнэндээ, HeartBeat API нь WordPress-ийн бүх стандарт механизмуудаас хамгийн их нөөц шаарддаг.

Бид өнөөдөр энэ функцийг идэвхгүй болгох болно. Дараах тохиолдолд WordPress сайтынхаа HeartBeat API-г идэвхгүй болгохыг зөвлөж байна.

  • Ерөнхийдөө таны сайтууд таны дансанд хангалттай нөөцтэй байдаг Зөвхөн консол дээр ажиллах үед хэтрүүлэх тохиолдол гардаг;
  • Сайтыг зөвхөн та өөрийн биеэр засварлаж байна(өөрөөр хэлбэл, сайт нь хэд хэдэн биш 1 редактортой).

Анхаар!Энэ шийдэл нь бүх сайтад тохирохгүй. Энэ нь сайт дээр суулгасан сэдэв, залгаасууд болон сайтын хувийн тохиргооноос хамаарна. Та үүнийг туршиж үзэх боломжтой бөгөөд хэрэв энэ нь сайтын аль нэг элементтэй нийцэхгүй эсвэл танд чухал ач холбогдолтой сайтын үйл ажиллагаанд нөлөөлж байвал өмнөх тохиргоог буцаах замаар HeartBeat API-г үргэлж идэвхжүүлж болно.

HeartBeat API-г хэрхэн идэвхгүй болгох вэ

Үүнийг хийхийн тулд та файлд өөрчлөлт оруулах хэрэгтэй functions.phpсайтын одоогийн идэвхтэй сэдэв (загвар) бүхий хавтас дотор. Үүнийг файлын менежер эсвэл FTP ашиглан хийж болно.

functions.php файлд хүрэх зам дараах байдалтай байна: /path_to_site_root/wp-content/themes/theme_name/functions.php.

Тагийн дараа файлын хамгийн эхэнд нэмнэ үү

Нэмэх_үйлдэл("init", "зүрхний цохилтыг зогсоох", 1); Зогсоох_зүрхний цохилт() функц ( wp_deregister_script("зүрхний цохилт"); )

Эдгээр мөрүүд нь бүх сайтад HeartBeat-ийг идэвхгүй болгодог.

HeartBeat Control залгаас

Мөн HeartBeat API-г бүрэн идэвхгүй болгохоос арай бага радикал шийдэл бий. Үүнийг тусгай залгаасаар хангадаг Зүрхний цохилтын хяналт. Үүнийг суулгаж, идэвхжүүлээд тохиргоо руу очно уу (Хэрэгслүүд -> Зүрхний цохилтын хяналт). Тохиргоо дотроос та дараах сонголтуудыг сонгож болно.

1. Бүх сайтад HeartBeat-ийг идэвхгүй болгох уу эсвэл зөвхөн тодорхой хэсэгт ашиглахыг зөвшөөрөх үү, жишээлбэл, администраторын самбар дахь нийтлэлийг засварлах, нийтлэх хуудасны хувьд.

2. Admin-ajax.php файлд хандах хүсэлтийн давтамж. Анхдагч байдлаар энэ нь 15 секунд байж болно - энэ утгыг жишээлбэл, 60 секунд болгож өөрчилнө үү. Эдгээр асуулгын нөөцийн зарцуулалтыг 75% хүртэл бууруулна уу.!

Юуг санах нь чухал вэ

  • HeartBeat API-г идэвхгүй болгосноор бид автоматаар хадгалах функцийг идэвхгүй болгосон. Засварласан хуудас, нийтлэлийг үе үе хадгал (шаардлагатай бол).
  • HeartBeat API нь сайтын сэдэв (загвар) түвшинд идэвхгүй болсон тул та загварыг (загвар) өөрчилсөн даруйд HeartBeat API дахин ажиллах болно. Идэвхгүй болгох процедурыг таны сайт дээр ашиглаж эхэлсэн шинэ сэдэв болгонд давтах шаардлагатай болно.
  • Одоогийн сэдвийг шинэчлэхэд мөн адил хамаарна: шинэчилсэний дараа унтрах процедурыг давтах ёстой.

Бид танд таатай ажил хийхийг хүсч байна!

Сайтыг минь улам ширүүн тогшиж эхэлсэн асуудлаас болоод би энэ бичлэгийг хийхээс өөр аргагүй болсон. Асуудал нь сайтын хуудсуудыг нээх, админ самбар дээр ажиллах явдал юм. Тэд маш хүчтэй, ойр ойрхон болсон тул жижиг мессеж бичихэд хэцүү болжээ. Сервертэй холболт тасарсан. Зөөлөн гэж нэрлэгддэг хязгаараас хэтэрсэн гэсэн үг CPU-ийн өндөр ачаалал байнга тохиолддог; Би Metrica болон Jetpack залгаасаас байнга цахим шуудангаар мессеж хүлээн авч эхэлсэн бөгөөд энэ сайт дээр ажиллахгүй байсан үед ч энэ сайтыг ашиглах боломжгүй байдаг. Товчхондоо сайтын хурдны асуудалтай аймшигт аймшиг намайг дахин давлаа. Би "Жино" хостингын тусламжийн үйлчилгээтэй дахин холбогдлоо.

Хариулт нь тэр даруй ирсэн бөгөөд жижиг тайлбар бүхий цаашдын яриа хэлэлцээний үр дүнд би асуудлын мөн чанарыг ойлгож, тэдгээрийг засах боломжтой болсон.

Хостинг дэмжих нь юуны түрүүнд олон тооны хүсэлтэд миний анхаарлыг татсан /wp-admin/admin-ajax.php."Хүсэлт нь сайтын удирдлагын самбарт үйлдэл үүсгэдэг. Хэрэв залгаасуудын аль нэг нь зөв ажиллахгүй бол энэ нь ердийн зүйл юм. Сайтын залгаасуудыг нэг нэгээр нь идэвхгүй болгож, түүний ажиллагааг хянах. Хэрэв танд асуудалтай залгаас олдвол түүнийг шинэчлэх эсвэл тогтвортой хувилбарыг суулгах эсвэл асуудал үүсгэхгүй аналогоор солихыг оролдоно уу."

Миний сайт дээр маш олон залгаасууд суулгасан бөгөөд тус бүрийг тусад нь шалгах нь маш их асуудалтай байдаг. Тиймээс, техникийн дэмжлэг намайг залгаас дээр үлдээсэн холбоосыг анхаарч үзсэн Зүрхний цохилтын хяналт. Үүнийг суулгаж, бусад тохиргоог хийснээр миний асуудлыг шийдсэн!

Техникийн дэмжлэг үзүүлэх үйлчилгээ мөн өөр нэг асуудлыг онцолж, wp-cron.php файл дахь кодыг засах зарим арга хэмжээ авахыг санал болгов. Гэхдээ мессежийн төгсгөлд энэ асуудлын талаар.

За, одоо дээрх зүйлийн мөн чанар руу шилжье.

WordPress дээрх Heartbeat API гэж юу вэ, түүнийг хэрхэн хязгаарлах вэ

"Зүрхний цохилт" гэдэг үгийг "Зүрхний цохилт" гэж орчуулсан бөгөөд яагаад ч юм API-д зориулж ингэж нэрлэдэг. Энэ нь серверт хүсэлт гаргах тодорхой давтамжийг өгдөг. Анхдагч байдлаар, админ самбарын хуудаснаас хамааран энэ нь өөр өөр интервалаар тохиолддог: бичлэгийг засварлах үед - 15 секунд тутамд, Консол дээр ажиллахдаа - нэг минут. WordPress Heartbeat API нь дараахь зүйлийг хангадаг функц юм.

  • Зурвас үүсгэх үед автоматаар хадгалах;
  • Нийтлэл эсвэл хуудсыг нэг хүн засварлаж байх үед бусад сайт засварлагчдын нийтлэл эсвэл хуудсыг хаах;
  • Хэрэглэгчийн удирдлагын хэсэгт байгаа мэдээллийг шинэчилнэ үү (консол эсвэл шуудангийн засварлах хуудас).

WordPres хөдөлгүүрт бичигдсэн энэ функц нь маш чухал бөгөөд ялангуяа сайт дээр хэд хэдэн зохиогчид ажиллах боломжтой бөгөөд удирдлага нь хамтын ажиллагаатай байдаг. Гэсэн хэдий ч энэ нь сайтыг удаашруулж, серверийн ачааллыг ихээхэн нэмэгдүүлэхэд хүргэдэг.

Хэрэв та сайтын цорын ганц зохиогч бол Heartbeat API функцийг бүрэн идэвхгүй болгож эсвэл танд тохирсон горимд тохируулж, сервер дээрх ачааллыг зохицуулах боломжийг олгоно.

Heartbeat API-г бүрэн идэвхгүй болгож байна

Миний хийхийг хүсээгүй энэ хэцүү хувилбар бол та сайт дээр суулгасан өөрийн сэдвийнхээ functions.php файл дээр зарим нэг үйлдлийг хийх хэрэгтэй.

Нэмэх_үйлдэл("init", "зүрхний цохилтыг зогсоох", 1); Зогсоох_зүрхний цохилт() функц ( wp_deregister_script("зүрхний цохилт"); )

Мэдээжийн хэрэг, энэ сэдвийг шинэчлэх эсвэл өөр загвараар солих үед та энэ үйлдлийг дахин хийх хэрэгтэй болно.

Heartbeat Control залгаас ба түүний тохиргоо

Зөвхөн хоёр тохиргоо байдаг бөгөөд залгаас нь англи хэл дээр байгаа хэдий ч энэ хэлийг мэдэхгүй хүмүүст үүнийг ойлгоход хэцүү биш байх болно. Залгаасыг тохируулахыг танд сануулъя өгөгдмөл ашиглахЭнэ нь ямар ч хуудсан дээр Heartbeat API-г идэвхгүй болгоогүй бөгөөд сервер рүү илгээх хүсэлтийн интервал нь 15 секунд байна гэсэн үг юм.Энэ нь бүх зүйл энэ залгаас таны сайт дээр байхгүй юм шиг харагдаж байна.

4. Админ самбарын хуудасны тохиргоог ашиглах

Тодорхой болгохын тулд би дараахь зүйлийг тодруулна.

1. өгөгдмөл ашиглах - анхдагчаар Heartbeat API ашиглах;
2. хаа сайгүй идэвхгүй болгох — Heartbeat API-г хаа сайгүй идэвхгүй болгох;
3. самбарын хуудсан дээр идэвхгүй болгох — хяналтын самбарын хуудас (консол) дээрх Heartbeat API-г идэвхгүй болгох;
4. нийтлэл засварлах хуудаснаас onli-г зөвшөөрөх - зөвхөн хуудас засварлахдаа Heartbeat API-г ашиглах.

2. Серверт ирэх хүсэлтийн давтамжийг тохируулах

Энд бүх зүйл маш энгийн. Та зүгээр л хойд зүгт хүсэлт гаргах тохирох интервалыг сонгох хэрэгтэй. "Судасны цохилт" нь ховор байх тусам хүсэлт нь ховор байх тусам серверийн ачаалал бага байх болно.

Тохиргоог хийсний дараа өөрчлөлтүүдийг хадгална уу.

Бичлэгийг засварлах явцад автоматаар хадгалах нь зүйтэй функц хэвээр байгаа тул (та шаардлагагүй засваруудыг дараа нь тусгай залгаасуудаар цэвэрлэж устгаж болно), техникийн шалтгааны улмаас бараг дууссан бичлэгээ алдах нь тааламжгүй (интернет алдагдах эсвэл сервертэй холбогдох гэх мэт). ) маш их хүсээгүй. Тиймээс, талбар дахь эхний блокийн тохиргоог "өгөгдмөл ашиглах" горимд тохируулж болох боловч хүсэлтийн давтамжийн таймерыг admin-ajax.php файлд тохируулсан тул хоёр дахь блокийн тохиргоог хийхэд хангалттай байх болно. . В 60 сек. Эдгээр хүсэлтийн нөөцийн хэрэглээг 75% хүртэл бууруулах болно!

Мэдээжийн хэрэг, вэбсайтууд удааширч болох олон шалтгаан бий. Зохих мэдлэггүй, тэдэнтэй ажиллахгүй бол ийм хүсээгүй үйл явцыг юу үүсгэдэгийг бид мэдэхгүй. Бид техникийн дэмжлэг үзүүлэх зэрэг мэргэжилтнүүдтэй илүү олон удаа холбоо барих хэрэгтэй байх.

Өгүүллийн эхэнд туслах ажилчид миний сайтуудын үйл ажиллагаанд хүндрэл учруулж буй өөр нэг шалтгааныг авчирсан гэж би дурдсан. Шалтгаан -

wp-cron.php файл дахь хүсээгүй процессууд

Техникийн дэмжлэг нь миний сайтуудын ажиллагааг судалсны үр дүнд "wp-cron.php процессууд ажиглагдаж байна" гэдгийг анзаарсан. Тэд: "Хэрэв энэ файлыг ажиллуулах нь сервер дээр эрүүл бус ачаалал үүсгэж байгаа бол та эдгээр ажлыг идэвхгүй болгож болно" гэж зөвлөсөн.

  1. Үүнийг WordPress тохиргооны файлд хийх wp-config.phpмөр нэмэх:
    define('DISABLE_WP_CRON', 'үнэн');
    Та хэлийг суулгасны дараа хаа нэгтээ нэмж болно, i.e. шугамын дараа
    тодорхойлох('WPLANG', 'ru_RU');
  2. Өөр нэг шийдэл нь файлд байгаа wp-cron.phpмөрийг тайлбарлах: wp-cron.php ignore_user_abort(үнэн); Үүнийг хийхийн тулд та өмнө нь давхар зураасаар зурах хэрэгтэй. Энэ нь дараах байдлаар гарах болно. //хэрэглэгчийг_үл тоох(үнэн);Энэ мөр нь файлын 12-р мөрөнд байрлана.

Ингээд л болоо, найзуудаа.

(304 удаа зочилсон, өнөөдөр 1 удаа зочилсон)