Долго выполняются запросы

12
N
На сайте с 28.12.2015
Offline
0
8407

Сервер: 1x3Ghz, RAM 2Gb, Disk 20Gb

ОС: centos-6-x86_64

Работа сервера:

Настройки my.cnf:


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_connections = 1000
interactive_timeout=180
wait_timeout=180
key_buffer_size = 128M
sort_buffer_size = 32M
table_cache = 2048
query_cache_limit = 1M
query_cache_size = 128M
query_cache_type = 1
thread_cache_size = 16
table_open_cache = 1024

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Что выдает mysqltuner.pl:


[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.73
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +CSV +InnoDB +MRG_MYISAM
[--] Data in MyISAM tables: 115M (Tables: 48)
[--] Data in InnoDB tables: 96K (Tables: 4)
[!!] Total fragmented tables: 4

-------- Security Recommendations -------------------------------------------
[!!] User '@localhost' is an anonymous account.
[!!] User '@vds5157.myarena.ru' is an anonymous account.
[!!] User '@localhost' has no password set.
[!!] User '@vds5157.myarena.ru' has no password set.
[!!] User 'root@127.0.0.1' has no password set.
[!!] User 'root@vds5157.myarena.ru' has no password set.
[!!] User '@localhost' has user name as password.
[!!] User '@vds5157.myarena.ru' has user name as password.
[!!] There is no basic password file list!

-------- Performance Metrics -------------------------------------------------
[--] Up for: 6m 10s (1K q [3.503 qps], 17 conn, TX: 1M, RX: 97K)
[--] Reads / Writes: 92% / 8%
[--] Binary logging is disabled
[--] Total buffers: 282.0M global + 32.8M per thread (1000 max threads)
[OK] Maximum reached memory usage: 380.2M (18.57% of installed RAM)
[!!] Maximum possible memory usage: 32.3G (1612.89% of installed RAM)
[OK] Slow queries: 0% (0/1K)
[OK] Highest usage of available connections: 0% (3/1000)
[!!] Aborted connections: 5.88% (1/17)
[!!] Query cache efficiency: 14.1% (167 cached / 1K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 3 sorts)
[OK] Temporary tables created on disk: 0% (0 on disk / 2 total)
[OK] Thread cache hit rate: 82% (3 created / 17 connections)
[OK] Table cache hit rate: 72% (18 open / 25 opened)
[OK] Open file limit used: 0% (33/5K)
[OK] Table locks acquired immediately: 100% (1K immediate / 1K locks)

-------- MyISAM Metrics -----------------------------------------------------
[!!] Key buffer used: 18.2% (24M used / 134M cache)
[OK] Key buffer size / total MyISAM indexes: 128.0M/20.2M
[!!] Read Key buffer hit rate: 94.7% (320 cached / 17 reads)
[!!] Write Key buffer hit rate: 0.0% (79 cached / 79 writes)

-------- InnoDB Metrics -----------------------------------------------------
[--] InnoDB is enabled.
[OK] InnoDB buffer pool / data size: 8.0M/96.0K
[!!] InnoDB Used buffer: 4.69% (24 used/ 512 total)
[OK] InnoDB Read buffer efficiency: 97.81% (761 hits/ 778 total)
[!!] InnoDB Write buffer efficiency: 0.00% (0 hits/ 1 total)
[OK] InnoDB log waits: 0.00% (0 waits / 2 writes)

-------- AriaDB Metrics -----------------------------------------------------
[--] AriaDB is disabled.

-------- Replication Metrics -------------------------------------------------
[--] No replication slave(s) for this server.
[--] This is a standalone server..

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
Remove Anonymous User accounts - there are 2 anonymous accounts.
Set up a Password for user with the following SQL statement ( SET PASSWORD FOR 'user'@'SpecificDNSorIp' = PASSWORD('secure_password'); )
Set up a Secure Password for user@host ( SET PASSWORD FOR 'user'@'SpecificDNSorIp' = PASSWORD('secure_password'); )
MySQL started within last 24 hours - recommendations may be inaccurate
Reduce your overall MySQL memory footprint for system stability
Enable the slow query log to troubleshoot bad queries
Reduce or eliminate unclosed connections and network issues
Variables to adjust:
*** MySQL's maximum memory usage is dangerously high ***
*** Add RAM before increasing MySQL buffer variables ***
query_cache_limit (> 1M, or use smaller result sets)

Никогда ранее с этим не работал (оптимизация сервера базы данных)

D
На сайте с 07.01.2013
Offline
90
#1

Включите логирование запросов. Используются ли индексы?

Приложение, нужное любому веб-мастеру (https://apps.apple.com/ru/app/%D0%BC%D0%BE%D0%B8-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%8B/id1493164681)
N
На сайте с 28.12.2015
Offline
0
#2

Я по изменял my.cnf, и знаете, запросы стали значительно быстрее работать


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_connections = 1000
interactive_timeout=180
wait_timeout=180
key_buffer_size = 384M
table_cache = 4096
thread_cache_size = 16
query_cache_limit = 1M
query_cache_size = 256M
query_cache_type = 1
table_open_cache = 1024
long_query_time = 2
log-slow-queries = /var/log/mysqld-slow-query.log
sort_buffer_size = 32M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


---------- Добавлено 29.12.2015 в 00:24 ----------

Dtachkov:
Включите логирование запросов. Используются ли индексы?

Включил логирование медленных запросов (с 2 сек), однако ни одной нет.

Да, конечно, индексы используется во всех таблицах.

G-and-Y
На сайте с 29.06.2013
Offline
182
#3

key_buffer_size можно увеличить до 750-1000, (30-40% памяти) если много innodb таблиц то innodb_buffer_pool_size (30-40% памяти), другие параметры не столь важны их можно оставить по дефолту.

Абузо-устойчивые впс ( http://vps-hosting.lv/?p=13408 )
N
На сайте с 06.05.2007
Offline
419
#4
nikjda:
Включил логирование медленных запросов (с 2 сек), однако ни одной нет.

Так значит никакой проблемы нет, если запросы выполняются быстро ?

Начните сначала : почему вы заподозрили, что запросы выполняются долго ?

Ну поставьте 1.

Кнопка вызова админа ()
N
На сайте с 28.12.2015
Offline
0
#5

Попробовал выполнить запрос напрямую в базе данных, время выполнения ~0.6 сек

---------- Добавлено 30.12.2015 в 01:28 ----------

вот что показывает команда top

A
На сайте с 19.07.2010
Offline
130
#6
G-and-Y:
key_buffer_size можно увеличить до 750-1000, (30-40% памяти)

Вы о чем???...

У ТС индексы занимают 20Мб на них уже был выделен буфер 128Мб, в следующем посте ТС уже прописал 384Мб. Вы предлагаете еще увеличить выделяемый RAM до 750-1000Мб только ради кеширования 20Мб... Сильно 😂


[OK] Key buffer size / total MyISAM indexes: 128.0M/20.2M

Этот буфер нужно ставить по размеру индексов, 24Мб будет достаточно.

ну и:

max_connections = 1000 - у Вас никогда столько не будет, т.к. сервер умрет намного раньше от нехватки памяти. Поставьте 20-30

sort_buffer_size = 32M - скорее всего Вам не нужен такой буфер, я бы уменьшил его до 8Мб или даже до 4

Еще возможность сэкономить RAM:

[--] Data in InnoDB tables: 96K (Tables: 4)

Перевести эти 4 пустые таблички из InnoDB в MyISAM. Затем можно будет полновсть выключить ненужный InnoDB. (При ваших объемах данных он не нужен)

зы: по скриншоту - у mysql большая нагрузка на проц, смотрите запросы и индексы.

.............
N
На сайте с 28.12.2015
Offline
0
#7

До того момента, как база данных располагалась на веб-хостинге, то никаких проблем не было с запросами. Это случилось после переезда на VDS сервер. Из этого можно выявить причину - не настроен сервер

4 таблички перевел в MyISAM, теперь как отключить InnoDB?

G-and-Y
На сайте с 29.06.2013
Offline
182
#8

nikjda,

innodb=OFF

default-storage-engine = MyISAM

service mysql restart

admak:
Вы о чем???...
У ТС индексы занимают 20Мб на них уже был выделен буфер 128Мб, в следующем посте ТС уже прописал 384Мб. Вы предлагаете еще увеличить выделяемый RAM до 750-1000Мб только ради кеширования 20Мб... Сильно

Сори недосмотрел...

N
На сайте с 28.12.2015
Offline
0
#9

До этого как то исправил следующие ошибки, но после различных изменений снова вернулись:


-------- Performance Metrics -------------------------------------------------
[!!] Aborted connections: 14.29% (1/7)
[!!] Query cache efficiency: 0.0% (0 cached / 4 selects)

-------- Recommendations -----------------------------------------------------
General recommendations:
query_cache_limit (> 2M, or use smaller result sets)

Текущие настройки:


[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer_size = 24M
key_cache_division_limit=70
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
query_cache_type = 1
query_cache_limit= 2M
thread_concurrency = 8
interactive_timeout=180
wait_timeout=180
long_query_time = 1
log-slow-queries = /var/log/mysqld-slow-query.log
default-storage-engine=MyISAM
innodb=OFF
character-set-server=utf8
collation-server=utf8_general_ci
A
На сайте с 19.07.2010
Offline
130
#10
nikjda:
До этого как то исправил следующие ошибки, но после различных изменений снова вернулись:


-------- Performance Metrics -------------------------------------------------
[!!] Aborted connections: 14.29% (1/7)
[!!] Query cache efficiency: 0.0% (0 cached / 4 selects)

Еще рано о чем-то говорить, подождите 24 часа.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий