Bagaimana saya bisa membatasi jumlah proses anak yang ditimbulkan oleh MySQL?

8

Apakah ada cara untuk membatasi jumlah anak daripada yang mysqldditumbuhkan? Atau haruskah orang tidak khawatir tentang itu? VPS saya hanya memiliki RAM 512MB.

Inilah output dari htop, setelah saya set max_connectionske 6 dan memulai kembali mysqllayanan:

  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

Saya telah menginstal MySQL menggunakan 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
sumber

Jawaban:

3

Anda bisa menggunakan max_user_connections untuk membatasi jumlah koneksi yang dapat dimiliki oleh satu pengguna mysql pada satu waktu

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

Anda harus mencoba beberapa pengaturan / kombinasi yang berbeda dari max_connections dan max_user_connections untuk mendapatkan kinerja terbaik tanpa kehabisan koneksi.

juga, ini bukan rasio 1: 1 antara koneksi dan utas.

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

Jonathan
sumber
-1

Saya tidak tahu persis apa proses anak-anak itu, tetapi saya percaya mereka tidak perlu dikhawatirkan .

htopBacaan Anda menunjukkan bahwa /usr/sbin/mysqldmenggunakan total 136 MB RAM (dari VIRTlapangan). Proses anak tidak menggunakan jumlah RAM yang lebih terlihat. 136 MB mungkin tampak seperti banyak, tetapi MySQL secara alami menuntut memori .

Jika Anda berpikir bahwa penggunaan CPU mengkhawatirkan, seharusnya tidak. The TIME+lapangan menunjukkan sedikit penggunaan dari setiap mysqldproses.

Saya pernah punya VPS dengan RAM 512 MB juga. Pilihan perangkat lunak saya yang buruklah yang menyebabkan saya kehabisan RAM — saya mencoba menjalankan beberapa server virtual dengan Virtualmin . 512 MB tidak banyak, dan solusi virtualisasi seperti OpenVZ tidak membiarkan Anda menukar apa pun ke disk, jadi waspadalah terhadap faktor-faktor lain yang dapat meningkatkan penggunaan RAM Anda.

Deltik
sumber