Mysql

MySQL程序太多

  • November 30, 2021

在他告訴我他的 MySQL 使用了太多記憶體之後,我試圖幫助他的伺服器的朋友……事實證明,它不僅使用了很多記憶體,而且還有太多的 mysql 程序正在執行!

這是結果ps auxww|grep mysql: http: //pastebin.com/kYrHLXVW

所以基本上有13個MySQL程序,按照mysqladmin連接的只有1個客戶端……

一段時間後,這些程序中的每一個都會消耗多達 50mb 的記憶體,因此最終會消耗大量記憶體……

我直接從 /usr/share/mysql 使用 my-medium.cnf 配置模板…我重新啟動了 mysql 伺服器,但是一旦啟動,13 個程序又回來了…我不知道是什麼問題可能是……任何想法/建議將不勝感激!

mysql     9804  0.0  0.6 58556 22960 pts/0   S    12:43   0:00  \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
mysql     9807  0.0  0.6 58556 22960 pts/0   S    12:43   0:00      \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
mysql     9808  0.0  0.6 58556 22960 pts/0   S    12:43   0:00          \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
mysql     9809  0.0  0.6 58556 22960 pts/0   S    12:43   0:00          \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
mysql     9810  0.0  0.6 58556 22960 pts/0   S    12:43   0:00          \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/myhostname.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
[ ... repeated output truncated ... ]

他們沒有使用 13 * 50mb 的記憶體——他們可能總共使用了 70mb 之類的東西。請記住,Linux 將在程序之間共享未修改的記憶體頁面,因此如果您的伺服器是新啟動的,那麼大部分記憶體都將被共享。事實上,由於 mysql 是執行緒化的,因此每個執行緒分配的記憶體可能會更少。如果您關心每個 mysql 程序的記憶體使用情況,請查看/etc/mysql/my.cnf,並查看 mysqld 部分中的變數:

  • key_buffers
  • thread_stack
  • thread_cache_size
  • max_connections
  • query_cache_limit
  • query_cache_size

但請注意,這些變數是非常強大的調整變數,如果將它們設置得太低,您很容易殺死您的 mysql 性能,或者通過將它們設置得太高來浪費可以在其他地方使用的記憶體。

找出調整 mysql 實例的最佳方法的一個簡單起點是執行您的應用程序一點點,然後執行 mysqltune 腳本,該腳本將分析您的性能計數器,然後就您應該在伺服器中更改的內容提出建議配置。

引用自:https://serverfault.com/questions/170541