powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Посоветуйте методы оптимизации сервера MySQL.
25 сообщений из 29, страница 1 из 2
Посоветуйте методы оптимизации сервера MySQL.
    #38739103
Sferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, господа. Являюсь новичком в администрировании MySQL - все эксперименты провожу на отдельном домашнем веб-сервере следующей конфигурации:

CPU: Intel Atom N2800 (1.86 GHz, Cores: 2, Threads: 4);

RAM: 4 Gb DDR3-1066;

HDD: 640 Gb, SATA2.

В качестве ОС используется Debian Wheezy v7.0, где установлены следующие компоненты:


Nginx v1.6.0;

PHP-FPM v5.4.4-14+deb7u14;

MySQL v5.5.39-MariaDB (использовать планирую InnoDB).

Решил вот, заняться оптимизацией. Конфиг my.cnf у меня в данный момент имеет следующий вид:

Код: sql
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.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set = utf8

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
tmp_table_size = 2K
bind-address = 127.0.0.1
port = 3306
max_connections = 9
max_allowed_packet = 2M
character-set-server  = utf8
collation-server = utf8_general_ci
table_open_cache = 2048
sort_buffer_size = 4M
join_buffer_size = 3M
tmp_table_size = 16M
max_heap_table_size = 16M
skip-name-resolve
sql_mode = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_IN_DATE
sysdate_is_now = 1
default-storage-engine = InnoDB
skip-networking
low-priority-updates
feedback = ON
skip-archive
skip-blackhole
skip-federated
skip-partition
innodb_buffer_pool_size = 512M
innodb_additional_mem_pool_size = 64M
innodb_log_files_in_group = 2
innodb_log_file_size = 5M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
innodb = FORCE
innodb_strict_mode = 1
innodb_buffer_pool_instances = 1
innodb_file_per_table
innodb_file_format = Barracuda
innodb_use_sys_malloc = 0
innodb_thread_concurrency = 8
general_log_file = /var/log/mysql/mysql.log
general_log = 1
log_error = /var/log/mysql/error.log
slow-query-log-file = /var/log/mysql/slow.log
slow-query-log = 1
long_query_time = 5
log-queries-not-using-indexes
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
skip-external-locking
key_buffer_size = 384M
read_buffer_size = 2M
myisam_sort_buffer_size = 1536M
concurrent_insert = ALWAYS
open_files_limit = 6144
query_cache_type = ON
query_cache_size = 8M
query_cache_limit = 1M
query_cache_min_res_unit = 4096
thread_cache_size = 8
thread_concurrency = 8

[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
syslog

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[isamchk]
key_buffer = 16M


Скрипт mysqltuner выдаёт следующее:
>> MySQLTuner 1.3.0 - Major Hayden <major@mhtx.net>;
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
[OK] Logged in using credentials from debian maintenance account.
[OK] Currently running supported MySQL version 5.5.39-MariaDB-1~wheezy-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status:-ARCHIVE +Aria -BLACKHOLE+CSV-FEDERATED+InnoDB+MRG_MYISAM-partition+SPHINX
[--] Data in InnoDB tables: 7M (Tables: 83)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] Total fragmented tables: 3

-------- Security Recommendations -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 3h 23m 33s (1K q [0.130 qps], 240 conn, TX: 4M, RX: 236K)
[--] Reads / Writes: 86% / 14%
[--] Total buffers: 1016.0M global + 9.5M per thread (9 max threads)
[OK] Maximum possible memory usage: 1.1G (27% of installed RAM)
[!!] Slow queries: 6% (105/1K)
[OK] Highest usage of available connections: 22% (2/9)
[OK] Key buffer size / total MyISAM indexes: 384.0M/99.0K
[OK] Query cache efficiency: 31.2% (457 cached / 1K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 76 sorts)
[OK] Temporary tables created on disk: 4% (10 on disk / 236 total)
[OK] Thread cache hit rate: 99% (2 created / 240 connections)
[OK] Table cache hit rate: 55% (125 open / 224 opened)
[OK] Open file limit used: 0% (57/6K)
[OK] Table locks acquired immediately: 100% (628 immediate / 628 locks)
[OK] InnoDB buffer pool / data size: 512.0M/7.0M
[OK] InnoDB log waits: 0
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate

Подскажите, пожалуйста:

1. Что можно поднастроить в конфиге выше, с учётом того, что ОЗУ в системе 4Gb?
2. Каким образом можно избавиться от Slow Queries?

P.S. Повторюсь, я новичок, хотя MySQL уже пару лет на домашнем сервере используется - всё пытаюсь найти оптимальный баланс.

