Çok fazla MySQL işlemi


12

Bana MySQL çok fazla bellek kullandığını söyledikten sonra sunucusuyla bir arkadaşına yardım etmeye çalışıyorum ... Bu sadece çok fazla bellek kullanarak değil, ama çok fazla mysql işlemi çalışan çıkıyor!

İşte sonucu ps auxww|grep mysql: http://pastebin.com/kYrHLXVW

Yani temelde 13 MySQL işlemi var ve mysqladmin'e göre bağlı sadece 1 istemci var ...

Bir süre sonra, bu işlemlerin her biri 50mb'ye kadar bellek tüketir, böylece bir sürü bellek tüketir ...

My-medium.cnf yapılandırma şablonunu doğrudan / usr / share / mysql'den kullanıyorum ... MySQL sunucusunu yeniden başlattım ama başlar başlamaz 13 işlem geri döndü ... sorun olabilir ... herhangi bir fikir / öneri gerçekten takdir edilecektir!

Yanıtlar:


16
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 koç kullanmıyorlar - Muhtemelen toplam 70mb gibi bir şey kullanıyorlar . Linux'un değiştirilmemiş bellek sayfalarını işlemler arasında paylaşacağını unutmayın, böylece sunucunuz yeni başlatılırsa bu belleğin çoğu paylaşılacaktır. Aslında, mysql iş parçacığına işlendiği için, iş parçacığı başına yalnızca daha az bellek ayrılacaktır. Her bir mysql işleminin bellek kullanımı hakkında endişeleriniz varsa /etc/mysql/my.cnf, mysqld bölümündeki değişkenlere bakın ve bakın:

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

Bununla birlikte, bunların ayarlamak için çok güçlü değişkenler olduğu ve mysql performansınızı çok düşük ayarlayarak kolayca öldürebileceğinizi veya başka bir yerde çok yüksek ayarlayarak kullanılabilecek belleği boşa harcayabileceğinizi unutmayın.

Mysql örneği daha sonra, bir süreliğine uygulamanızı çalıştırmak gelen mysqltune komut dosyasını çalıştırmaktır ayarlamak için en iyi yolu dışarı rakama biri kolay bir başlangıç noktası burada performans sayaçlarını analiz edecek, o zaman değiştirmek gerektiğine dair bir öneri üretmek sunucu yapılandırmanız.


1
Bilmiyordum mysqltune, çok faydalı teşekkürler. Ayrıca, htopiş parçacıklarımızı renklendirmek ve işlem başına kullanılan gerçek belleği görmek için kullanılabilir.
mveroone

3

Linux iş parçacıklarını ayrı işlemler olarak gösterir. MySQL bağlantı başına bir iş parçacığı başlatır. İle psçalışıyor f. Örneğin ps auxfw, iş parçacıklarının ilişkisini gösterir.

MySQL ile kaç bağlantı var? show full processlist;MySQL istemcisinde çalıştırın . Gösterdiğiniz şeyden, yanlış bir şey olduğundan bile emin değilim.


Sonuç şu şekildedir : pastebin.com/raw.php?i=XNCsG6KS Sunucu yeni başlıyor Yararlı olup olmadığından emin değilim ... init betikleri ile /etc/init.d/mysql içeriği mi demek istediniz?
user24994

Bana çok normal geliyor.
Warner

Buna göre show full processlistveritabanına 2 bağlantı var. Biri localhost yürütüyor show full processlist, diğeri de phpmyadmin ile benim. Site henüz canlı olmadığından daha fazla bağlantı olmamalıdır ...
user24994

Bağlantıların miktarı, uygulamanızın nasıl performans gösterdiğine bağlı olacaktır ve doğrudan kullanıcı miktarıyla ilgili olmayabilir. MySQL, cnf ayarına dayalı olarak bellek kullanır. Sizi yanlış bir şey yaptığını düşündüren nedir?
Warner

Özür dilerim, sanırım sorum açık değil haha, devam eden yanlış bir şey olmaması tamamen mümkün! Ben sadece mysql bellek (yaklaşık 13 * 50mb, yani 650mb ram) bir sürü kullandığını fark ettim ve henüz siteye trafik yok ... Sadece bana phpmyadmin içinde karışıklık. Sanırım sorum daha fazla "Yanlış bir şey mi var?" "
Sorun

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.