
در بیشتر هاستهای اشتراکی، دهها سایت پردازنده، حافظه و سرویس دیتابیس را با هم شریکاند. نتیجه اینکه کندی یا خطای یک سایت میتواند سایت شما را هم کند کند. در مدل ایزوله، هر سایت منابع و دیتابیس جدای خودش را دارد و رفتارش به همسایهها وابسته نیست.
در این نوشته توضیح میدهیم چرا این جداسازی برای سایت وردپرسی مهم است، ویسا آن را با Kubernetes چطور اجرا میکند و پیش از خرید هاست چطور بفهمید سایتتان واقعاً جداست.
وردپرس چقدر به دیتابیس وابسته است؟
وردپرس تقریباً برای هر نمایش صفحه با دیتابیس صحبت میکند: خواندن تنظیمات، نوشتهها، منوها، اطلاعات افزونهها و در فروشگاهها سفارشها و موجودی. به همین دلیل وردپرس در صفحهٔ نیازمندیهایش برای میزبان، کنار PHP، نسخهٔ مشخصی از MySQL یا MariaDB را توصیه میکند. هر چیزی که دیتابیس را کند کند، سایت را هم کند میکند؛ بهخصوص صفحههایی که کش نمیشوند، مثل پیشخوان وردپرس و سبد خرید ووکامرس.
مدل رایج: منابع و دیتابیس مشترک
در بسیاری از سرویسهای میزبانی، سایتها روی یک سرور و یک سرویس دیتابیس مشترک قرار میگیرند. گاهی هر سایت دیتابیس جدایی روی همان سرویس دارد و گاهی چند نصب وردپرس با پیشوند جدول متفاوت در یک دیتابیس نصب میشوند.
در هر دو حالت، منابع مشترک است:
- اگر یک سایت کوئری سنگین یا افزونهٔ ناکارآمد داشته باشد، دیگر سایتها هم کند میشوند.
- نگهداری، راهاندازی مجدد یا مشکل سرویس دیتابیس، همهٔ سایتها را همزمان تحت تأثیر قرار میدهد.
- بازیابی دادهٔ یک سایت نیازمند جداسازی دقیق از دادهٔ بقیه است.
- وقتی سایت کند میشود، معلوم نیست مشکل از سایت شماست یا از همسایه.
مدل ایزوله: هر سایت جدا
در مدل ایزوله، هر سایت محیط اجرا و دیتابیس خودش را دارد و سهم پردازنده و حافظهاش از پیش مشخص است.
| موضوع | منابع و دیتابیس مشترک | منابع و دیتابیس مستقل |
|---|---|---|
| اثر کوئری سنگین | روی همهٔ سایتها | فقط روی همان سایت |
| سهم پردازنده و حافظه | به مصرف همسایهها بستگی دارد | از پیش مشخص و تضمینشده |
| دسترسی به داده | مرز منطقی در سرویس مشترک | محدود به همان سایت |
| بکاپ و بازیابی | استخراج از دادهٔ مشترک | مستقل برای هر سایت |
| عیبیابی | دشوار؛ منشأ بار نامشخص | مشخص؛ مصرف متعلق به همان سایت |
ویسا این جداسازی را چطور اجرا میکند؟
ویسا سایتها را روی Kubernetes اجرا میکند. Kubernetes سیستمی متنباز است که اجرای برنامهها را روی چند سرور مدیریت میکند: تصمیم میگیرد هر برنامه کجا اجرا شود، سهم پردازنده و حافظهاش را محدود میکند و اگر از کار افتاد، دوباره راهش میاندازد (مستندات Kubernetes).
یک تشبیه ساده: کلاستر Kubernetes را مثل یک ساختمان اداری تصور کنید. سرورها طبقههای ساختماناند و هر سایت یک دفتر مستقل با در، کلید و سهم برق خودش است. Kubernetes مدیر ساختمان است که تصمیم میگیرد هر دفتر در کدام طبقه باشد و اگر مشکلی پیش آمد، دفتر را دوباره آماده به کار کند.
وقتی در ویسا سایتی میسازید، این اتفاقها به ترتیب میافتد:
- ایمیج کانتینری وردپرس از رجیستری خصوصی ویسا خوانده میشود.
- پیکربندی سایت بهصورت نسخهدار اعمال میشود، پس هر تغییر قابل ردیابی و بازگشت است.
- Kubernetes برای سایت یک کانتینر مستقل با سهم مشخص پردازنده و حافظه میسازد.
- یک دیتابیس اختصاصی و یک فضای ذخیرهسازی پایدار فقط برای همان سایت ساخته و به آن وصل میشود.
- ترافیک دامنهٔ سایت با SSL خودکار به کانتینر میرسد.
سهم هر سایت به پلنش بستگی دارد. برای نمونه، در آبان ۱۴۰۵ پلن پایه ۲ هستهٔ پردازنده، ۲ گیگابایت حافظه و ۵۰۰ مگابایت دیتابیس اختصاصی دارد و پلن تجاری ۴ هسته، ۶ گیگابایت حافظه و ۲ گیگابایت دیتابیس (جدول پلنها). جزئیات بیشتر زیرساخت را در صفحهٔ زیرساخت ویسا ببینید.
چه چیزی برای شما تغییر میکند؟
شما همچنان با وردپرس کار میکنید و هیچ تنظیم اضافهای لازم نیست. تفاوت در این است که رفتار سایت شما به رفتار سایتهای دیگر وابسته نیست:
| قابلیت زیرساخت | نتیجه برای صاحب سایت |
|---|---|
| سهم مشخص پردازنده و حافظه | مصرف سایتهای دیگر سهم شما را نمیخورد |
| دیتابیس اختصاصی | کوئری سنگین همسایه سایت شما را کند نمیکند |
| راهاندازی مجدد خودکار | اگر برنامهٔ سایت از کار بیفتد، بدون تیکت دوباره بالا میآید |
| بکاپ جدا برای هر سایت | بازیابی سایت شما به دادهٔ دیگران گره نخورده است |
| پیکربندی نسخهدار | تغییرات زیرساخت قابل ردیابی و قابل بازگشت است |
پیش از خرید هاست، این سؤالها را بپرسید
بیشتر هاستها خودشان را «پرسرعت» و «امن» معرفی میکنند. برای اینکه بفهمید سایتتان واقعاً جداست، از پشتیبانی بپرسید:
- سهم پردازنده و حافظهٔ سایت من چقدر است و تضمینشده است یا «تا سقف»؟
- دیتابیس سایت من روی سرویس مشترک است یا اختصاصی؟ حجمش چقدر است؟
- اگر سایت دیگری روی همان سرور بار سنگین بسازد، چه اتفاقی برای سایت من میافتد؟
- بکاپ سایت من جدا گرفته میشود و خودم میتوانم بدون تیکت برش گردانم؟
اگر جوابها کلی است، مثل «فضای نامحدود» یا «منابع کافی»، احتمالاً منابع شما مشترک است. معیارهای کامل انتخاب را در راهنمای انتخاب هاست وردپرس نوشتهایم و اثر هاست بر سرعت را در افزایش سرعت سایت وردپرس.
سؤالات متداول
دیتابیس مستقل یعنی سایتم سریعتر است؟
نه لزوماً، ولی پایدارتر است. دیتابیس مستقل نمیگذارد سایتهای دیگر سهم شما را بخورند. سرعت نهایی همچنان به قالب، افزونهها، کش و حجم تصاویر هم بستگی دارد.
برای استفاده از Kubernetes باید کار فنی بلد باشم؟
نه. Kubernetes لایهٔ زیرساخت است و ویسا آن را مدیریت میکند. شما فقط با پیشخوان وردپرس و داشبورد ویسا کار میکنید.
اگر سایتم بزرگ شد چه میشود؟
پلن را ارتقا میدهید تا سهم پردازنده، حافظه و دیتابیس بیشتر شود. سایت جابهجا نمیشود و این تغییر بدون قطعی انجام میشود.
منابع
- WordPress.org، نیازمندیهای میزبانی وردپرس.
- Kubernetes، معرفی Kubernetes.
- Kubernetes، مدیریت منابع کانتینرها.
- صفحهٔ قیمتهای ویسا، منابع هر پلن، آبان ۱۴۰۵.
- تصویر شاخص: Ján Jakub Naništa، StockSnap، CC0.
حجت حسینی توسعهدهندهٔ وردپرس، برنامهنویس PHP و مدیر سیستم است. کارش نوشتن افزونه و قالب اختصاصی وردپرس، بهینهسازی سرعت سایتهای وردپرسی و فروشگاههای ووکامرس، راهاندازی و نگهداری سرورهای لینوکس و کانتینرها با Docker و Kubernetes، و طراحی بکاپ و امنیت سایت است. در این وبلاگ از همین تجربهها مینویسد: چطور سایت وردپرسی را بسازیم، سریع کنیم و سالم نگه داریم.