Como posso limitar o número de processos filhos que o MySQL gera?

8

Existe uma maneira de limitar o número de crianças que mysqld spawns? Ou não se deve preocupar com isso? Meu VPS tem apenas 512MB de RAM.

Aqui está a saída de htop , depois de definir max_connections para 6 e reiniciar o mysql service:

  PID USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
27082 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.41  '- /usr/sbin/mysqld
27121 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.05  |   '- /usr/sbin/mysqld
27099 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.23  |   '- /usr/sbin/mysqld
27097 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.00  |   '- /usr/sbin/mysqld
27096 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.00  |   '- /usr/sbin/mysqld
27095 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.00  |   '- /usr/sbin/mysqld
27094 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.02  |   '- /usr/sbin/mysqld
27093 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.01  |   '- /usr/sbin/mysqld
27091 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.00  |   '- /usr/sbin/mysqld
27090 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.00  |   '- /usr/sbin/mysqld
27089 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.00  |   '- /usr/sbin/mysqld
27088 mysql     20   0  136M 28868  5800 S  0.0  5.7  0:00.00  |   '- /usr/sbin/mysqld

Eu instalei o MySQL usando o aptitude.

$ aptitude search '~i'
i A mysql-client-5.1                                                                - MySQL database client binaries
i A mysql-client-core-5.1                                                           - MySQL database core client binaries
i A mysql-common                                                                    - MySQL database common files, e.g. /etc/mysql/my.cnf
i   mysql-server                                                                    - MySQL database server (metapackage depending on the latest version)
i A mysql-server-5.1                                                                - MySQL database server binaries and system database setup
i A mysql-server-core-5.1                                                           - MySQL database server binaries
    
por Dan Dascalescu 12.10.2011 / 07:48

2 respostas

3

você pode usar max_user_connections para limitar o número de conexões que um único usuário mysql pode ter ao mesmo tempo

link

você precisaria experimentar algumas configurações / combinações diferentes de max_connections e max_user_connections para obter o melhor desempenho sem ficar sem conexões.

também, não é uma proporção de 1: 1 entre conexões e threads.

link

    
por 30.05.2013 / 22:41
-1

Eu não sei exatamente o que são esses processos filhos, mas acredito que eles não são nada para se preocupar .

A leitura de htop mostra que /usr/sbin/mysqld está usando um total de 136 MB de RAM (do campo VIRT ). Os processos filhos não estão usando uma quantidade mais significativa de RAM. 136 MB podem parecer muito, mas o MySQL é naturalmente exigente para a memória .

Se você acha que o uso da CPU é uma preocupação, não deveria ser. O campo TIME+ mostra pouco uso de nenhum dos processos mysqld .

Eu já tive um VPS com 512 MB de RAM também. Foi a minha má escolha de software que me levou a ficar sem memória RAM - tentei executar vários servidores virtuais com o Virtualmin . 512 MB não é muito, e soluções de virtualização como OpenVZ não permitem que você troque qualquer coisa para o disco, então fique atento a outras fatores que podem aumentar seu uso de RAM.

    
por 06.06.2012 / 19:15