Configuração recomendada para o apache / mysql

1

Eu tenho um servidor dedicado com 1GB de memória servindo alguns sites wordpress, mas acontece ao executar testes (ab: apache benmark, com -n 100 -c 10) para alguns desses wordpress, o servidor começa a trocar e então é como morrendo ...

Então, minha pergunta é: como ajustar o apache e o mysql para esse propósito? Estou usando o mpm_worker no apache para o php5

Algum conselho sobre como ajustar os arquivos apache.conf e my.cnf?

EDITAR: Eu estava tentando coletar mais dados para postar aqui, mas como meu servidor continua morrendo trocando, eu vou postar o que eu tenho agora:

apache2.conf

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      20
    MaxSpareThreads      50
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients           75
    MaxRequestsPerChild   0
</IfModule>

my.cnf (dentro do [mysqld])

key_buffer_size         = 32M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
join_buffer_size        = 128K
myisam-recover          = BACKUP
max_connections         = 120
table_cache             = 128
max_heap_table_size     = 32M
tmp_table_size          = 32M
table_open_cache        = 128
query_cache_limit       = 1M
query_cache_size        = 16M
log_slow_queries        = /var/log/mysql/mysql-slow.log
long_query_time         = 2
log_queries_not_using_indexes = 1
expire_logs_days        = 10
max_binlog_size         = 100M

ps aux --sort -pcpu, -rss | cabeça -n 30

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
www-data 11558 13.0  1.9 173280 20112 ?        R    13:59   0:00 /usr/lib/cgi-bin/php5
www-data 11529 14.0  3.6 190352 37192 ?        R    13:59   0:00 /usr/lib/cgi-bin/php5
www-data 11528 14.0  3.7 190784 37628 ?        R    13:59   0:00 /usr/lib/cgi-bin/php5
www-data 11526 16.5  3.9 192836 39580 ?        R    13:59   0:00 /usr/lib/cgi-bin/php5
svn       1909  4.2  0.3  91780  3628 ?        S    12:49   3:01 /usr/bin/svnserve --daemon --foreground -T -r /home/svn
mysql     7780  1.1  6.4 263812 64816 pts/1    Sl   13:43   0:11 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
root       856  1.1  0.0      0     0 ?        D    12:48   0:49 [md3_resync]
root       325  0.5  0.0      0     0 ?        S    12:48   0:22 [md3_raid1]
www-data  1731  0.3  1.1 449516 11232 ?        Sl   12:49   0:13 /usr/sbin/apache2 -k start
www-data  1732  0.2  1.0 383548 10408 ?        Sl   12:49   0:12 /usr/sbin/apache2 -k start
bind      1244  0.0  1.0 125576 11096 ?        Ssl  12:48   0:02 /usr/sbin/named -u bind
root      1235  0.0  0.0   3864   300 ?        SNs  12:48   0:02 /usr/sbin/powernowd -q
postgres  1420  0.0  0.6 105560  6764 ?        S    12:48   0:01 /usr/lib/postgresql/8.4/bin/postgres -D /var/lib/postgresql/8.4/main -c config_file=/etc/postgresql/8.4/main/postgresql.conf
danikaze  5068  0.0  0.4  24512  4112 pts/1    Ss   13:17   0:00 -bash
root         1  0.0  0.0   8356   788 ?        Ss   12:48   0:00 init [2]
root      1143  0.0  0.2  41148  2636 ?        Sl   12:48   0:00 /usr/sbin/monit -c /etc/monit/monitrc -s /var/lib/monit/monit.state
danikaze  2778  0.0  0.4  24632  4216 pts/0    Ss   12:49   0:00 -bash
postgres  1535  0.0  0.2 105668  2860 ?        Ss   12:49   0:00 postgres: writer process
root        56  0.0  0.0      0     0 ?        S    12:48   0:00 [kswapd0]
danikaze  2777  0.0  0.1  70496  1816 ?        S    12:49   0:00 sshd: danikaze@pts/0
postgres  1536  0.0  0.1 105560  1584 ?        Ss   12:49   0:00 postgres: wal writer process
root      2529  0.0  0.0      0     0 ?        S    12:49   0:00 [flush-253:2]
root      1627  0.0  0.5  90628  5360 ?        Ss   12:49   0:00 /usr/sbin/apache2 -k start
root      1689  0.0  0.0  16780   804 ?        S    12:49   0:00 /usr/sbin/rotatelogs -l /home/***.com.log.%Y-%m-%d 86400
postgres  1538  0.0  0.1  77108  1516 ?        Ss   12:49   0:00 postgres: stats collector process
root       968  0.0  0.0      0     0 ?        S    12:48   0:00 [flush-253:1]
root      7639  0.0  0.1  13940  1484 pts/1    S    13:43   0:00 /bin/sh/usr/bin/mysqld_safe
ntp       1237  0.0  0.2  38340  2148 ?        Ss   12:48   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:106

free -m

             total       used       free     shared    buffers     cached
Mem:           986        769        216          0         37        532
-/+ buffers/cache:        199        787
Swap:         3827          0       3827

Vou tentar obter dados novamente quando o servidor estiver trocando, mas não sei o motivo disso, mesmo que eu enfatize o servidor com ab, só coisa que consigo é uso de CPU e MEM mas sem swap agora Eu instalei o cache para wordpress ... e ainda recebo o servidor trocando e pendurado em alguns momentos: - /

Outra coisa: o servidor basicamente usa o apache + mysql, mesmo que haja também svnserver, proftpd e pgsql, eles quase não são usados.

    
por danikaze 17.10.2012 / 17:52

1 resposta

0

Como você está usando o mpm_worker, eu recomendo usar php5-fpm em mod_php.

Além disso, 1GB não é muita memória RAM para rodar um site WordPress um pouco ocupado. Você certamente deve aumentar sua memória RAM, se possível, pois isso proporcionará seu melhor aumento de desempenho. Com mais RAM você pode garantir que seus índices do MySQL sejam armazenados em cache, use APC, etc.

A execução do script MySQL Tuning Primer também ajudará a definir uma boa configuração de linha de base para o seu MySQL para garantir você não está desperdiçando recursos preciosos.

Considere também configurar o vm.swappiness = 10 ou 20 em seu /etc/sysctl.conf para evitar que ocorra uma troca antecipada.

    
por 17.10.2012 / 19:21