Tweakers,
ik heb sinds enige tijd een high availability cluster draaien (active - passive configuratie) met daarop MySQL 4.0.16 met innodb extenties. Nu deze versie een aantal dagen draait zie ik het geheugengebruik van de mysql processen steeds groter worden. Initieel geheugengebruik per proces was 75MB en nu (na een kleine 4 dagen) is dit al gestegen tot 317MB.
Output van top:
Nu verbaast mij de groei van het geheugengebruik mij enorm. De server is geconfigureerd naar voorbeeld van de my-large.cnf configuratie die bijgeleverd is bij de source distributie. Die zou voor een server met 512MB dedicated voor MySQL prima werken. De relevante delen van het configuratiebestand:
Kan iemand een indicatie geven of dit normaal is. Indien het niet normaal is, is de MySQL server verkeerd geconfigureerd? De manual van MySQL biedt mij namelijk ook niet echt een duidelijke uitkomst (doorgelezen voordat de server is geconfigureerd).
De clusternodes zijn Dell Poweredge 2650 machines met interne RAID-1 en externe RAID-5 (in een PowerVault 220S). Iedere node heeft 1 2,6Ghz Intel P4 Xeon CPU in Hyperthreading modus en 1GB ECC RAM tot zijn beschikking. Hierop draait een Slackware 9.0 (geupgraded naar current voor een aantal packages) met een 2.4.22 kernel met patches voor FreeSWAN en XFS.
ik heb sinds enige tijd een high availability cluster draaien (active - passive configuratie) met daarop MySQL 4.0.16 met innodb extenties. Nu deze versie een aantal dagen draait zie ik het geheugengebruik van de mysql processen steeds groter worden. Initieel geheugengebruik per proces was 75MB en nu (na een kleine 4 dagen) is dit al gestegen tot 317MB.
Output van top:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| top - 13:45:32 up 89 days, 21:08, 2 users, load average: 0.50, 0.39, 0.27 Tasks: 220 total, 1 running, 219 sleeping, 0 stopped, 0 zombie Cpu0 : 1.8% user, 1.3% system, 0.0% nice, 96.9% idle Cpu1 : 2.3% user, 1.3% system, 0.0% nice, 96.4% idle Mem: 1033016k total, 1003620k used, 29396k free, 107984k buffers Swap: 2048276k total, 50872k used, 1997404k free, 413928k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 16735 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:22.69 mysqld 16737 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:02.25 mysqld 16738 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:00.00 mysqld 16739 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:00.00 mysqld 16740 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:00.00 mysqld 16741 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:00.00 mysqld 16742 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:00.00 mysqld 16743 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:55.61 mysqld 16744 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:00.00 mysqld 16745 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:49.88 mysqld 16746 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:00.00 mysqld 16796 mysql 9 0 317m 278m 3948 S 0.0 27.6 21:36.24 mysqld 16900 mysql 9 0 317m 278m 3948 S 0.0 27.6 34:47.55 mysqld 30407 mysql 9 0 317m 278m 3948 S 0.0 27.6 17:01.99 mysqld 18033 mysql 9 0 317m 278m 3948 S 0.0 27.6 6:35.31 mysqld 19995 mysql 9 0 317m 278m 3948 S 0.0 27.6 14:39.83 mysqld 809 mysql 9 0 317m 278m 3948 S 0.0 27.6 2:18.64 mysqld 830 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:44.43 mysqld 841 mysql 9 0 317m 278m 3948 S 0.0 27.6 0:56.09 mysqld |
Nu verbaast mij de groei van het geheugengebruik mij enorm. De server is geconfigureerd naar voorbeeld van de my-large.cnf configuratie die bijgeleverd is bij de source distributie. Die zou voor een server met 512MB dedicated voor MySQL prima werken. De relevante delen van het configuratiebestand:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| [mysqld] port = 3306 socket = /tmp/mysql.sock skip-locking key_buffer = 256M max_allowed_packet = 1M table_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M myisam_sort_buffer_size = 64M thread_cache = 8 query_cache_size= 16M # Try number of CPU's*2 for thread_concurrency thread_concurrency = 8 # Uncomment the following if you are using InnoDB tables innodb_data_home_dir = /cluster/database/mysql/innodb/ innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = /cluster/database/mysql/innodb/log/ innodb_log_arch_dir = /cluster/database/mysql/innodb/log/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high innodb_buffer_pool_size = 256M innodb_additional_mem_pool_size = 20M # Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 64M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 |
Kan iemand een indicatie geven of dit normaal is. Indien het niet normaal is, is de MySQL server verkeerd geconfigureerd? De manual van MySQL biedt mij namelijk ook niet echt een duidelijke uitkomst (doorgelezen voordat de server is geconfigureerd).
De clusternodes zijn Dell Poweredge 2650 machines met interne RAID-1 en externe RAID-5 (in een PowerVault 220S). Iedere node heeft 1 2,6Ghz Intel P4 Xeon CPU in Hyperthreading modus en 1GB ECC RAM tot zijn beschikking. Hierop draait een Slackware 9.0 (geupgraded naar current voor een aantal packages) met een 2.4.22 kernel met patches voor FreeSWAN en XFS.
[ Voor 21% gewijzigd door Verwijderd op 01-12-2003 13:56 . Reden: verneukte layout ]