С уважением, Геннадий.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739120
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какова цель желаемой оптимизации?
Sferg1. Что можно поднастроить в конфиге выше, с учётом того, что ОЗУ в системе 4Gb?Для 7 Мбайт данных оптимизировать тут нечего.
Sferg2. Каким образом можно избавиться от Slow Queries?Посмотрите в Slow Query Log и оптимизируйте конкретные запросы, которые туда попали.
Или увеличьте порог длительности выполнения запросов :)
Хотя, не исключено, что запросы такие, что ускорить их уже невозможно.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739171
Sferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftКакова цель желаемой оптимизации?
Вы, возможно, будете удивлены: мне хотелось бы достичь на имеющемся оборудовании максимально возможного быстродействия и минимальных задержек.

miksoftДля 7 Мбайт данных оптимизировать тут нечего.
Возможно Вы правы... Но всё же хочется выжать максимум.

miksoftИли увеличьте порог длительности выполнения запросов :)
Издевайтесь, издевайтесь :)
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739204
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Вы, возможно, будете удивлены" --
записал, навсякий.

Хорошая фраза. Есть еше такие:

Удивительное -- рядом!
Удивительный вы человек.
Зрители были удивлены выступлением артиста.
Его удивлению не было предела.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739298
Sferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, кстати, вопрос вдогонку, уважаемые знатоки:

Кроме обычного жёсткого диска на 640 Gb, у меня ещё подключен и SSD-диск Intel SSDSA2BW120G3A (Intel 320 Series).
Есть ли смысл переноса базы данных с обычного диска на SSD? Не приведёт ли сей шаг к его преждевременной кончине?

P.S. innodb_flush_log_at_trx_commit = 0 и sync_binlog у меня выключены, логи планирую писать на обычный диск.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739307
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SfergЕсть ли смысл переноса базы данных с обычного диска на SSD?miksoftДля 7 Мбайт данных оптимизировать тут нечего.
SfergНе приведёт ли сей шаг к его преждевременной кончине?нет
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739328
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sfergмне хотелось бы достичь на имеющемся оборудовании максимально возможного быстродействия и минимальных задержек.
Почему бы не попробовать универсальный метод:
1) Найти бутылочное горлышко
2) Найти нагрузку, приводящую к его созданию
3) Устранить одно из них
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739401
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov....
Почему бы не ....

Потомучто!

Очень сложно найти черную кошку в
темной комнате, особено если кошки там нет.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739415
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbcDimitry Sibiryakov....
Почему бы не ....

Потомучто!

Очень сложно найти черную кошку в
темной комнате, особено если кошки там нет.Но Slow queries-то есть!
Хотя не факт, что они - кошка, но мы-то этого не знаем.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739446
Sferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft , обратил внимание, что когда параметр log-queries-not-using-indexes закомментирован, то Slow Queries нет:

Код: sql
1.
[OK] Slow queries: 0% (0/90)


При этом, если несколько раз подряд запускать mysqltuner, то увеличивается второе число. В том случае, когда параметр log-queries-not-using-indexes раскомментирован, то Slow Queries появляются:

Код: sql
1.
[OK] Slow queries: 2% (2/90)


Если несколько раз подряд запускать mysqltuner, то увеличиваются оба числа (соответственно, и процент медленных запросов растёт).
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739447
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sferg,

Ну а в логе-то что?
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739452
Sferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftНу а в логе-то что?

Вот что прописалось в лог прямо сразу после запуска MySQL:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
/usr/sbin/mysqld, Version: 5.5.39-MariaDB-1~wheezy-log (mariadb.org binary distribution). started with:
Tcp port: 0  Unix socket: /var/run/mysqld/mysqld.sock
Time                 Id Command    Argument
# Time: 140906 21:11:50
# User@Host: debian-sys-maint[debian-sys-maint] @ localhost []
# Thread_id: 5  Schema:   QC_hit: No
# Query_time: 0.000573  Lock_time: 0.000211  Rows_sent: 1  Rows_examined: 7
SET timestamp=1410023510;
SELECT count(*) FROM mysql.user WHERE user='root' and password='';
# User@Host: debian-sys-maint[debian-sys-maint] @ localhost []
# Thread_id: 6  Schema:   QC_hit: No
# Query_time: 0.031293  Lock_time: 0.000312  Rows_sent: 23  Rows_examined: 189
SET timestamp=1410023510;
select concat('select count(*) into @discard from `',
                    TABLE_SCHEMA, '`.`', TABLE_NAME, '`') 
      from information_schema.TABLES where ENGINE='MyISAM';
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739453
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот же людям делать нечего.

