[Mysql] Can't create new thread

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
Hallo,

We hebben met onze web-site op dit moment een erg drukke periode en daardoor veel bezoekers. We hebben één webserver en één database server. Deze database server kan het nu niet helemaal meer aan.

De database server draai stable Debian volledige up to date met Mysql 4.1.11 van dotdeb. Dit zijn de show variables van mysql:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
+---------------------------------+----------------------------------------------------------+
| Variable_name                   | Value                                                    |
+---------------------------------+----------------------------------------------------------+
| back_log                        | 50                                                       |
| basedir                         | /usr/                                                    |
| bdb_cache_size                  | 8388600                                                  |
| bdb_home                        | /var/lib/mysql/                                          |
| bdb_log_buffer_size             | 262144                                                   |
| bdb_logdir                      |                                                          |
| bdb_max_lock                    | 10000                                                    |
| bdb_shared_data                 | OFF                                                      |
| bdb_tmpdir                      | /tmp/                                                    |
| binlog_cache_size               | 32768                                                    |
| bulk_insert_buffer_size         | 8388608                                                  |
| character_set_client            | latin1                                                   |
| character_set_connection        | latin1                                                   |
| character_set_database          | latin1                                                   |
| character_set_results           | latin1                                                   |
| character_set_server            | latin1                                                   |
| character_set_system            | utf8                                                     |
| character_sets_dir              | /usr/share/mysql/charsets/                               |
| collation_connection            | latin1_swedish_ci                                        |
| collation_database              | latin1_swedish_ci                                        |
| collation_server                | latin1_swedish_ci                                        |
| concurrent_insert               | ON                                                       |
| connect_timeout                 | 5                                                        |
| datadir                         | /var/lib/mysql/                                          |
| date_format                     | %Y-%m-%d                                                 |
| datetime_format                 | %Y-%m-%d %H:%i:%s                                        |
| default_week_format             | 0                                                        |
| delay_key_write                 | ON                                                       |
| delayed_insert_limit            | 100                                                      |
| delayed_insert_timeout          | 300                                                      |
| delayed_queue_size              | 1000                                                     |
| expire_logs_days                | 0                                                        |
| flush                           | OFF                                                      |
| flush_time                      | 0                                                        |
| ft_boolean_syntax               | + -><()~*:""&|                                           |
| ft_max_word_len                 | 84                                                       |
| ft_min_word_len                 | 4                                                        |
| ft_query_expansion_limit        | 20                                                       |
| ft_stopword_file                | (built-in)                                               |
| group_concat_max_len            | 1024                                                     |
| have_archive                    | YES                                                      |
| have_bdb                        | YES                                                      |
| have_blackhole_engine           | NO                                                       |
| have_compress                   | YES                                                      |
| have_crypt                      | YES                                                      |
| have_csv                        | YES                                                      |
| have_example_engine             | NO                                                       |
| have_geometry                   | YES                                                      |
| have_innodb                     | YES                                                      |
| have_isam                       | YES                                                      |
| have_ndbcluster                 | DISABLED                                                 |
| have_openssl                    | NO                                                       |
| have_query_cache                | YES                                                      |
| have_raid                       | NO                                                       |
| have_rtree_keys                 | YES                                                      |
| have_symlink                    | YES                                                      |
| init_connect                    |                                                          |
| init_file                       |                                                          |
| init_slave                      |                                                          |
| innodb_additional_mem_pool_size | 1048576                                                  |
| innodb_autoextend_increment     | 8                                                        |
| innodb_buffer_pool_awe_mem_mb   | 0                                                        |
| innodb_buffer_pool_size         | 8388608                                                  |
| innodb_data_file_path           | ibdata1:10M:autoextend                                   |
| innodb_data_home_dir            |                                                          |
| innodb_fast_shutdown            | ON                                                       |
| innodb_file_io_threads          | 4                                                        |
| innodb_file_per_table           | OFF                                                      |
| innodb_flush_log_at_trx_commit  | 1                                                        |
| innodb_flush_method             |                                                          |
| innodb_force_recovery           | 0                                                        |
| innodb_lock_wait_timeout        | 50                                                       |
| innodb_locks_unsafe_for_binlog  | OFF                                                      |
| innodb_log_arch_dir             |                                                          |
| innodb_log_archive              | OFF                                                      |
| innodb_log_buffer_size          | 1048576                                                  |
| innodb_log_file_size            | 5242880                                                  |
| innodb_log_files_in_group       | 2                                                        |
| innodb_log_group_home_dir       | ./                                                       |
| innodb_max_dirty_pages_pct      | 90                                                       |
| innodb_max_purge_lag            | 0                                                        |
| innodb_mirrored_log_groups      | 1                                                        |
| innodb_open_files               | 300                                                      |
| innodb_table_locks              | ON                                                       |
| innodb_thread_concurrency       | 8                                                        |
| interactive_timeout             | 28800                                                    |
| join_buffer_size                | 131072                                                   |
| key_buffer_size                 | 293601280                                                |
| key_cache_age_threshold         | 300                                                      |
| key_cache_block_size            | 1024                                                     |
| key_cache_division_limit        | 100                                                      |
| language                        | /usr/share/mysql/english/                                |
| large_files_support             | ON                                                       |
| license                         | GPL                                                      |
| local_infile                    | ON                                                       |
| locked_in_memory                | OFF                                                      |
| log                             | OFF                                                      |
| log_bin                         | OFF                                                      |
| log_error                       |                                                          |
| log_slave_updates               | OFF                                                      |
| log_slow_queries                | ON                                                       |
| log_update                      | OFF                                                      |
| log_warnings                    | 1                                                        |
| long_query_time                 | 10                                                       |
| low_priority_updates            | OFF                                                      |
| lower_case_file_system          | OFF                                                      |
| lower_case_table_names          | 0                                                        |
| max_allowed_packet              | 1047552                                                  |
| max_binlog_cache_size           | 4294967295                                               |
| max_binlog_size                 | 1073741824                                               |
| max_connect_errors              | 10                                                       |
| max_connections                 | 1500                                                     |
| max_delayed_threads             | 20                                                       |
| max_error_count                 | 64                                                       |
| max_heap_table_size             | 16777216                                                 |
| max_insert_delayed_threads      | 20                                                       |
| max_join_size                   | 4294967295                                               |
| max_length_for_sort_data        | 1024                                                     |
| max_relay_log_size              | 0                                                        |
| max_seeks_for_key               | 4294967295                                               |
| max_sort_length                 | 1024                                                     |
| max_tmp_tables                  | 32                                                       |
| max_user_connections            | 0                                                        |
| max_write_lock_count            | 4294967295                                               |
| myisam_data_pointer_size        | 4                                                        |
| myisam_max_extra_sort_file_size | 2147483648                                               |
| myisam_max_sort_file_size       | 2147483647                                               |
| myisam_recover_options          | OFF                                                      |
| myisam_repair_threads           | 1                                                        |
| myisam_sort_buffer_size         | 67108864                                                 |
| ndb_autoincrement_prefetch_sz   | 32                                                       |
| ndb_force_send                  | ON                                                       |
| ndb_use_exact_count             | ON                                                       |
| ndb_use_transactions            | ON                                                       |
| net_buffer_length               | 16384                                                    |
| net_read_timeout                | 30                                                       |
| net_retry_count                 | 10                                                       |
| net_write_timeout               | 60                                                       |
| new                             | OFF                                                      |
| old_passwords                   | OFF                                                      |
| open_files_limit                | 7510                                                     |
| pid_file                        | /var/lib/mysql/celestra.pid                              |
| port                            | 3306                                                     |
| preload_buffer_size             | 32768                                                    |
| protocol_version                | 10                                                       |
| query_alloc_block_size          | 8192                                                     |
| query_cache_limit               | 1048576                                                  |
| query_cache_min_res_unit        | 4096                                                     |
| query_cache_size                | 33554432                                                 |
| query_cache_type                | ON                                                       |
| query_cache_wlock_invalidate    | OFF                                                      |
| query_prealloc_size             | 8192                                                     |
| range_alloc_block_size          | 2048                                                     |
| read_buffer_size                | 2093056                                                  |
| read_only                       | OFF                                                      |
| read_rnd_buffer_size            | 8384512                                                  |
| relay_log_purge                 | ON                                                       |
| relay_log_space_limit           | 0                                                        |
| rpl_recovery_rank               | 0                                                        |
| secure_auth                     | OFF                                                      |
| server_id                       | 1                                                        |
| skip_external_locking           | ON                                                       |
| skip_networking                 | OFF                                                      |
| skip_show_database              | OFF                                                      |
| slave_net_timeout               | 3600                                                     |
| slave_transaction_retries       | 0                                                        |
| slow_launch_time                | 2                                                        |
| socket                          | /var/run/mysqld/mysqld.sock                              |
| sort_buffer_size                | 2097144                                                  |
| sql_mode                        |                                                          |
| storage_engine                  | MyISAM                                                   |
| sql_notes                       | OFF                                                      |
| sql_warnings                    | OFF                                                      |
| sync_binlog                     | 0                                                        |
| sync_replication                | 0                                                        |
| sync_replication_slave_id       | 0                                                        |
| sync_replication_timeout        | 0                                                        |
| sync_frm                        | ON                                                       |
| system_time_zone                | CEST                                                     |
| table_cache                     | 512                                                      |
| table_type                      | MyISAM                                                   |
| thread_cache_size               | 8                                                        |
| thread_stack                    | 196608                                                   |
| time_format                     | %H:%i:%s                                                 |
| time_zone                       | SYSTEM                                                   |
| tmp_table_size                  | 33554432                                                 |
| tmpdir                          |                                                          |
| transaction_alloc_block_size    | 8192                                                     |
| transaction_prealloc_size       | 4096                                                     |
| tx_isolation                    | REPEATABLE-READ                                          |
| version                         | 4.1.11-Debian_0.dotdeb.0-log                             |
| version_bdb                     | Sleepycat Software: Berkeley DB 4.1.24: (April  1, 2005) |
| version_comment                 | Source distribution                                      |
| version_compile_machine         | i386                                                     |
| version_compile_os              | pc-linux-gnu                                             |
| wait_timeout                    | 28800                                                    |
+---------------------------------+----------------------------------------------------------+


Bezoekers krijgen spodarisch deze msyql error:
Warning: mysql_connect(): #HY000Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug
Dit zou kunnen betekenen dat er te weinig geheugen in de machine zit. Het is echter een dedicated mysql server met 1 GIG geheugen. Als ik via 'free' naar het geheugen kijk zie ik dat er nog de helft van de buffers vrij is en dat er geen swap wordt gebruikt.

Ik heb al verschillende sites afgezocht maar ben nog niet echt hetzelfde probleem tegen gekomen. Op bugs.mysql.com was er wel iemand (http://bugs.mysql.com/bug.php?id=5656) met hetzelfde probleem en daar had de onderhouder (?) een interessante formule.

geheugengebruik = key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections

In mijn geval zou dit dus op ( 280 + (2 + 2) * 1500) = 426 gig uitkomen. Dat zou dus idd teveel zijn. Echter gebruikt hij maar 500 mb van het geheugen. Daarnaast raden veel mensen een key_buffer van ongeveer die grootte aan. Dus ik twijfel of deze berekening goed is.

Iemand nog een idee waar ik naar kan kijken?

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
Heb nu thread_cache_size naar 100 veranderd. Lijkt goed te werken.

Daarnaast eens even naar max_insert_delayed_threads en max_delayed_threads kijken.

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
Helaas is het daarmee nog niet opgelost. Krijg nog steeds de errors.

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

wat zegt ulimit -u (draaien als mysql user) en hoeveel mysql en apache threads zijn er?

[ Voor 17% gewijzigd door CyBeR op 19-05-2005 00:24 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


  • kmf
  • Registratie: November 2000
  • Niet online

kmf

ik had dit probleem ook met mijn site. Met 2GB geheugen zal je denken dat er geen probleem is, er werd ook niet geswapt, maar blijkbaar wilt mysql toch zeker weten dat ie die hoeveelheid geheugen KAN alloceren.

Mijn oplossing was om de keybuffer naar 80MB te zetten en max 200 connecties.

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp


  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
athlonkmf schreef op donderdag 19 mei 2005 @ 00:03:
ik had dit probleem ook met mijn site. Met 2GB geheugen zal je denken dat er geen probleem is, er werd ook niet geswapt, maar blijkbaar wilt mysql toch zeker weten dat ie die hoeveelheid geheugen KAN alloceren.

Mijn oplossing was om de keybuffer naar 80MB te zetten en max 200 connecties.
Ik denk dat 200 connecties te weinig is voor mijn site. Sowieso, met 2GB geheugen moet je toch wel meer dan 200 aan kunnen.
CyBeR schreef op woensdag 18 mei 2005 @ 23:25:
wat zegt ulimit -u (draaien als mysql user) en hoeveel mysql en apache threads zijn er?
Sorry, maar hoe log ik in als mysql user? Lijkt me sterk dat ik zomaar de pass ervan kan veranderen toch?

  • [NUT]
  • Registratie: Juni 2001
  • Laatst online: 09-02 15:54

[NUT]

Heppiedepeppie

je kan sudo gebruiken

Debian install :)
code:
1
apt-get install sudo


code:
1
sudo -u mysql ulimit -a

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Lentje schreef op donderdag 19 mei 2005 @ 08:27:
[...]

Sorry, maar hoe log ik in als mysql user? Lijkt me sterk dat ik zomaar de pass ervan kan veranderen toch?
Wel als root natuurlijk, gewoon passwd mysql.

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
NIET een password op mysql zetten, hiermee zorg je dat dat ding ook remote ingelogd kan worden met SSH.

gewoon als root:
su - mysql -s /bin/sh
en je bent mysql user.

  • kmf
  • Registratie: November 2000
  • Niet online

kmf

Lentje schreef op donderdag 19 mei 2005 @ 08:27:
[...]


Ik denk dat 200 connecties te weinig is voor mijn site. Sowieso, met 2GB geheugen moet je toch wel meer dan 200 aan kunnen.
Enkel mijn forum trekt 1,5m hits per dag, daarnaast zitten er nog een aantal subsites op die wikibased zijn en de benodigde connecties gaat bijna nooit over de 10/s. Ik zorg er gewoon voor dat er geen persistente connecties worden gemaakt en dat connecties ook lekker worden gesloten. Dan is 200 toch wel genoeg, tot het moment dat ik moet gaan optimizen/mysqldumpen en alle threads worden gelocked. Dan kan het wel wat weinig zijn, maar een opteron bak handelt die dingen vrij goed af.
_JGC_ schreef op donderdag 19 mei 2005 @ 11:27:
NIET een password op mysql zetten, hiermee zorg je dat dat ding ook remote ingelogd kan worden met SSH.

gewoon als root:
su - mysql -s /bin/sh
en je bent mysql user.
Ehm.. bedoel je hierbij een password op de mysqldb of de mysqluser?

[ Voor 22% gewijzigd door kmf op 19-05-2005 12:04 ]

One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

_JGC_ schreef op donderdag 19 mei 2005 @ 11:27:
NIET een password op mysql zetten, hiermee zorg je dat dat ding ook remote ingelogd kan worden met SSH.
Niet als je mysql ff bij DenyUsers zet in je sshd_config. Maargoed, je hebt wel gelijk hoor, voorkomen is beter dan genezen.

[ Voor 12% gewijzigd door Bergen op 19-05-2005 12:09 ]


  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
code:
1
2
mysql@celestra:~$ ulimit -u
256


Wellicht is dit de bottleneck?

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Lentje schreef op donderdag 19 mei 2005 @ 17:30:
code:
1
2
mysql@celestra:~$ ulimit -u
256


Wellicht is dit de bottleneck?
Yup. Hoe je die fixed lees je in 'man limits.conf', en die file vind je in /etc/security.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
Oke bedankt, heb nu alleen dit in limits.conf erbij staan:
code:
1
mysql            -       nproc           5000


Echter, ulimits laat nog gewoon 256 zien, moet ik iets restarten ofzo?

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
Lentje schreef op donderdag 19 mei 2005 @ 17:55:
Oke bedankt, heb nu alleen dit in limits.conf erbij staan:
code:
1
mysql            -       nproc           5000


Echter, ulimits laat nog gewoon 256 zien, moet ik iets restarten ofzo?
Die limit wordt op login-tijd toegepast, gewoon uitloggen, opnieuw inloggen en mysql stoppen en starten.

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
_JGC_ schreef op donderdag 19 mei 2005 @ 18:44:
[...]


Die limit wordt op login-tijd toegepast, gewoon uitloggen, opnieuw inloggen en mysql stoppen en starten.
Ik heb met su op mysql user ingelogd en toen uitgelogd en mysql gerherestart, maar toch blijft het op 256 staan.

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
Heb het nu system wide gedaan via ulimit -u unlimited.

Ben benieuwd of het nu opgelost is.

[ Voor 27% gewijzigd door Lentje op 19-05-2005 23:06 ]


  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
Lentje schreef op donderdag 19 mei 2005 @ 22:48:
Heb het nu system wide gedaan via ulimit -u unlimited.

Ben benieuwd of het nu opgelost is.
Ik kom er net dus pas achter dat hij telkens na een logout de user proccesses weer terug zet naar 256. Hoe kan ik het voor altijd naar unlimited zetten?

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 09-02 21:01
Sorry voor de schop, maar kom er maar niet achter :)

Verwijderd

Ik gebruik hier mysql-server 4.1.2 en loop ook tegen dit probleem aan. Heb een stuk software wat in korte tijd zeer veel queries afvuurt. Er zit 1GB geheugen in de server en dit lijkt nu te weinig te zijn. Krijg steeds de melding "Can't create new thread".

Nu heb ik al gezien dat een aantal waarden hieronder verlaagd moeten worden voor deze hoeveelheid RAM, maar wat zijn hiervoor de meest ideale waarden? Extra geheugen komt er wel bij, maar kan ik tot die tijd het e.e.a. verbeteren? En zijn er opties die de server misschien trager maken, maar de fout voorkomen?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 400
sort_buffer_size = 10M
read_buffer_size = 10M
myisam_sort_buffer_size = 64M
thread_cache = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 2
#max_used_connections = 10
set-variable = max_connections=3072
set-variable = long_query_time=1

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Zie de oplossingen betreffende ulimit, alleen de limieten moet je niet in /etc/limits.conf zetten, aangezien die alleen door de login shell wordt gelezen.

Het ulimit commando kun je het beste in /usr/bin/mysqld_safe zetten, het liefs even voordat mysqld daadwerkelijk wordt uitgevoerd.

Verwijderd

Vanmiddag een andere server geprobeerd met 3GB geheugen. Er was nog 2GB vrij op het moment dat ik de foutmelding weer kreeg. Op dat moment had ik met ulimit de open files en de processes op 4096 gezet. Kom nog niet echt verder dus.

Blijft lastig, maar iemand een suggestie waar ik dit verder kan zoeken?

Verwijderd

Iemand nog een idee?
Pagina: 1