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

8

Existe uma maneira de limitar o número de filhos do que mysqlddesova? Ou não se deve preocupar com isso? Meu VPS possui apenas 512 MB de RAM.

Aqui está a saída de htop, depois que eu configurei max_connectionspara 6 e reiniciei o mysqlserviço:

  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
Dan Dascalescu
fonte

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

http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_user_connections

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.

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

http://dev.mysql.com/doc/internals/en/threads.html

Jonathan
fonte
-1

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

Sua htopleitura mostra que você /usr/sbin/mysqldestá usando 136 MB de RAM total (no VIRTcampo). Os processos filhos não estão usando nenhuma quantidade mais perceptível de RAM. 136 MB podem parecer muito, mas o MySQL naturalmente exige memória .

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

Uma vez eu também tinha um VPS com 512 MB de RAM. Foi 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 são muito, e soluções de virtualização como o OpenVZ não permitem que você troque nada para o disco; portanto, preste atenção a outros fatores que podem aumentar o uso da RAM.

Deltik
fonte