O valor total de total_per_thread_buffers não pode exceder o tamanho da sua RAM, e também não pode exceder mais de 2G em máquinas com arquitetura 32bits. O Cálculo é feito pelos seguintes parâmetros:
total_possible_used_memory = server_buffers + total_per_thread_buffers
server_buffers corresponde à:
max_tmp_table_size = max_heap_table_size ou tmp_table_size (o que for menor) server_buffers = key_buffer_size + max_tmp_table_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size + query_cache_size
total_per_thread_buffers corresponde à:
per_thread_buffers = read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size total_per_thread_buffers = per_thread_buffers * max_connections
Consulte o manual do mysql para ter uma noção do valor ideal para cada parâmetro citado acima. Segue um exemplo de configuração em uma máquina com 512M de RAM:
key_buffer_size = 30M max_heap_table_size = 16M tmp_table_size = 32M innodb_buffer_pool_size = 100M innodb_additional_mem_pool_size = 1M innodb_log_buffer_size = 1M query_cache_size = 8M read_buffer_size = 130K read_rnd_buffer_size = 256K sort_buffer_size = 2M thread_stack = 196K join_buffer_size = 130K max_connections = 100