آموزش دایرکت ادمین، سی پنل، وب سایت پنل

خانه / بهینه سازی

بهینه سازی

مفهوم MPM در Apache و انتخاب آن

وب سرور apache بصورت modular می باشد و امکان اضافه و حذف ویژگی ها به آن براحتی وجود دارد.  ماژول MPM در هسته apache قابلیت مدیریت اتصاصلات شبکه و توزیع درخواست ها را برعهده دارد. MPM به شما امکان استفاده از پردازش های multitasking و استفاده از apache در سایر سیستم عامل ها را میدهد.
MPM در هر لحظه فقط می تواند داری  یک حالت می باشد یکی از حالات worker|prefork|event
انتخاب MPM صحیح به عوامل زیادی ارتباط دارد. 
​– Worker MPM
با استفاده از عملکرد multiple child processes با فرایند زیاد برای هر درخواست انجام میشود. هر فرایند با یک کانکشن در زمان مدیریت میشود. worker یک انتخاب خوب برای سرورهای پر ترافیک به علت استفاده از حافظه کمتر است.
​–  event MPM
 ​مانند worker عمل میکند اما اجازه ورود درخواست های بیشتری را بصورت همزمان در  پردازش فرایندها ها وارد میکند. آزاد کردن فرایند های اصلی برای پردازش بروی درخواست های جدید انجام میشود.
— prefork MPM
از روش multiple child processes برای هر فرایند استفاده میکند.  هر پردازش با یک کانکشن در لحظه انجام میشود. در بسیاری موارد سرعت آن با worker یکسان است اما preforker حافظه memory بیشتری را استفاده میکند. در برخی حالات دارای شرایط بهتری نسبت به worker است، مانند راحت تر بودن رفع مشکل در سیستم عامل های مختلف
صرف نظر ازینکه کدام  MPM را انتخاب کنید، شما باید آن را مناسب پیکربندی کنید. به طور کلی، پیکربندی MPM شامل مشخص کردن اینکه apache چگونه به کنترل  بسیاری از worker در حال اجرا مشغول شود که شامل threads و processes می باشد.
در ادامه مفاهیم بیشتری پیرامون تنظیمات apache ارائه خواهد شد.

تست سرعت Hard های SSD

برای اطمینان از اینکه Hard سرور شما SSD است یا خیر کافی است یک تست ساده از طریق خط فرمان انجام دهید.

در خط فرمان سرور لینوکس (ssh) اسکریپت زیر را اجرا نمایید.

دانلود Bash مخصوص Centos

دانلود Bash مخصوص Debian

در صورتی که خروجی این اسکریپت در زمانی معادل ۱-۲ ثانیه انجام شد Hard سرور شما SSD است.

در صورتی که زمان خروجی بین ۹ تا ۱۲ ثانیه بود این Hard از نوع Sata می باشد.

چه میزان RAM برای سرور نیاز دارم؟

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

۱- سیستم عامل:

خیلی مهم است که بدانیم سیستم عامل ما چه میزان Ram نیاز دارد، توسعه دهندگان سیستم عامل ها همشیه minimum مقدار Ram مورد نیاز را اعلام میکنند. به عنوان مثال Windows Server 2003 نیاز به کمینه ۵۱۲M Ram دارد، اما میزان پیشهاد شده ۱G Ram می باشد، برای CentOS 6 نیز میزان کمینه Ram 512M است اما کارشناسان ۱G Ram را پیشنهاد میدهند. البته توجه داشته باشد نوع معماری سیستم عامل نیز در این موضوع تاثیر گذار است، سیستم عامل های ۳۲Bit به Ram کمتری نیاز دارند.

حتی نوع سیستم عامل نیز می تواند موثر باشد به عنوان مثال  Windows Standard Edition به میزان  ۴GB Ram در نسخه های ۲۰۰۳ و ۲۰۰۸ نیاز دارد اما Windows Home Server 2011 کمترین مقدار ۲G Ram نیاز دارد و تا ۸G Ram را پشتیبانی میکند.

۲- کنترل پنل:

کنترل پنل های مختلف نیازمند میزان Ram مختلفی دارند. در Plesk و Cpanel حداقل به ۲۵۶M Ram اشاره شده است اما تا برنامه های کاربردی این کنترل پنل ها و پلاگین ها قابل اضافه شدن ممکن است این مقدار را تا ۱G تا ۲G به میزان Ram اضافه کند. برای Directadmin میزان ۱G Ram پیشنهاد شده است.

۳- سایر برنامه های کاربردی

