Oracle mechanics

MySQL скрипты и утилиты

Текущий статус MySQL Innodb

, включая информацию о запущенных thread‘ах и процессах, транзакциях, блокировках, последних зарегистрированных deadlock и прочее:

mysql> tee status.log;
mysql> show full processlist;
mysql> drop table if exists innodb_lock_monitor;
mysql> CREATE TABLE innodb_lock_monitor (a INT) ENGINE=INNODB;
mysql> SHOW ENGINE INNODB STATUS\G;
mysql> DROP TABLE innodb_lock_monitor;
mysql> notee;
Мониторинг статистики сервера (status) из командной строки

Пример мониторинга количества создаваемых на диске временных таблиц (Created_tmp_disk_tables) утилитой mysqladmin с интервалом 10 сек:

$ mysqladmin extended-status -i10 -r | grep Created_tmp_disk_tables
MySQL Tuner

простая удобная утилита для диагностики сервера, пример установки и запуска для Linux/Unix:

# wget mysqltuner.pl
# chmod +x ./mysqltuner.pl
# ./mysqltuner.pl
mysqlslap — Load Emulation Client

«mysqlslap — программа для диагностики, эмулирующая запросы клиентов к серверу MySQL и фиксирующая время выполнения … При работе генерирует нагрузку, эквивалентную нескольким клиентским соединениям к серверу. mysqlslap доступна, начиная с MySQL 5.1.4″

create.sql:
CREATE TABLE name ...
CREATE TABLE age ...
INSERT INTO name VALUES ...
INSERT INTO age VALUES ...

query.sql:
SELECT age.age FROM name, age where ... ORDER BY ...;

shell> mysqlslap --concurrency=5 --iterations=100 --query=query.sql --create=create.sql

Benchmark
Average number of seconds to run all queries: 0.132 seconds
Minimum number of seconds to run all queries: 0.037 seconds
Maximum number of seconds to run all queries: 0.268 seconds
Number of clients running queries: 5
Average number of queries per client: 1
innotop

утилита мониторинга MySQL и InnoDB в режиме реального времени

пример начальной конфигурации (во время первого запуска) для соединения с локальной бд

Enter a name: localhost
Enter a DSN string: DBI:mysql:;mysql_read_default_group=mysql

Экраны:

B  InnoDB Buffers    I  InnoDB I/O Info     Q  Query List
C  Command Summary   L  Locks               R  InnoDB Row Ops
D  InnoDB Deadlocks  M  Replication Status  S  Variables & Status
F  InnoDB FK Err     O  Open Tables         T  InnoDB Txns
Как найти большие таблицы MySQL Server (версии 5.0+)

Если при запуске mysqltuner, видим грозные рекомендации

# ./mysqltuner.pl
...
[!!] InnoDB data size / buffer pool: 1.8G/512.0M
...
Variables to adjust:
 innodb_buffer_pool_size (>= 1G)

можно воспользоваться  чудо-скриптом с сайта http://www.mysqlperformanceblog.com/

mysql> SELECT concat(table_schema,'.',table_name),
    -> concat(round(table_rows/1000000,2),'M') rows,
    -> concat(round(data_length/(1024*1024*1024),2),'G') DATA,
    -> concat(round(index_length/(1024*1024*1024),2),'G') idx,
    -> concat(round((data_length+index_length)/(1024*1024*1024),2),'G') total_size,
    -> round(index_length/data_length,2) idxfrac
    -> FROM information_schema.TABLES ORDER BY data_length+index_length DESC LIMIT 10;
+--------------------------------------+-------+-------+-------+------------+---------+
| concat(table_schema,'.',table_name)  | rows  | DATA  | idx   | total_size | idxfrac |
+--------------------------------------+-------+-------+-------+------------+---------+
| sitemanager.b_stat_hit               | 3.08M | 1.32G | 0.05G | 1.37G      |    0.04 |
...
+--------------------------------------+-------+-------+-------+------------+---------+

TBD

TrackBack URI

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: