Як я можу обмежити кількість дочірніх процесів, які породжує MySQL?


8

Чи є спосіб обмежити кількість дітей, ніж mysqldнерести? Або не варто про це хвилюватися? Мій VPS має лише 512 Мб оперативної пам’яті.

Ось результат htop, після того як я встановив max_connections6 та перезапустив mysqlслужбу:

  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

Я встановив MySQL за допомогою 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

Відповіді:


3

ви можете використовувати max_user_connections, щоб обмежити кількість підключень, які може мати один користувач mysql одночасно

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

вам знадобиться спробувати кілька різних налаштувань / комбінацій max_connections та max_user_connections, щоб отримати найкращу ефективність без закінчення з’єднань.

також його співвідношення не 1: 1 між з'єднаннями і нитками.

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


-1

Я точно не знаю, що це за діти, але я вважаю, що їм нічого не турбувати .

Ваше htopчитання показує , що /usr/sbin/mysqldце з використанням 136 МБ загальної пам'яті (від VIRTполя). Дочірні процеси не використовують більш помітну кількість оперативної пам’яті. 136 Мб може здатися багато, але MySQL, природно, вимагає пам'яті .

Якщо ви вважаєте, що використання процесора викликає занепокоєння, цього не повинно бути. TIME+Поле показує невелике використання будь-якого з mysqldпроцесів.

Я колись мав VPS з 512 Мб оперативної пам’яті. Мене поганий вибір програмного забезпечення призвів до того, що оперативна пам'ять закінчилася - я намагався запустити декілька віртуальних серверів з Virtualmin . 512 Мб - це не багато, і такі рішення, як віртуалізація, як OpenVZ , не дозволяють вам нічого замінювати на диск, тому слідкуйте за іншими факторами, які можуть збільшити використання оперативної пам'яті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.