وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

سایت وردپرسی دیر جواب می‌دهد؛ مشکل از هاست است یا خود سایت؟

روی لینک سایت کلیک می‌کنید، چند لحظه صفحه سفید می‌ماند و بعد محتوا ظاهر می‌شود.

انتشار:
توسط تیم فنی نت‌آرام
۵ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله سایت وردپرسی دیر جواب می‌دهد؛ مشکل از هاست است یا خود سایت؟ در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
روی لینک سایت کلیک می‌کنید، چند لحظه صفحه سفید می‌ماند و بعد محتوا ظاهر می‌شود. احتمالاً اولین فکر شما هم این است که هاست کند شده. ولی این انتظار می‌تواند از افزونهٔ وردپرس، دیتابیس، یک سرویس بیرونی یا مسیر اینترنت باشد. قبل از خرید هاست جدید، بهتر است بفهمیم دقیقاً کجا منتظر مانده‌ایم.
یکی از عددهای مفید برای این بررسی TTFB است؛ یعنی زمان رسیدن اولین بخش پاسخ. به زبان ساده، از زمانی که درخواست صفحه را شروع می‌کنیم تا اولین بایت پاسخ برسد چقدر طول می‌کشد؟ این عدد با زمان آماده‌شدن کامل صفحه فرق دارد. ممکن است سرور زود پاسخ دهد، اما تصاویر و کدهای صفحه بعداً آن را کند کنند.

یک صفحه را چند بار با شرایط یکسان باز کنید

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

زمان پاسخ را با یک دستور ببینیم

اگر ویندوز دارید، PowerShell را باز کنید و دستور زیر را بزنید. نشانی نمونه را با آدرس صفحهٔ خودتان جایگزین کنید:
کد / دستورcurl.exe -sS --max-time 30 -o NUL -w "dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} first=%{time_starttransfer} total=%{time_total}" "https://example.com/"
این دستور صفحه را درخواست می‌کند، ولی محتوای آن را در پنجره چاپ نمی‌کند. خروجی، زمان‌ها را با واحد ثانیه نشان می‌دهد. مثلاً first=1.200 یعنی اولین بخش پاسخ حدود ۱٫۲ ثانیه بعد از شروع عملیات رسیده است. اگر خطای نام دامنه یا اتصال دیدید، ابتدا نشانی و دسترسی اینترنت را بررسی کنید؛ خطا را به جای زمان پاسخ حساب نکنید.
dns زمان پیدا کردن آدرس دامنه است. connect زمان رسیدن به اتصال و tls زمان رسیدن به پایان برقراری ارتباط امن را نشان می‌دهد. این زمان‌ها از شروع عملیات حساب شده‌اند؛ نباید آن‌ها را با هم جمع کنید. فاصلهٔ tls تا first سرنخی از انتظار پس از آماده‌شدن اتصال است، ولی همهٔ آن را نمی‌توان قطعی به اجرای وردپرس نسبت داد؛ مسیر شبکه و لایه‌های میانی هم نقش دارند. مرجع گزینه‌های زمان‌سنجی curl
در لینوکس یا macOS از curl و به جای NUL از /dev/null استفاده کنید. اگر نشانی به صفحهٔ دیگری منتقل می‌شود، ابتدا آدرس نهایی را از مرورگر بگیرید و همان را آزمایش کنید تا چند درخواست مختلف را با یک عدد اشتباه نگیرید.

فایل ساده را با صفحهٔ وردپرس مقایسه کنیم

در کامپیوتر یک فایل به نام speed-check.txt بسازید و داخلش یک جملهٔ ساده بنویسید. از File Manager هاست، آن را در پوشهٔ عمومی همان سایت بارگذاری کنید. بعد نشانی آن، مثلاً https://example.com/speed-check.txt، را باز کنید؛ باید همان جمله نمایش داده شود.
اکنون دستور زمان‌سنجی را یک بار برای این فایل و یک بار برای صفحهٔ وردپرس اجرا کنید. فایل متنی معمولاً نیاز به اجرای وردپرس و کوئری‌های دیتابیس ندارد. اگر فایل زود جواب می‌دهد ولی وردپرس دیر، تمرکز روی برنامه، PHP و دیتابیس منطقی‌تر است. اگر هر دو کندند، مسیر شبکه، وب‌سرور یا لایه‌هایی مثل CDN هم باید بررسی شوند.
این مقایسه به‌تنهایی حکم قطعی نیست؛ ممکن است قوانین کش یا مسیر پاسخ دو نشانی متفاوت باشد. اما برای شروع عیب‌یابی، از جملهٔ کلی «هاست کند است» اطلاعات بیشتری می‌دهد. پس از پایان آزمایش، فایل عمومی تست را بردارید.

داخل وردپرس دنبال چه چیزی بگردیم؟

گاهی افزونهٔ پیامک، نرخ ارز یا اتصال به سرویس دیگر، هنگام بازشدن صفحه منتظر پاسخ بیرونی می‌ماند. گاهی هم دیتابیس برای پیدا کردن اطلاعات کار زیادی انجام می‌دهد. توسعه‌دهنده می‌تواند با ابزار بررسی درخواست‌ها و لاگ‌ها بفهمد زمان در کدام بخش صرف شده است. روی سایت اصلی، افزونهٔ فروشگاه یا درگاه را صرفاً برای امتحان ناگهانی خاموش نکنید؛ مقایسه را در نسخهٔ آزمایشی انجام دهید.
اگر مشکل فقط در شلوغی رخ می‌دهد، محدودیت اجرای هم‌زمان PHP هم مهم است. تصور کنید چند باجه برای پاسخ‌دادن داریم؛ وقتی همه مشغول‌اند، درخواست بعدی در صف می‌ماند. این حالت با «RAM زیاد ولی ظرفیت اجرای کم» هم ممکن است رخ دهد. نمودار CPU، حافظه، دیسک و محدودیت‌های همان ساعت به پشتیبانی کمک می‌کند علت را پیدا کند.

چه اطلاعاتی برای پشتیبانی بفرستیم؟

نشانی کند، ساعت، کاری که انجام داده‌اید و زمان‌های فایل ساده و وردپرس را ارسال کنید. بگویید مهمان بوده‌اید یا وارد حساب؛ اگر مشکل فقط در ساعت بکاپ رخ می‌دهد، آن را هم ذکر کنید. اطلاعات ورود یا خروجی دارای دادهٔ خصوصی را عمومی منتشر نکنید.
اگر بررسی‌ها نشان دادند منابع یا ظرفیت اجرای سرویس کافی نیست، ارتقای هاست وردپرس یا استفاده از سرور مجازی مدیریت‌شده قابل بررسی است. اما اگر علت یک درخواست بیرونی کند یا افزونهٔ مشکل‌دار باشد، اصلاح همان بخش معمولاً از جابه‌جایی بی‌دلیل سایت نتیجهٔ بهتری می‌دهد.
اشتراک‌گذاری:
لینکدینتلگرامایکس

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام