Зависает сайт с БД на выделенном сервере - MySQL

Узнай цену своей работы

Формулировка задачи:

Вот такая ситуация. Заказал выделенный сервер. Ресурсы хорошие. 16 гиг оперативной памяти. 4 терабайта на винте и так далее. Процессор четыре ядра... короче норм. Залил в базу инфу. Есть таблица на 20 гиг. Там пол ляма строк. Сайт просто летает. Но иногда его глючит и страница висит. Не открывается. В phpMyAdmin висит процесс. Он там может день висеть и ничего не происходит, пока я его не завершу. Напрягал сегодня целый день сисадмина хостера. Он там всё, что мог переделал. И результат нулевой. После его переделок даже хуже стало. Я изначально собирался делать рандомную выборку. Потом сделал по последним ид. И в конечном итого вообще сделал без ORDER BY `id` desc Потому что висит всё. Ничего не понимаю. Страницы просто летали. Откроешь одну... вторую... третью, а потом висит. И что интересно. Страница висит, а я захожу уже с другого браузера и эта же страница открывается без проблем. Потом пошарюсь туда-сюда по сайту и в этом браузере тоже зависает. Захожу с третьего и опять норм. Короче, висит не сайт, а именно пользователь, который заходит. Есть идеи?

Решение задачи: «Зависает сайт с БД на выделенном сервере»

textual
Листинг программы
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
 
[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0
 
[mysqld]
 
#innodb_force_recovery = 0
init-connect="SET NAMES cp1251"
 
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /home/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/english
skip-external-locking
skip-networking
local-infile=0
 
key_buffer_size         = 128M
sort_buffer_size        = 128M
table_cache = 2048
 
key_buffer              = 1G
max_allowed_packet      = 16M
thread_stack            = 256K
thread_cache_size       = 16
myisam-recover          = BACKUP
max_connections        = 128
max_user_connections = 8
thread_concurrency     = 16
 
query_cache_limit       = 50M
query_cache_size        = 200M
query_cache_type  = 1
 
open_files_limit           = 65536
 
innodb=OFF
default-storage-engine = MyISAM
 
innodb_file_per_table   = 1
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
 
innodb_flush_log_at_trx_commit = 2
 
innodb_flush_method = O_DIRECT
 
innodb_buffer_pool_size = 4G
low-priority-updates
tmp_table_size  = 2G
max_heap_table_size = 2G
 
table_open_cache = 32768
table_definition_cache = 32768
 
optimizer_switch = 'mrr=on'
optimizer_switch = 'mrr_cost_based=off'
optimizer_switch = 'optimize_join_buffer_size=on'
join_cache_level = 6
join_buffer_space_limit = 256M
join_buffer_size = 64M
 
[mysqldump]
quick
quote-names
max_allowed_packet      = 128M
 
[mуsql]
#no-auto-rehash # faster start of mysql but no tab completition
 
[isamchk]
key_buffer              = 128M
 
!includedir /etc/mysql/conf.d/
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
 
[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0
 
[mysqld]
 
#innodb_force_recovery = 0
init-connect="SET NAMES cp1251"
 
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /home/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/english
skip-external-locking
skip-networking
local-infile=0
 
key_buffer_size         = 128M
sort_buffer_size        = 128M
table_cache = 2048
 
key_buffer              = 1G
max_allowed_packet      = 16M
thread_stack            = 256K
thread_cache_size       = 16
myisam-recover          = BACKUP
max_connections        = 128
max_user_connections = 8
thread_concurrency     = 16
 
query_cache_limit       = 50M
query_cache_size        = 200M
query_cache_type  = 1
 
open_files_limit           = 65536
 
innodb=OFF
default-storage-engine = MyISAM
 
innodb_file_per_table   = 1
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
 
innodb_flush_log_at_trx_commit = 2
 
innodb_flush_method = O_DIRECT
 
innodb_buffer_pool_size = 4G
low-priority-updates
tmp_table_size  = 2G
max_heap_table_size = 2G
 
table_open_cache = 32768
table_definition_cache = 32768
 
optimizer_switch = 'mrr=on'
optimizer_switch = 'mrr_cost_based=off'
optimizer_switch = 'optimize_join_buffer_size=on'
join_cache_level = 6
join_buffer_space_limit = 256M
join_buffer_size = 64M
 
[mysqldump]
quick
quote-names
max_allowed_packet      = 128M
 
[mуsql]
#no-auto-rehash # faster start of mysql but no tab completition
 
[isamchk]
key_buffer              = 128M
 
!includedir /etc/mysql/conf.d/

Объяснение кода листинга программы

Код представлен в виде настроек для сервера баз данных MySQL. Ниже приведён список этих настроек в виде нумерованного списка с указанием названия и значения каждой:

  1. [client] port = 3306 socket = /var/run/mysqld/mysqld.sock
  2. [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0
  3. [mysqld] init-connect = SET NAMES cp1251 user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /home/mysql tmpdir = /tmp language = /usr/share/mysql/english skip-external-locking skip-networking local-infile = 0 key_buffer_size = 128M sort_buffer_size = 128M table_cache = 2048 key_buffer = 1G max_allowed_packet = 16M thread_stack = 256K thread_cache_size = 16 myisam-recover = BACKUP max_connections = 128 max_user_connections = 8 thread_concurrency = 16 query_cache_limit = 50M query_cache_size = 200M query_cache_type = 1 open_files_limit = 65536 innodb = OFF default-storage-engine = MyISAM innodb_file_per_table = 1 innodb_file_format = Barracuda innodb_file_format_max = Barracuda innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT innodb_buffer_pool_size = 4G low-priority-updates tmp_table_size = 2G max_heap_table_size = 2G table_open_cache = 32768 table_definition_cache = 32768 optimizer_switch = 'mrr=on' optimizer_switch = 'mrr_cost_based=off' optimizer_switch = 'optimize_join_buffer_size=on' join_cache_level = 6 join_buffer_space_limit = 256M join_buffer_size = 64M
  4. [mysqldump] quick quote-names max_allowed_packet = 128M
  5. [mуsql]

    no-auto-rehash # faster start of mysql but no tab completition

  6. [isamchk] key_buffer = 128M
  7. !includedir /etc/mysql/conf.d/

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы