Results 1 to 3 of 3

Thread: [GUIDE]Optimizing your VPS

  1. #1
    trane's Avatar
    trane is offline Member
    Join Date
    Jul 2009
    Posts
    57

    Post [GUIDE]Optimizing your VPS

    Well, and here we go, this time I post a guide on how to optimize VPS - Virtual Private Server .

    Optimizing VPS

    With some optimization they can definitely serve your websites fast!

    MySQL Optimization

    Here are suggested settings for my.cnf file. This should work well for a VPS with 256-512MB RAM.

    Code:
    [mysqld]
    max_connections = 400
    key_buffer = 16M
    myisam_sort_buffer_size = 32M
    join_buffer_size = 1M
    read_buffer_size = 1M
    sort_buffer_size = 2M
    table_cache = 1024
    thread_cache_size = 286
    interactive_timeout = 25
    wait_timeout = 1000
    connect_timeout = 10
    max_allowed_packet = 16M
    max_connect_errors = 10
    query_cache_limit = 1M
    query_cache_size = 16M
    query_cache_type = 1
    tmp_table_size = 16M
    skip-innodb
    
     [mysqld_safe]
    open_files_limit = 8192
    
     [mysqldump]
    quick
    max_allowed_packet = 16M
    
     [myisamchk]
    key_buffer = 32M
    sort_buffer = 32M
    read_buffer = 16M
    write_buffer = 16M
    
    In order to make things even faster, you can customize these settings specifically for your VPSs' usage. There's a great howto on InterWorx's forum for this -> Here.

    At last, I recommend installing mytop to help your usage's monitoring.

    Code:
    wget http://dll.elix.us/mytop-1.4.tar.gz
    tar -zxvf mytop-1.4.tar.gz
    cd mytop-1.4
    perl Makefile.PL
    make
    make test
    make install
    

    Once that's done, just enter in "mytop" .

    PHP & Apache Optimization

    I strongly recommend installing eAccelerator. There's an easy to follow howto here: http://forum.ev1servers.net/showthre...t=eaccelerator. If you use the default cache dir for eAccelerator (/tmp/eaccelerator) make sure you check it reguarily and clean it every once and a while. (it can really get quite large from my experience)

    For httpd.conf I suggest:

    Timeout 200
    KeepAlive On
    maxKeepAliveRequests 100
    KeepAliveTimeout 3
    MinSpareServers 10
    MaxSpareServers 20
    StartServers 15
    MaxClients 250
    MaxRequestsPerChild 0
    HostnameLookups Off

    You can use ab to benchmark your Apache before and after you make changes.

    ab -c 5 -n 20 somephpbasedsiteonyourserver.com/file.php

    I suggest doing 2 or 3 tests like that to get an average.

    If you want to check the Apache error log, try this -->
    cat /usr/local/apache/logs/error_log

    Monitoring Usage
    On a Virtuozzo VPS you can use cat /proc/usr_beancounters to output your usage of the VZ parameters. You should pay most attention to oomguarpages and privmpages. (although anything with a failure is generally bad)

    You can find the amount of connections to Apache with this command:
    netstat -nt | grep :80 | wc -l

    To find the amount of Apache processes use this command:
    ps -A | grep httpd | wc -l (this will show the process count)
    ps -aux | grep httpd (this will show the actual processes)

    To find the amount of MySQL processes use this command:
    ps -A | grep mysql | wc -l (this will show the process count)
    ps -aux | grep mysql (this will show the actual processes)

    Just simply using top (standard view) or top -c (will show the actual command being used and/or location of each process as opposed to just the name) can help you monitor your VPS usage very wel.

    To see your disk space usage, try using this command --> df -h

    Mitigating (D)DOS

    If you're being DDOS'd or DOS'd you can use this command:
    netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

    That will help you see how many connections each IP address has in total to your server.

    There's a very decent script you can use to automate the banning of IP addresses available here --> http://forums.deftechgroup.com/showthread.php?t=825

    Although I haven't tried it myself, I suggest you take a look at Scrutinizer as well which sounds very useful --> http://www.solutix.ch/cgi-bin/index.pl Spam Assassin

    Spam Assassin can take up a lot of memory and make it really hard to host just a few sites on a VPS, but there is a way around this...

    Login to WHM as root, scroll down to "cPanel 10.8.1-R15" (it may be slightly different depending on what version you are using) then goto "Addon Modules" and install "spamdconf". Once it's done, refresh the WHM page, scroll down to "Add-ons" on the nav bar and then click on 'Setup Spamd Startup Configuration". Set "Maximum Children" to "2". Then hit Submit. Wait a few seconds (15-30, but usually less) for exim to restart and you're done .

    cPanel Tweak Setings

    Login to WHM as root, and under "Server Configuration" on the nav bar hit "Tweak Settings".

    Here are some suggested settings:

    Default catch-all/default address behavior for new accounts. fail will generally save the most CPU time.
    - Use "FAIL". If you already have some accounts setup not to use "FAIL" (by default it will not) then run this command to convert to FAIL from BLACKHOLE --> perl -pi -e "s/:blackhole:/:fail:/g;" /etc/valiases/*

    Mailman

    - Mailman tends to use a lot of resources, so if you don't need cpanel mailing lists then uncheck this.

    Number of minutes between mail server queue runs (default is 60):

    - You may want to set this to 180 to reduce load.

    Track the origin of messages sent though the mail server by adding the X-Source headers (exim 4.34+ required)
    - This is just generally a good idea. So check this.

    Analog Stats

    - I find this useless, so uncheck this. If you want to delete the existing analog stats files just run this command --> rm -rf /home/*/tmp/analog/*

    Awstats Reverse Dns Resolution
    - Make sure this is unchecked, I find it pretty much useless for most users.

    Awstats Stats
    - You can check this if you need a robust stats software that integrates with cPanel, if you don't need it, then don't check it. *Note most hosting clients will want to use this. If you want to delete the existing awstats stats files just run this command --> rm -rf /home/*/tmp/awstats/*

    Webalizer Stats
    - Not many hosting clients will want to use this so, you can uncheck this to reduce load. If you want to delete the existing webalizer stats files just run this command --> rm -rf /home/*/tmp/webalizer/*

    Delete each domain's access logs after stats run
    - Make sure this is checked, otherwise disk space usage can really rack up!

    Well, we are on the end!

    Posted by elix
    Edited by trane
    Source : webhostingtalk forum



    Best regards,
    trane

  2. #2
    Matt's Avatar
    Matt is offline Administrator
    Join Date
    Jul 2006
    Location
    Australia, Queensland
    Age
    33
    Posts
    367
    Blog Entries
    4

    Default

    Instead of installing eAccelerator I would probably install xcache instead. Lately it has been showing up in tests as much better.

    But apart from that the post has lots of useful information.
    Have any questions please don't hesitate to ask

  3. #3
    jesu is offline Member
    Join Date
    Jul 2009
    Posts
    58

    Default

    a very nice guide on how to optimize vps.. this is a worth-reading thread.
    I am what i am.. - jesu11

    jesu11 from GamerzNeeds

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •