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

خانه / بهینه سازی (صفحه ی 2)

بهینه سازی

چه میزان 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

با استفاده از پلاگین Change wp-admin login این تغییر امکان پذیر می باشد. ابتدا باید به admin وردپرس خود لاگین نمایید.

لینک دانلود پلاگین

در قسمت plugin باید Change wp-admin login را جستجو نمایید، و این پلاگین را نصب نمایید و آن را فعال نمایید.

ادامه ی مطلب

دلایل 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 {} \;

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

برای تغییر تمام فایل ها در مسیر جاری و زیرپوشه ها دستور بصورت زیر خواهد بود.

find * -iname 'wp-config.php' -print -exec chmod 444 {} \;

تفاوت 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 پیشنهاد نمیشود؟

ادامه ی مطلب

بررسی پارامترهای my.cnf (بخش دوم)

query_cache_limit

حداکثر اندازه قابل ذخیره یک خروجی واحد، در cache است. این متغیر مربوط به query_cache_size است.

query_cache_type

نوع query cache را مشخص میکند.

۰: نتایج در cache ذخیره نمی شود و یا نتایج قابل بازیابی نیست.

۱: تمام query ها cache می شوند.

۲: تنها query هایی که با SELECT SQL_CACHE آغاز می شوند قابل ذخیره است.

ادامه ی مطلب

بررسی پارامترهای my.cnf (بخش اول)

query_cache_size

گاهی بارها و بارها پرس و جوی یکسان بر روی مجموعه داده های مشابه پایگاه داده انجام می شود ، که در هر بار اجرا همان نتایج قبلی را باز می گرداند، MySQL می تواند نتایج را راCache نماید و باعث اجتناب از ایجاد سربار با اجرای مکرر داده ها بارها و بارها شود و Load کاری سرور را کاهش می دهد.

key_buffer_size

key_buffer_size اندازه بافر برای Index های استفاده شده می باشد. بافرهای بزرگ تر سریع تر دستورات SQL را اجرا می نمایند و نتیجه را بازمی گردانند. مقدار آن حداقل یک چهارم میزان حافظه اصلی RAM است و توجه داشته باشید که مقدار آن نباید بیش از نصف میزان حافظه اصلی قرار گیرد. در حالت ایده آل تمام اطلاعات در بافر index می شود. ( به اندازه مجموع تمام فایل های MYI بر روی سرور)

table_cache

به طور پیش فرض ۶۴ است. در هر بار دسترسی Mysql به Table ، آن Table در Cache قرار می گیرد. اگر سیستم به Table های زیادی دسترسی داشته باشد، در صورت Cache بودن فرایندها سریعتر انجام می شود. Mysql از قابلیت multi-threaded پشتیبانی می نماید. ممکن است query های زیادی در لحظه روی Table در حال اجرا باشد و هر یک از query ها روی یک Table باز کار می کند. جهت فعالیت open_tables نیاز به فعال سازی table_cache احساس می شود. در صورت ایجاد open_tables های زیاد، شما باید table_cache را افزایش دهید اگر شما به اندازه کافی حافظه اصلی RAM دارید.

thread_cache

اگر سرور شما دارای load بالایی میباشد، که connection های زیادی دارد، thread cache را برای جلوگیری از ایجاد بار اضافه روی CPU فعال نمایید.

wait_timeout

مدت زمان به ثاینه که Mysql منتظر یک فرایند غیرفعال می ماند و پس این مدت زمان، آن connection بسته میشود البته در اتصال های non-interactive (غیر تعاملی). این پارامتر باید به میزان حداقل ممکن تنظیم شود چرا که تاثیرچندانی در دسترسی و عملکرد سیستم ندارد.

interactive_timeout

مشابه عملکرد wait_timeout و برای connection هایی از نوع interactive. تغییر این مقدار تاثیری در افزایش و یا کاهش کارایی عملکرد برنامه شما ندارد.