убьют - тогда и приходите как появится реальная проблема - тогда и пишите.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739462
Sferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот это при обращении к главной странице форума:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
# Time: 140906 21:29:32
# User@Host: dyvniy[dyvniy] @ localhost []
# Thread_id: 30  Schema: dyvniy_forum  QC_hit: No
# Query_time: 0.013617  Lock_time: 0.012417  Rows_sent: 7  Rows_examined: 16
use dyvniy_forum;
SET timestamp=1410024572;
SELECT f.*, ft.mark_time FROM (phpbbex_forums f) LEFT JOIN phpbbex_forums_track ft ON (ft.user_id = 68 AND ft.forum_id = f.forum_id) ORDER BY f.left_id;
# User@Host: dyvniy[dyvniy] @ localhost []
# Thread_id: 30  Schema: dyvniy_forum  QC_hit: No
# Query_time: 0.001351  Lock_time: 0.000191  Rows_sent: 6  Rows_examined: 131
SET timestamp=1410024572;
SELECT topic_id, topic_title, topic_last_post_id, forum_id FROM phpbbex_topics WHERE topic_last_post_id IN (381,137,389,394,392,396);
# User@Host: dyvniy[dyvniy] @ localhost []
# Thread_id: 30  Schema: dyvniy_forum  QC_hit: No
# Query_time: 0.001023  Lock_time: 0.000247  Rows_sent: 1  Rows_examined: 4
SET timestamp=1410024572;
SELECT s.session_user_id AS user_id, s.session_viewonline, u.username, u.user_type, u.user_colour
		FROM phpbbex_sessions s
		LEFT JOIN phpbbex_users u ON s.session_user_id = u.user_id
		WHERE s.session_time >= 1410023670 AND s.session_user_id <> 1
		GROUP BY s.session_user_id
		ORDER BY u.username_clean;



P.S. Повторюсь, я в MySQL новичок. Конечно, не совсем зелёный, но тем не менее. Строго не судите.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739477
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Query_time ничтожные.
netwindкак появится реальная проблема - тогда и пишите.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739480
Sferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftQuery_time ничтожные.
Ну да, цифры маленькие. Но тогда почему, в таком случае, MySQL бьёт тревогу? Если это не настолько критично, то в slow.log запись бы и не делалась. Ан нет, выводится-таки.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739492
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sferg, mysql не бьет тревогу. Скрипт mysqltuner неофициальный никак не связан с разработчиками mysql.
В частности, у вас из-за включенной опции log-queries-not-using-indexes увеличивается число "медленных" запросов.

Это от безделья. Стоял бы обычный конфиг - был бы чистый лог и ничего бы не заметили даже.
Вообще говорят не сломан. Не надо его тюнить.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739496
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindВообще говоря, MySQL не сломан. Не надо его тюнить.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739798
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbcПотомучто!

Очень сложно найти черную кошку в
темной комнате, особено если кошки там нет.
То есть CPU у аффтара не загружен, ожиданий в очереди к диску - нет, памяти хватает, сеть простаивает. Ню-ню...
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739849
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovjavajdbcПотомучто!

Очень сложно найти черную кошку в
темной комнате, особено если кошки там нет.
То есть CPU у аффтара не загружен, ожиданий в очереди к диску - нет, памяти хватает, сеть простаивает. Ню-ню...


...а также гаф-гаф, мяу-мяу, ква-ква, иго-го....
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739945
Sferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня просто несколько беспокоит вопрос, касаемый времени генерации страницы форума. На главной странице время ~0.035s, в темах ~0.105s (и выше).

Пробовал переносить БД с HDD на SSD, отключал логи MySQL, PHP, NGINX - на время генерации страниц это практически не отразилось. Выходит, не жёсткий диск является бутылочным горлышком.

Вывод команды free говорит о том, что оперативки сейчас занято 346 Mb из 3602 Mb. Вроде как оперативки на нужды тоже хватает...

Утилита htop при обновлении страницы показывает нагрузку процессора 12.4% - 31.8%. Неужто камешек совсем не справляется?
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38739960
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SfergНеужто камешек совсем не справляется?Скорее неоптимален код генерации страницы. Но с этим уже не сюда, а в профильный подфорум.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38740033
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и atom - не процессор.
попробуйте использовать его как десктоп - сразу поймете почему.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38740056
Sferg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwind , одно время и как десктоп использовался. Худо-бедно, но Windows 7 шла)))
Сейчас там Debian крутится, ибо винда сильно уж прожорливая до ресурсов.
...
Рейтинг: 0 / 0
Посоветуйте методы оптимизации сервера MySQL.
    #38740645
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SfergПробовал переносить БД с HDD на SSD, отключал логи MySQL, PHP, NGINX - на время генерации страниц это практически не отразилось. Выходит, не жёсткий диск является бутылочным горлышком.
Чего только люди не придумают, чтобы не пользоваться iotop-ом...

У тебя и так страница генерируется быстрее чем отправляется пользователю. С нагрузкой из одного человека это вообще не показатель.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Посоветуйте методы оптимизации сервера MySQL.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]