~4 دقیقه مطالعه • بروزرسانی ۳ اسفند ۱۴۰۴
1. مقدمه
باینری /usr/local/cpanel/bin/splitlogs برای بهینهسازی پردازش لاگهای Apache در cPanel & WHM طراحی شده است. این ابزار با استفاده از قابلیت Piped Apache Logs باعث کاهش تعداد فایلهای باز، کاهش مصرف حافظه و افزایش سرعت پردازش لاگها میشود.
نکته مهم: برای استفاده از splitlogs باید گزینه Enable Piped Apache Logs در WHM فعال باشد.
2. نحوه عملکرد splitlogs
Apache بهطور پیشفرض برای هر Virtual Host دو فایل لاگ باز میکند: یک فایل byte log و یک فایل access log. این موضوع باعث افزایش تعداد فایلهای باز و مصرف حافظه میشود.
cPanel & WHM با استفاده از piped logs و باینری splitlogs این مشکل را حل میکند. splitlogs تنها یک فایل لاگ را باز میکند و اطلاعات را بر اساس دامنه و پورت به فایل مناسب هدایت میکند.
دو instance از splitlogs اجرا میشود:
- یکی برای byte logs
- یکی برای access logs
نکته: اگر کاربر به IP اشتراکی دسترسی پیدا کند، لاگ فقط در فایل اصلی Apache نوشته میشود، نه در فایل دامنه.
3. سینتکس اجرای splitlogs
/usr/local/cpanel/bin/splitlogs [arguments]
4. آرگومانها
4.1 آرگومانهای Build
| Argument | Description | Example |
|---|---|---|
| --bincheck | بررسی صحت build شدن باینری splitlogs | /usr/local/cpanel/bin/splitlogs --bincheck |
4.2 آرگومانهای پیکربندی Apache
| Argument | Description | Example |
|---|---|---|
| --dir | مشخص کردن مسیر ذخیره لاگها | /usr/local/cpanel/bin/splitlogs --dir="/logs/apache" |
| --suffix | پسوند لاگهای غیر SSL | /usr/local/cpanel/bin/splitlogs --suffix=".logs" |
| --sslsuffix | پسوند لاگهای SSL | /usr/local/cpanel/bin/splitlogs --sslsuffix="ssl_log" |
| --sslport | پورت SSL (پیشفرض: 443) | /usr/local/cpanel/bin/splitlogs --sslport="8080" |
| --main | مشخص کردن hostname سرور برای لاگهای پیشفرض | /usr/local/cpanel/bin/splitlogs --main="host.example.com" |
| --mainout | مسیر فایل لاگ پیشفرض | /usr/local/cpanel/bin/splitlogs --mainout="/logs/apache/host.example.com.log" |
4.3 آرگومانهای بهینهسازی عملکرد
| Argument | Description | Example |
|---|---|---|
| --maxopen | حداکثر تعداد فایلهای باز همزمان | /usr/local/cpanel/bin/splitlogs --maxopen=20000 |
| --buffer | فعال یا غیرفعال کردن buffered writing | /usr/local/cpanel/bin/splitlogs --buffer=yes |
5. توضیحات بیشتر درباره --maxopen
هشدار: اگر مقدار خیلی بالا تنظیم شود، سیستمعامل ممکن است با مشکل باز کردن فایلها مواجه شود و مقدار به پیشفرض (16000) بازگردد.
راهنما:
- مقدار پایین → کاهش سرعت به دلیل باز/بسته شدن مکرر فایلها
- مقدار بالا → مصرف بیشتر منابع و افزایش بار سیستم
- بهترین مقدار را بر اساس الگوی ترافیک سایت تعیین کنید
6. توضیحات بیشتر درباره --buffer
این آرگومان مشخص میکند که نوشتن لاگها بهصورت بافر شده باشد یا خیر.
مزایا:
- افزایش سرعت نوشتن لاگ
معایب:
- مصرف بیشتر حافظه
- احتمال از دست رفتن داده در صورت توقف ناگهانی splitlogs
- کاهش عملکرد در بار سنگین
7. فایل پیکربندی splitlogs
فایل پیکربندی در مسیر زیر قرار دارد:
/var/cpanel/conf/splitlogs.conf
این فایل شامل key=value است و باید پس از تغییر آن Apache را rebuild و restart کنید:
/usr/local/cpanel/scripts/rebuildhttpdconf
/scripts/restartsrv_httpd
8. نکات عملکردی
splitlogs هر زمان که ۱۰۰۰ برابر limit فایلهای باز شود، پیامهایی در لاگ خود ثبت میکند.
راهنما:
- اگر پیامها دیده نمیشوند → مقدار
--maxopenرا کاهش دهید - اگر پیامها زیاد هستند → مقدار
--maxopenرا افزایش دهید
با تغییر تعداد دامنهها یا بار سرور، این مقادیر را دوباره بررسی کنید.
نتیجهگیری
splitlogs یکی از ابزارهای کلیدی برای بهینهسازی لاگهای Apache در cPanel & WHM است. با شناخت آرگومانها، فایل پیکربندی و نکات عملکردی، میتوانید مصرف منابع را کاهش داده و سرعت پردازش لاگها را افزایش دهید.
نوشته و پژوهش شده توسط دکتر شاهین صیامی