Задавайте вопросы, мы ответим
Вы не зашли.
Имею в своем распоряжении железку Intel i7 2600 + 2x4Gb ddr3 + 1Tb sata под сервер базы данных
ОС Centos 5.7 с последними обновлениями
Установлен mysql 5.5.20 из Remi
Все установлено вот буквально только что.
my.cnf
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql key_buffer_size=2048M max_connections=700 low_priority_updates=1 old_passwords=0 read_buffer_size=8M sort_buffer_size=2048M query_cache_type=0 query_cache_limit=1M query_cache_min_res_unit=1K query_cache_size=0 table_cache=50000 thread_cache_size=2048 tmp_table_size=128M #concurrent_insert=2 #myisam_sort_buffer_size=64M #myisam-recover=QUICK,BACKUP,FORCE #skip-innodb innodb_data_home_dir = /var/lib/mysql/innobase innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = /var/lib/mysql/innobase innodb_buffer_pool_size=4096M innodb_flush_log_at_trx_commit=2 innodb_flush_method=O_DIRECT innodb_log_buffer_size=4M innodb_log_file_size=256M innodb_file_per_table=1 innodb_lock_wait_timeout=50 innodb_force_recovery=0 innodb_thread_concurrency=50 port=3306 bind-address=192.168.1.18 skip-name-resolve [mysqld_safe] log-error=/var/log/mysql/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
Включаю сайт, делаю буквально пару-тройку кликов по странице и наблюдаю загрузку HDD в 100% (см. скриншот)
Подумал битый диск - поменял диск на 500-сотку из запаса, переустановил все то же самое в чистую - разницы нет, поведение точно такое же.
Смарт обоих дисков наличия бедблоков не показывает.
В биосе режим SATA AHCI
Без нагрузки на hdd
#hdparm -t /dev/sda Timing buffered disk reads: 278 MB in 3.00 seconds = 92.54 MB/sec Timing buffered disk reads: 332 MB in 3.02 seconds = 110.02 MB/sec
Судя по скриншоту - mysql усиленно что-то куда-то пишет, НО ЧТО ? И как такое может быть да же при полностью отсутствующей нагрузке ?
upd: пардон, забыл: суммарный объем файлов в папке мускуля ~2гб, 670 файлов, 9 папок.
Отредактированно krevedko13 (04.02.2012 16:18:39)
Неактивен
Почему именно MySQL? Посмотрите atop - кто именно пишет. Можно сделать strace -p на mysql, чтобы посмотреть его текущие системные вызовы.
В конфигурации подозрительно sort_buffer_size=2048M - эта прамять выделяется для каждого подключения.
Неактивен
На этом сервере больше и нет ничего. На приатаченном скриншоте "atop -d" и показывает 100% на мускуль, разве нет ?
sort_buffer_size был задран во время последнего перелопачивания конфига, что 256 Мб как было, что 2 Гб - поведение однотипное.
strace -p 3509 и немножко потыкал страницы сайта
Process 3509 attached - interrupt to quit poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(51323), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 39 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(39, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(39, F_SETFL, O_RDONLY) = 0 fcntl(39, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(39, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(39, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(39, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(39, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(39, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(51326), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 39 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(39, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(39, F_SETFL, O_RDONLY) = 0 fcntl(39, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(39, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(39, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(39, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(39, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(39, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(51330), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 39 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(39, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(39, F_SETFL, O_RDONLY) = 0 fcntl(39, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(39, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(39, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(39, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(39, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(39, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(51333), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 39 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(39, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(39, F_SETFL, O_RDONLY) = 0 fcntl(39, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(39, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(39, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(39, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(39, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(39, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(51337), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 39 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(39, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(39, F_SETFL, O_RDONLY) = 0 fcntl(39, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(39, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(39, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(39, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(39, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(39, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(51342), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 39 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(39, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(39, F_SETFL, O_RDONLY) = 0 fcntl(39, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(39, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(39, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(39, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(39, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(39, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(51346), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 104 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(104, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(104, F_SETFL, O_RDONLY) = 0 fcntl(104, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(104, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(104, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(104, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(104, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(104, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1
к сожалению не имею понятия как интерпритировать эти данные ....
Да же простое открытие phpMyAdmin вызывает взлет активности диска (см. скриншот dhh2.png), так врядли дело в приложении работающем с моей БД.
Отредактированно krevedko13 (04.02.2012 17:28:01)
Неактивен
В strace отобразились только операции с сокетами, операций с диском не видно. Что показывает SHOW FULL PROCESSLIST в консоли MySQL, когда диск занят?
Неактивен
Дал кратковременную нагрузку на сайт (реальную, не бенчмарк):
По данным phpMyAdmin это какие-то несчастные 200 запросов в секунду, но из-за нагрузки на диск консоль отвечает заметно медленно, а генерация любой страницы сайта уходит в неприличные значения (боевые nginx и apache на другом физическом сервере, на этом только ненагруженный апач для phpMyAdmin)
Оперативной памяти свободно больше половины, свопинга нет.
hdd 100%
SHOW FULL PROCESSLIST в атаче
strace
setsockopt(789, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(789, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(789, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(789, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(789, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(56444), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 249 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(249, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(249, F_SETFL, O_RDONLY) = 0 fcntl(249, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(249, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(249, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(249, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(249, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(249, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(56445), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 319 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(319, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(319, F_SETFL, O_RDONLY) = 0 fcntl(319, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(319, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(319, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(319, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(319, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(319, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(56446), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 322 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(322, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(322, F_SETFL, O_RDONLY) = 0 fcntl(322, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(322, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(322, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(322, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(322, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(322, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(56448), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 335 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(335, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(335, F_SETFL, O_RDONLY) = 0 fcntl(335, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(335, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(335, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(335, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(335, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(335, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(56449), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 380 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(380, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(380, F_SETFL, O_RDONLY) = 0 fcntl(380, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(380, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(380, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(380, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(380, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(380, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(56450), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 398 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(398, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(398, F_SETFL, O_RDONLY) = 0 fcntl(398, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(398, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(398, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(398, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(398, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(398, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(36969), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 405 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(405, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(405, F_SETFL, O_RDONLY) = 0 fcntl(405, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(405, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(405, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(405, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(405, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(405, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(56459), sin_addr=inet_addr("192.168.1.5")}, [16864854713185599504]) = 410 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(410, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(410, F_SETFL, O_RDONLY) = 0 fcntl(410, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(410, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(410, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(410, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(410, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(410, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(36971), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 434 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(434, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(434, F_SETFL, O_RDONLY) = 0 fcntl(434, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(434, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(434, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(434, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(434, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(434, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1) = 1 ([{fd=10, revents=POLLIN}]) fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 accept(10, {sa_family=AF_INET, sin_port=htons(36972), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 434 fcntl(10, F_SETFL, O_RDWR) = 0 getsockname(434, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("192.168.1.18")}, [16864854713185599504]) = 0 fcntl(434, F_SETFL, O_RDONLY) = 0 fcntl(434, F_GETFL) = 0x2 (flags O_RDWR) setsockopt(434, SOL_SOCKET, SO_RCVTIMEO, "\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 setsockopt(434, SOL_SOCKET, SO_SNDTIMEO, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 fcntl(434, F_SETFL, O_RDWR|O_NONBLOCK) = 0 setsockopt(434, SOL_IP, IP_TOS, [8], 4) = 0 setsockopt(434, SOL_TCP, TCP_NODELAY, [1], 4) = 0 futex(0xf7a364, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0xf7a360, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 futex(0xf797c0, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=10, events=POLLIN}, {fd=12, events=POLLIN}], 2, -1 <unfinished ...>
Отредактированно krevedko13 (04.02.2012 18:48:55)
Неактивен
Судя по processlist, у Вас очень много тяжелых запросов, использующих tmp table на диске. Вам нужно оптимизировать запрос 'SELECT DISTINCT ..', который занимает первые строчки в processlist - его выполнение требует порядка минуты.
Неактивен
Благодарю. Оптимизация запроса спасла.
Судя по мануалу на выбор создавать темп в памяти или на диске ответственны tmp_table_size и max_heap_table_size , сейчас выставил их по 256M.
Погоняю базу в живую и буду снимать показания с тюнеров.
Неактивен
Хм, а почему никто не советует что-то вроде:
[mysqld] tmpdir = /dev/shm
есть какие-то предубеждения или нестабильность работы ?
/* что при перезагрузке память чистится понятно */
Неактивен
А в чем логика такого действия? Куда быстрее не складывать таблицу на ФС
(даже если ФС в памяти), чем складывать.
Неактивен
Нет, я прекрасно понимаю что нужно избавляться от запросов которые используют темповые таблицы, но есть же случаи когда это нереально.
Про tmpfs я не в контексте моего вопроса спрашиваю, а вообще
Неактивен
Если вдруг в tmpdir будет недостаточно место, то, например, создание индексов на больших таблицах будет выполняться бесконечно долго: http://webew.ru/posts/2699.webew
MEMORY таблицы эффективнее, чем дисковые таблицы в памяти.
Неактивен
А в контексте Вашего запроса — поднять tmp_table_size эффективнее, чем
перевесить временный раздел в ОЗУ.
Неактивен