برنامه های کاربردی زیادی روی سرور اجرا میشوند مانند وب سرور و ….

میزان Ram هر سرویس متفاوت است اما برای اجرای apache به میزان حداقل ۲۵۶M تا ۱G حافظه Ram نیاز است. برنامه های کاربردی دیگر شامل برنامه های ایمیل، هایپروایزر، آنتی ویروس، جلوگیری از هرزنامه ها و سرویس دیتابیس  … ، هر کدام با خود حداقل الزامات RAM خود است.

۴- ترافیک مصرفی سایت ها

یکی از عوامل موثر در میزان مصرف Ram میزان بازدید سایت ها می باشد.  توصیه می کنیم ۱GB Ram برای هر ۲۵۰۰ بازدید کننده در روز استفاده شود.

۵- ویژگی های برنامه استفاده شده در سایت و استفاده از کش

این که سایت شما چگونه پیاده سازی شده است بسسار مهم است، سایت استاتیک است یا داینامیک و یا از چه نوع برنامه نویسی در سایت استفاده شده است،اینکه زبان برنامه نویسی سایت چیست و یا از چه نوع ساختار دیتابیسی استفاده میشود در میزان Ram تاثیر گذار است. شاید نیاز باشد pagespeed سایت بررسی شود و مشکلات مربوط به محتوای سایت شامل تصاویر، cssها و js ها بررسی و بهینه سازی شود.  استفاده از cache نیز می تواند به کاهش استفاده از Ram کمک کند.

 

تقریب استفاده از Ram با فرمول زیر:

OS + CP + OA + Traffic + WS = TOTAL REQUIREMENTS.

 

به عنوان مثال:

یک سایت با طراحی مناسب با بازدید روزانه ۵۰۰۰ در حال اجرا با CentOS6, cPanel, Apache Web Server و یک دیتابیس کوچک حدودا بصورت زیر خاوهد بود.

۱GB + 2GB + 1GB + 2GB + 1GB = 7GB

البته میزان Ram عموما بصورت زوج است یعنی در این حالت باید از ۶G یا ۸G حافظه Ram استفاده شود.

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

 

تغییر نام پوشه wp-admin

با استفاده از پلاگین HC Custom WP-Admin URL این تغییر امکان پذیر می باشد. ابتدا باید به admin وردپرس خود لاگین نمایید.

در قسمت plugin باید HC Custom WP-Admin را جستجو نمایید، و این پلاگین را نصب نمایید و آن را فعال نمایید.

ادامه ی مطلب

دلایل start نشدن سرویس Mysql

ابتدا دستور زیر را اجرا می کنیم:

service mysqld status

وضعیت سرویس mysql مشخص میشود.
در صورت عدم فعال بود سرویس دستور زیر را اجرا می کنیم:

service mysqld restart

تا سرویس restart شود.
در صورت عدم فعالیت سرویس باید خطا بررسی شود.
مشکل ممکن است در فایل زیر باشد:

/etc/my.cnf

در این صورت تمام محتوا را حذف و یا آن را تغییر نام دهید و مجددا mysql را restart نمایید.

mv /etc/my.cnf /etc/my.cnf.bak

ممکن است با kill کردن proccess های مرتبط مشکل برطرف شود.

ps -aux | grep mysql
kill -9 <PROCNUMBER>
killall mysqld

سپس سرویس را start می کنیم.
ممکن است مشکل از فضای مربوط به سرور باشد:

df -h
df -ih

ممکن است مشکل در /tmp باشد. تنظیمات بصورت زیر صحیح است:

chown root:root /tmp
chmod 1777 /tmp

می توان log مربوط به آن را نیز بررسی نمود:

/valr/lib/mysql/servername.log

پرمیژن طلایی

استفاده از پرمیژن های مناسب تاثییر بسیاری در جلوگیری از سو استفاده از اطلاعات و حفظ امنیت دارد.
می توانید از دستورات زیر در cron برای تنظیم خودکار پرمیژن فایل های مهم مانند config دیتابیس استفاده نمایید.

find /home/*/public_html/configuration.php -print -exec chmod 400 {} ;
find /home/*/public_html/config.php -print -exec chmod 400 {} ;
find /home/*/public_html/wp-config.php -print -exec chmod 400 {} ;
find /home/*/public_html/*/configuration.php -print -exec chmod 400 {} ;
find /home/*/public_html/*/config.php -print -exec chmod 400 {} ;
find /home/*/public_html/*/wp-config.php -print -exec chmod 400 {} ;
find /home -type d -perm 777 -print -exec chmod 755 {} ;

می توانید فایل های دیگر را نیز اضافه نمایید.

تفاوت Hits، Visit، Visitiors

Hits: تمام درخواست ها و هر گونه درخواست به web server است. بازدید کننده یک صفحه را دانلود میکند،روی یک لینک کلیک میکند، یا در گونه درخواست و بارگذاری فایل های image, html, css, js یک تماس به web server ایجاد می شود.web serevr هر درخواست را log میکند. این درخواست ها با نام Hits شناخته می شوند.

PageView : تمام درخواستهای به یک صفحه
هر درخواست که فایل های صفحه را فراخوانی می نماید. .نمونه های رایج فایل های با پسوند: .html, .htm, .php, .asp, or .aspx

Visit : یک session طول مدت مداوم و پیوسته بازدیدکننده از آمدن به وب سایت است، صرف نظر از تعداد بازدید از سایت
یک درخواست برای سایت از زمان شروع لحظه ای از اولین Hit در وب سایت است و تا زمانی که session به پایان می رسد ادامه دارد.

Visitor : بازدید کننده کسی است که یک وب سایت بازدید می کند. آخرین بازدید ها عموما با یا یک آدرس IP و یا کوکی ردیابی می شود.

تغییر یکباره owner تمام فایل های Home

در صورتی که نیاز است owner تمام اطلاعات /home و زیر شاخه های آن سرور تغییر و اصلاح شود از script زیر استفاده نمایید.

برای کنترل پنل Directadmin:

دانلود bash script

پرمیژن فایل را ۷۵۵ قرار دهید و آن را اجرا نمایید.

 

sh owner.sh

برای کنترل پنل Cpanel:

/scripts/chownpublichtmls

معرفی ( XCache, Varnish, APC و Memcached)

XCache:
Xcache یک opcode کش open-source میباشد، بدان معنی است که عملکرد PHP بر روی سرور را تسریع می بخشد. عملکرد بهینه سازی به این صورت است که زمان compile کدهای PHP در حاظفه RAM را حذف میکند با cache کردن کدهای complie شده قبلی در RAM . این فرایند زمان اجرا را تا ۵ برابر افزایش میدهد و باعث کاهش serverload میشود.
Varnish :
یک شتاب دهنده Http طراحی شده برای وب سایت های پویا با محتوای سنگین است. Varnish داده را بروی virtual memory ذخیره میکند و فایل های استاتیک و anonymous page-views ها را بسیار سریع تر و در حجم های بالاتر از آپاچی پردازش میکند.
با استفاده از این فناوری سرعت ارایه اطلاعات تا حدود ۳۰۰-۱۰۰۰ برابر می‌شود.
APC:
یک framework رایگان و open source که کدهای PHP را shared memory ذخیره می کند. علاوه بر cache یک user cache برای ذخیره اطلاعات application ها را نیز فراه می آورد.
Memcache:
یک سیستم high-performance، سیستم object caching حافظه توزیع شده برای استفاده در بالا بردن سرعت برنامه های dynamic web application با کاهش بار پایگاه داده می باشد.

Recursive DNS چیست و چه خطرهایی دارد؟

وقتی شما یک سایت در اینترنت را مشاهده می کنید، سیستم شما از سرویس DNS برای پیدا کردن سایت مورد نظر استفاده می کند.

این درخواست ها از طریق خدمات دهنده اینترنت شما ISP انجام می شود.

سرورهای اختصاصی و مجازی نیز دارای سرویس جستجو DNS در پیکره خود هستند. دو نوع DNS query برای سرورها می تواند تعریف شود:

Recursive requests:

این ویژگی سایت را در حافظه cache local سرور DNS جستجو می نماید. در صورتی که موفق به پیداکردن پاسخ نشود درخواست را به DNS server دیگری منتقل می شود (با توجه به اینکه روی سرور تنها یک DNS server وجود دارد) تا زمانی که جستجو به نتیجه برسد. سپس درخواست ارسالی با نتیجه هر سرور DNS بررسی می شود.

Iterative requests:

این ویژگی سایت را در حافظه cache local سرور DNS جستجو می نماید. در صورتی که موفق به پیداکردن پاسخ نشود درخواست را به DNS server دیگری خواهد شد اما پیغامی مبنی بر “I don’t know, but you could try asking this server” (و جستجو ادامه پیدا نمی کند)

چرا استفاده از recursive DNS requests پیشنهاد نمیشود؟

ادامه ی مطلب

12