mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 05:00:45 +00:00
Merged Baron's changes
This commit is contained in:
@@ -1845,7 +1845,7 @@ _semi_sync_stats_for () {
|
|||||||
trace_extra="Unknown setting"
|
trace_extra="Unknown setting"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
name_val "${target} semisync status" "${semisync_status}"
|
name_val "${target} semisync status" "${semisync_status}"
|
||||||
name_val "${target} trace level" "${semisync_trace}, ${trace_extra}"
|
name_val "${target} trace level" "${semisync_trace}, ${trace_extra}"
|
||||||
|
|
||||||
@@ -1911,9 +1911,9 @@ report_mysql_summary () {
|
|||||||
section Instances
|
section Instances
|
||||||
parse_mysqld_instances "$dir/mysqld-instances" "$dir/mysql-variables"
|
parse_mysqld_instances "$dir/mysqld-instances" "$dir/mysql-variables"
|
||||||
|
|
||||||
section MySQL_Executable
|
# TODO section MySQL_Executable
|
||||||
name_val "Path to executable" "$( get_var pt-summary-internal-mysql_executable "$dir/mysql-variables" )"
|
# TODO name_val "Path to executable" "$( get_var pt-summary-internal-mysql_executable "$dir/mysql-variables" )"
|
||||||
name_val "Has symbols" "$( get_var "pt-summary-internal-symbols" "$dir/mysql-variables" )"
|
# TODO name_val "Has symbols" "$( get_var "pt-summary-internal-symbols" "$dir/mysql-variables" )"
|
||||||
|
|
||||||
local user="$(get_var "pt-summary-internal-user" "$dir/mysql-variables")"
|
local user="$(get_var "pt-summary-internal-user" "$dir/mysql-variables")"
|
||||||
local port="$(get_var port "$dir/mysql-variables")"
|
local port="$(get_var port "$dir/mysql-variables")"
|
||||||
@@ -1969,6 +1969,7 @@ report_mysql_summary () {
|
|||||||
section_percona_server_features "$dir/mysql-variables"
|
section_percona_server_features "$dir/mysql-variables"
|
||||||
|
|
||||||
section Plugins
|
section Plugins
|
||||||
|
# TODO: what would be good is to show nonstandard plugins here.
|
||||||
name_val "InnoDB compression" "$(get_plugin_status "$dir/mysql-plugins" "INNODB_CMP")"
|
name_val "InnoDB compression" "$(get_plugin_status "$dir/mysql-plugins" "INNODB_CMP")"
|
||||||
|
|
||||||
if [ "$(get_var have_query_cache "$dir/mysql-variables")" ]; then
|
if [ "$(get_var have_query_cache "$dir/mysql-variables")" ]; then
|
||||||
@@ -2054,6 +2055,12 @@ report_mysql_summary () {
|
|||||||
else
|
else
|
||||||
name_val "Partitioning" "No"
|
name_val "Partitioning" "No"
|
||||||
fi
|
fi
|
||||||
|
if grep -e 'ENGINE=InnoDB.*ROW_FORMAT' \
|
||||||
|
-e 'ENGINE=InnoDB.*KEY_BLOCK_SIZE' "$dir/mysqldump" > /dev/null; then
|
||||||
|
name_val "InnoDB Compression" "Yes"
|
||||||
|
else
|
||||||
|
name_val "InnoDB Compression" "No"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
local ssl="$(get_var Ssl_accepts "$dir/mysql-status")"
|
local ssl="$(get_var Ssl_accepts "$dir/mysql-status")"
|
||||||
if [ -n "$ssl" -a "${ssl:-0}" -gt 0 ]; then
|
if [ -n "$ssl" -a "${ssl:-0}" -gt 0 ]; then
|
||||||
@@ -2265,7 +2272,7 @@ fi
|
|||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
pt-mysql-summary - Summarize MySQL information in a nice way.
|
pt-mysql-summary - Summarize MySQL information nicely.
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
@@ -2286,8 +2293,7 @@ tools) and those created by bugs.
|
|||||||
|
|
||||||
pt-mysql-summary is a read-only tool. It should be very low-risk.
|
pt-mysql-summary is a read-only tool. It should be very low-risk.
|
||||||
|
|
||||||
At the time of this release, we know of no bugs that could cause serious harm
|
At the time of this release, we know of no bugs that could harm users.
|
||||||
to users.
|
|
||||||
|
|
||||||
The authoritative source for updated information is always the online issue
|
The authoritative source for updated information is always the online issue
|
||||||
tracking system. Issues that affect this tool will be marked as such. You can
|
tracking system. Issues that affect this tool will be marked as such. You can
|
||||||
@@ -2303,30 +2309,387 @@ it for status and configuration information. It saves these bits of data
|
|||||||
into files in a temporary directory, and then formats them neatly with awk
|
into files in a temporary directory, and then formats them neatly with awk
|
||||||
and other scripting languages.
|
and other scripting languages.
|
||||||
|
|
||||||
To use, simply execute it. Optionally add the same command-line options
|
To use, simply execute it. Optionally add a double dash and then the same
|
||||||
you would use to connect to MySQL, like C<pt-mysql-summary --user=foo>.
|
command-line options you would use to connect to MySQL, such as the following:
|
||||||
|
|
||||||
|
pt-mysql-summary -- --user=root
|
||||||
|
|
||||||
The tool interacts minimally with the server upon which it runs. It assumes
|
The tool interacts minimally with the server upon which it runs. It assumes
|
||||||
that you'll run it on the same server you're inspecting, and therefore it
|
that you'll run it on the same server you're inspecting, and therefore it
|
||||||
assumes that it will be able to find the my.cnf configuration file, for
|
assumes that it will be able to find the my.cnf configuration file, for example.
|
||||||
example. However, it should degrade gracefully if this is not the case.
|
However, it should degrade gracefully if this is not the case. Note, however,
|
||||||
Note, however, that its output does not indicate which information comes from
|
that its output does not indicate which information comes from the MySQL
|
||||||
the MySQL database and which comes from the host operating system, so it is
|
database and which comes from the host operating system, so it is possible for
|
||||||
possible for confusing output to be generated if you run the tool on one
|
confusing output to be generated if you run the tool on one server and connect
|
||||||
server and direct it to connect to a MySQL database server running on another
|
to a MySQL database server running on another server.
|
||||||
server.
|
|
||||||
|
|
||||||
=head1 Fuzzy-Rounding
|
=head1 OUTPUT
|
||||||
|
|
||||||
Many of the outputs from this tool are deliberately rounded to show their
|
Many of the outputs from this tool are deliberately rounded to show their
|
||||||
magnitude but not the exact detail. This is called fuzzy-rounding. The idea
|
magnitude but not the exact detail. This is called fuzzy-rounding. The idea
|
||||||
is that it doesn't matter whether a server is running 918 queries per second
|
is that it does not matter whether a server is running 918 queries per second
|
||||||
or 921 queries per second; such a small variation is insignificant, and only
|
or 921 queries per second; such a small variation is insignificant, and only
|
||||||
makes the output hard to compare to other servers. Fuzzy-rounding rounds in
|
makes the output hard to compare to other servers. Fuzzy-rounding rounds in
|
||||||
larger increments as the input grows. It begins by rounding to the nearest 5,
|
larger increments as the input grows. It begins by rounding to the nearest 5,
|
||||||
then the nearest 10, nearest 25, and then repeats by a factor of 10 larger
|
then the nearest 10, nearest 25, and then repeats by a factor of 10 larger
|
||||||
(50, 100, 250), and so on, as the input grows.
|
(50, 100, 250), and so on, as the input grows.
|
||||||
|
|
||||||
|
The following is a sample of the report that the tool produces:
|
||||||
|
|
||||||
|
# Percona Toolkit MySQL Summary Report #######################
|
||||||
|
System time | 2012-03-30 18:46:05 UTC
|
||||||
|
(local TZ: EDT -0400)
|
||||||
|
# Instances ##################################################
|
||||||
|
Port Data Directory Nice OOM Socket
|
||||||
|
===== ========================== ==== === ======
|
||||||
|
12345 /tmp/12345/data 0 0 /tmp/12345.sock
|
||||||
|
12346 /tmp/12346/data 0 0 /tmp/12346.sock
|
||||||
|
12347 /tmp/12347/data 0 0 /tmp/12347.sock
|
||||||
|
|
||||||
|
The first two sections show which server the report was generated on and which
|
||||||
|
MySQL instances are running on the server. This is detected from the output of
|
||||||
|
C<ps> and does not always detect all instances and parameters, but often works
|
||||||
|
well. From this point forward, the report will be focused on a single MySQL
|
||||||
|
instance, although several instances may appear in the above paragraph.
|
||||||
|
|
||||||
|
# Report On Port 12345 #######################################
|
||||||
|
User | msandbox@%
|
||||||
|
Time | 2012-03-30 14:46:05 (EDT)
|
||||||
|
Hostname | localhost.localdomain
|
||||||
|
Version | 5.5.20-log MySQL Community Server (GPL)
|
||||||
|
Built On | linux2.6 i686
|
||||||
|
Started | 2012-03-28 23:33 (up 1+15:12:09)
|
||||||
|
Databases | 4
|
||||||
|
Datadir | /tmp/12345/data/
|
||||||
|
Processes | 2 connected, 2 running
|
||||||
|
Replication | Is not a slave, has 1 slaves connected
|
||||||
|
Pidfile | /tmp/12345/data/12345.pid (exists)
|
||||||
|
|
||||||
|
This section is a quick summary of the MySQL instance: version, uptime, and
|
||||||
|
other very basic parameters. The Time output is generated from the MySQL server,
|
||||||
|
unlike the system date and time printed earlier, so you can see whether the
|
||||||
|
database and operating system times match.
|
||||||
|
|
||||||
|
# Processlist ################################################
|
||||||
|
|
||||||
|
Command COUNT(*) Working SUM(Time) MAX(Time)
|
||||||
|
------------------------------ -------- ------- --------- ---------
|
||||||
|
Binlog Dump 1 1 150000 150000
|
||||||
|
Query 1 1 0 0
|
||||||
|
|
||||||
|
User COUNT(*) Working SUM(Time) MAX(Time)
|
||||||
|
------------------------------ -------- ------- --------- ---------
|
||||||
|
msandbox 2 2 150000 150000
|
||||||
|
|
||||||
|
Host COUNT(*) Working SUM(Time) MAX(Time)
|
||||||
|
------------------------------ -------- ------- --------- ---------
|
||||||
|
localhost 2 2 150000 150000
|
||||||
|
|
||||||
|
db COUNT(*) Working SUM(Time) MAX(Time)
|
||||||
|
------------------------------ -------- ------- --------- ---------
|
||||||
|
NULL 2 2 150000 150000
|
||||||
|
|
||||||
|
State COUNT(*) Working SUM(Time) MAX(Time)
|
||||||
|
------------------------------ -------- ------- --------- ---------
|
||||||
|
Master has sent all binlog to 1 1 150000 150000
|
||||||
|
NULL 1 1 0 0
|
||||||
|
|
||||||
|
This section is a summary of the output from SHOW PROCESSLIST. Each sub-section
|
||||||
|
is aggregated by a different item, which is shown as the first column heading.
|
||||||
|
When summarized by Command, every row in SHOW PROCESSLIST is included, but
|
||||||
|
otherwise, rows whose Command is Sleep are excluded from the SUM and MAX
|
||||||
|
columns, so they do not skew the numbers too much. In the example shown, the
|
||||||
|
server is idle except for this tool itself, and one connected replica, which
|
||||||
|
is executing Binlog Dump.
|
||||||
|
|
||||||
|
The columns are the number of rows included, the number that are not in Sleep
|
||||||
|
status, the sum of the Time column, and the maximum Time column. The numbers are
|
||||||
|
fuzzy-rounded.
|
||||||
|
|
||||||
|
# Status Counters (Wait 10 Seconds) ##########################
|
||||||
|
Variable Per day Per second 10 secs
|
||||||
|
Binlog_cache_disk_use 4
|
||||||
|
Binlog_cache_use 80
|
||||||
|
Bytes_received 15000000 175 200
|
||||||
|
Bytes_sent 15000000 175 2000
|
||||||
|
Com_admin_commands 1
|
||||||
|
...................(many lines omitted)............................
|
||||||
|
Threads_created 40 1
|
||||||
|
Uptime 90000 1 1
|
||||||
|
|
||||||
|
This section shows selected counters from two snapshots of SHOW GLOBAL STATUS,
|
||||||
|
gathered approximately 10 seconds apart and fuzzy-rounded. It includes only
|
||||||
|
items that are incrementing counters; it does not include absolute numbers such
|
||||||
|
as the Threads_running status variable, which represents a current value, rather
|
||||||
|
than an accumulated number over time.
|
||||||
|
|
||||||
|
The first column is the variable name, and the second column is the counter from
|
||||||
|
the first snapshot divided by 86400 (the number of seconds in a day), so you can
|
||||||
|
see the magnitude of the counter's change per day. 86400 fuzzy-rounds to 90000,
|
||||||
|
so the Uptime counter should always be about 90000.
|
||||||
|
|
||||||
|
The third column is the value from the first snapshot, divided by Uptime and
|
||||||
|
then fuzzy-rounded, so it represents approximately how quickly the counter is
|
||||||
|
growing per-second over the uptime of the server.
|
||||||
|
|
||||||
|
The third column is the incremental difference from the first and second
|
||||||
|
snapshot, divided by the difference in uptime and then fuzzy-rounded. Therefore,
|
||||||
|
it shows how quickly the counter is growing per second at the time the report
|
||||||
|
was generated.
|
||||||
|
|
||||||
|
# Table cache ################################################
|
||||||
|
Size | 400
|
||||||
|
Usage | 15%
|
||||||
|
|
||||||
|
This section shows the size of the table cache, followed by the percentage of
|
||||||
|
the table cache in use. The usage is fuzzy-rounded.
|
||||||
|
|
||||||
|
# Key Percona Server features ################################
|
||||||
|
Table & Index Stats | Not Supported
|
||||||
|
Multiple I/O Threads | Enabled
|
||||||
|
Corruption Resilient | Not Supported
|
||||||
|
Durable Replication | Not Supported
|
||||||
|
Import InnoDB Tables | Not Supported
|
||||||
|
Fast Server Restarts | Not Supported
|
||||||
|
Enhanced Logging | Not Supported
|
||||||
|
Replica Perf Logging | Not Supported
|
||||||
|
Response Time Hist. | Not Supported
|
||||||
|
Smooth Flushing | Not Supported
|
||||||
|
HandlerSocket NoSQL | Not Supported
|
||||||
|
Fast Hash UDFs | Unknown
|
||||||
|
|
||||||
|
This section shows features that are available in Percona Server and whether
|
||||||
|
they are enabled or not. In the example shown, the server is standard MySQL, not
|
||||||
|
Percona Server, so the features are generally not supported.
|
||||||
|
|
||||||
|
# Plugins ####################################################
|
||||||
|
InnoDB compression | ACTIVE
|
||||||
|
|
||||||
|
This feature shows specific plugins and whether they are enabled.
|
||||||
|
|
||||||
|
# Query cache ################################################
|
||||||
|
query_cache_type | ON
|
||||||
|
Size | 0.0
|
||||||
|
Usage | 0%
|
||||||
|
HitToInsertRatio | 0%
|
||||||
|
|
||||||
|
This section shows whether the query cache is enabled and its size, followed by
|
||||||
|
the percentage of the cache in use and the hit-to-insert ratio. The latter two
|
||||||
|
are fuzzy-rounded.
|
||||||
|
|
||||||
|
# Schema #####################################################
|
||||||
|
Would you like to mysqldump -d the schema and analyze it? y/n y
|
||||||
|
There are 4 databases. Would you like to dump all, or just one?
|
||||||
|
Type the name of the database, or press Enter to dump all of them.
|
||||||
|
|
||||||
|
Database Tables Views SPs Trigs Funcs FKs Partn
|
||||||
|
mysql 24
|
||||||
|
performance_schema 17
|
||||||
|
sakila 16 7 3 6 3 22
|
||||||
|
|
||||||
|
Database MyISAM CSV PERFORMANCE_SCHEMA InnoDB
|
||||||
|
mysql 22 2
|
||||||
|
performance_schema 17
|
||||||
|
sakila 8 15
|
||||||
|
|
||||||
|
Database BTREE FULLTEXT
|
||||||
|
mysql 31
|
||||||
|
performance_schema
|
||||||
|
sakila 63 1
|
||||||
|
|
||||||
|
c t s e l d i t m v s
|
||||||
|
h i e n o a n i e a m
|
||||||
|
a m t u n t t n d r a
|
||||||
|
r e m g e y i c l
|
||||||
|
s b t i u h l
|
||||||
|
t l i n m a i
|
||||||
|
a o m t t r n
|
||||||
|
m b e e t
|
||||||
|
p x
|
||||||
|
t
|
||||||
|
Database === === === === === === === === === === ===
|
||||||
|
mysql 61 10 6 78 5 4 26 3 4 5 3
|
||||||
|
performance_schema 5 16 33
|
||||||
|
sakila 1 15 1 3 4 3 19 42 26
|
||||||
|
|
||||||
|
If you select to dump the schema and analyze it, the tool will print the above
|
||||||
|
section. This summarizes the number and type of objects in the database. It is
|
||||||
|
generated by running C<mysqldump --no-data>, not by querying the
|
||||||
|
INFORMATION_SCHEMA, which can freeze a busy server. You can use the
|
||||||
|
L<"--databases"> option to specify which databases to examine. If you do not,
|
||||||
|
and you run the tool interactively, it will prompt you as shown.
|
||||||
|
|
||||||
|
You can choose not to dump the schema, to dump all of the databases, or to dump
|
||||||
|
only a single named one, by specifying the appropriate options. In the example
|
||||||
|
above, we are dumping all databases.
|
||||||
|
|
||||||
|
The first sub-report in the section is the count of objects by type in each
|
||||||
|
database: tables, views, and so on. The second one shows how many tables use
|
||||||
|
various storage engines in each database. The third sub-report shows the number
|
||||||
|
of each type of indexes in each database.
|
||||||
|
|
||||||
|
The last section shows the number of columns of various data types in each
|
||||||
|
database. For compact display, the column headers are formatted vertically, so
|
||||||
|
you need to read downwards from the top. In this example, the first column is
|
||||||
|
C<char> and the second column is C<timestamp>. This example is truncated so it
|
||||||
|
does not wrap on a terminal.
|
||||||
|
|
||||||
|
All of the numbers in this portion of the output are exact, not fuzzy-rounded.
|
||||||
|
|
||||||
|
# Noteworthy Technologies ####################################
|
||||||
|
Full Text Indexing | Yes
|
||||||
|
Geospatial Types | No
|
||||||
|
Foreign Keys | Yes
|
||||||
|
Partitioning | No
|
||||||
|
InnoDB Compression | Yes
|
||||||
|
SSL | No
|
||||||
|
Explicit LOCK TABLES | No
|
||||||
|
Delayed Insert | No
|
||||||
|
XA Transactions | No
|
||||||
|
NDB Cluster | No
|
||||||
|
Prepared Statements | No
|
||||||
|
Prepared statement count | 0
|
||||||
|
|
||||||
|
This section shows some specific technologies used on this server. Some of them
|
||||||
|
are detected from the schema dump performed for the previous sections; others
|
||||||
|
can be detected by looking at SHOW GLOBAL STATUS.
|
||||||
|
|
||||||
|
# InnoDB #####################################################
|
||||||
|
Version | 1.1.8
|
||||||
|
Buffer Pool Size | 16.0M
|
||||||
|
Buffer Pool Fill | 100%
|
||||||
|
Buffer Pool Dirty | 0%
|
||||||
|
File Per Table | OFF
|
||||||
|
Page Size | 16k
|
||||||
|
Log File Size | 2 * 5.0M = 10.0M
|
||||||
|
Log Buffer Size | 8M
|
||||||
|
Flush Method |
|
||||||
|
Flush Log At Commit | 1
|
||||||
|
XA Support | ON
|
||||||
|
Checksums | ON
|
||||||
|
Doublewrite | ON
|
||||||
|
R/W I/O Threads | 4 4
|
||||||
|
I/O Capacity | 200
|
||||||
|
Thread Concurrency | 0
|
||||||
|
Concurrency Tickets | 500
|
||||||
|
Commit Concurrency | 0
|
||||||
|
Txn Isolation Level | REPEATABLE-READ
|
||||||
|
Adaptive Flushing | ON
|
||||||
|
Adaptive Checkpoint |
|
||||||
|
Checkpoint Age | 0
|
||||||
|
InnoDB Queue | 0 queries inside InnoDB, 0 queries in queue
|
||||||
|
Oldest Transaction | 0 Seconds
|
||||||
|
History List Len | 209
|
||||||
|
Read Views | 1
|
||||||
|
Undo Log Entries | 1 transactions, 1 total undo, 1 max undo
|
||||||
|
Pending I/O Reads | 0 buf pool reads, 0 normal AIO,
|
||||||
|
0 ibuf AIO, 0 preads
|
||||||
|
Pending I/O Writes | 0 buf pool (0 LRU, 0 flush list, 0 page);
|
||||||
|
0 AIO, 0 sync, 0 log IO (0 log, 0 chkp);
|
||||||
|
0 pwrites
|
||||||
|
Pending I/O Flushes | 0 buf pool, 0 log
|
||||||
|
Transaction States | 1xnot started
|
||||||
|
|
||||||
|
This section shows important configuration variables for the InnoDB storage
|
||||||
|
engine. The buffer pool fill percent and dirty percent are fuzzy-rounded. The
|
||||||
|
last few lines are derived from the output of SHOW INNODB STATUS. It is likely
|
||||||
|
that this output will change in the future to become more useful.
|
||||||
|
|
||||||
|
# MyISAM #####################################################
|
||||||
|
Key Cache | 16.0M
|
||||||
|
Pct Used | 10%
|
||||||
|
Unflushed | 0%
|
||||||
|
|
||||||
|
This section shows the size of the MyISAM key cache, followed by the percentage
|
||||||
|
of the cache in use and percentage unflushed (fuzzy-rounded).
|
||||||
|
|
||||||
|
# Security ###################################################
|
||||||
|
Users | 2 users, 0 anon, 0 w/o pw, 0 old pw
|
||||||
|
Old Passwords | OFF
|
||||||
|
|
||||||
|
This section is generated from queries to tables in the mysql system database.
|
||||||
|
It shows how many users exist, and various potential security risks such as
|
||||||
|
old-style passwords and users without passwords.
|
||||||
|
|
||||||
|
# Binary Logging #############################################
|
||||||
|
Binlogs | 1
|
||||||
|
Zero-Sized | 0
|
||||||
|
Total Size | 21.8M
|
||||||
|
binlog_format | STATEMENT
|
||||||
|
expire_logs_days | 0
|
||||||
|
sync_binlog | 0
|
||||||
|
server_id | 12345
|
||||||
|
binlog_do_db |
|
||||||
|
binlog_ignore_db |
|
||||||
|
|
||||||
|
This section shows configuration and status of the binary logs. If there are
|
||||||
|
zero-sized binary logs, then it is possible that the binlog index is out of sync
|
||||||
|
with the binary logs that actually exist on disk.
|
||||||
|
|
||||||
|
# Noteworthy Variables #######################################
|
||||||
|
Auto-Inc Incr/Offset | 1/1
|
||||||
|
default_storage_engine | InnoDB
|
||||||
|
flush_time | 0
|
||||||
|
init_connect |
|
||||||
|
init_file |
|
||||||
|
sql_mode |
|
||||||
|
join_buffer_size | 128k
|
||||||
|
sort_buffer_size | 2M
|
||||||
|
read_buffer_size | 128k
|
||||||
|
read_rnd_buffer_size | 256k
|
||||||
|
bulk_insert_buffer | 0.00
|
||||||
|
max_heap_table_size | 16M
|
||||||
|
tmp_table_size | 16M
|
||||||
|
max_allowed_packet | 1M
|
||||||
|
thread_stack | 192k
|
||||||
|
log | OFF
|
||||||
|
log_error | /tmp/12345/data/mysqld.log
|
||||||
|
log_warnings | 1
|
||||||
|
log_slow_queries | ON
|
||||||
|
log_queries_not_using_indexes | OFF
|
||||||
|
log_slave_updates | ON
|
||||||
|
|
||||||
|
This section shows several noteworthy server configuration variables that might
|
||||||
|
be important to know about when working with this server.
|
||||||
|
|
||||||
|
# Configuration File #########################################
|
||||||
|
Config File | /tmp/12345/my.sandbox.cnf
|
||||||
|
[client]
|
||||||
|
user = msandbox
|
||||||
|
password = msandbox
|
||||||
|
port = 12345
|
||||||
|
socket = /tmp/12345/mysql_sandbox12345.sock
|
||||||
|
[mysqld]
|
||||||
|
port = 12345
|
||||||
|
socket = /tmp/12345/mysql_sandbox12345.sock
|
||||||
|
pid-file = /tmp/12345/data/mysql_sandbox12345.pid
|
||||||
|
basedir = /home/baron/5.5.20
|
||||||
|
datadir = /tmp/12345/data
|
||||||
|
key_buffer_size = 16M
|
||||||
|
innodb_buffer_pool_size = 16M
|
||||||
|
innodb_data_home_dir = /tmp/12345/data
|
||||||
|
innodb_log_group_home_dir = /tmp/12345/data
|
||||||
|
innodb_data_file_path = ibdata1:10M:autoextend
|
||||||
|
innodb_log_file_size = 5M
|
||||||
|
log-bin = mysql-bin
|
||||||
|
relay_log = mysql-relay-bin
|
||||||
|
log_slave_updates
|
||||||
|
server-id = 12345
|
||||||
|
report-host = 127.0.0.1
|
||||||
|
report-port = 12345
|
||||||
|
log-error = mysqld.log
|
||||||
|
innodb_lock_wait_timeout = 3
|
||||||
|
# The End ####################################################
|
||||||
|
|
||||||
|
This section shows a pretty-printed version of the my.cnf file, with comments
|
||||||
|
removed and with whitespace added to align things for easy reading. The tool
|
||||||
|
tries to detect the my.cnf file by looking at the output of ps, and if it does
|
||||||
|
not find the location of the file there, it tries common locations until it
|
||||||
|
finds a file. Note that this file might not actually correspond with the server
|
||||||
|
from which the report was generated. This can happen when the tool isn't run on
|
||||||
|
the same server it's reporting on, or when detecting the location of the
|
||||||
|
configuration file fails.
|
||||||
|
|
||||||
=head1 OPTIONS
|
=head1 OPTIONS
|
||||||
|
|
||||||
All options after -- are passed to C<mysql>.
|
All options after -- are passed to C<mysql>.
|
||||||
@@ -2360,10 +2723,9 @@ Create a report from the files found in this directory.
|
|||||||
|
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
Names of databases to dump through myslqdump. If you want all of them,
|
Names of databases to summarize. If you want all of them, you can use the value
|
||||||
you can use --all-databases; you can also pass in a comma-separated list
|
C<--all-databases>; you can also pass in a comma-separated list of database
|
||||||
of database names. If not provided, the program will ask you
|
names. If not provided, the program will ask you for manual input.
|
||||||
for manual input.
|
|
||||||
|
|
||||||
=item --sleep
|
=item --sleep
|
||||||
|
|
||||||
|
252
bin/pt-summary
252
bin/pt-summary
@@ -1754,34 +1754,11 @@ parse_lsi_megaraid_bbu_status () { local PTFUNCNAME=parse_lsi_megaraid_bbu_statu
|
|||||||
}
|
}
|
||||||
|
|
||||||
format_lvs () { local PTFUNCNAME=format_lvs;
|
format_lvs () { local PTFUNCNAME=format_lvs;
|
||||||
local lvs_file="$1"
|
local file="$1"
|
||||||
local vgs_file="$2"
|
if [ -e "$file" ]; then
|
||||||
local lvs_errors="$3"
|
grep -v "open failed" "$file"
|
||||||
|
|
||||||
if [ -e "$lvs_file" -a -e "$vgs_file" ]; then
|
|
||||||
local header="$(head -n1 "$lvs_file")$(head -n1 "$vgs_file" | sed -e 's/^ *VG//')"
|
|
||||||
|
|
||||||
echo "$header"
|
|
||||||
tail -n+2 "$lvs_file" | while read lvs_line; do
|
|
||||||
local current_vg="$(echo $lvs_line | awk '{print $2}')"
|
|
||||||
while read vgs_line; do
|
|
||||||
local current_vgs_vg="$(echo $vgs_line | awk '{print $1}' )"
|
|
||||||
if [ "$current_vg" = "$current_vgs_vg" ]; then
|
|
||||||
lvs_line="${lvs_line}$(echo $vgs_line | sed -e "s/^ *$current_vg//")"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done < "$vgs_file"
|
|
||||||
echo $lvs_line
|
|
||||||
done
|
|
||||||
else
|
else
|
||||||
if [ -e "$lvs_file" ]; then
|
echo "Unable to collect information";
|
||||||
cat "$lvs_file"
|
|
||||||
elif [ -e "$lvs_errors" ]; then
|
|
||||||
echo "lvs didn't output anything and had the following errors:"
|
|
||||||
cat "$lvs_errors"
|
|
||||||
else
|
|
||||||
echo "Cannot execute 'lvs'";
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2066,7 +2043,9 @@ report_system_summary () { local PTFUNCNAME=report_system_summary;
|
|||||||
done
|
done
|
||||||
|
|
||||||
section "LVM_Volumes"
|
section "LVM_Volumes"
|
||||||
format_lvs "$data_dir/lvs" "$data_dir/vgs" "$data_dir/lvs.stderr"
|
format_lvs "$data_dir/lvs"
|
||||||
|
section "LVM_Volume_Groups"
|
||||||
|
format_lvs "$data_dir/vgs"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
section "RAID_Controller"
|
section "RAID_Controller"
|
||||||
@@ -2180,16 +2159,14 @@ sigtrap() { local PTFUNCNAME=sigtrap;
|
|||||||
|
|
||||||
# Execute the program if it was not included from another file. This makes it
|
# Execute the program if it was not included from another file. This makes it
|
||||||
# possible to include without executing, and thus test.
|
# possible to include without executing, and thus test.
|
||||||
# Execute the program if it was not included from another file.
|
|
||||||
# This makes it possible to include without executing, and thus test.
|
|
||||||
if [ "${0##*/}" = "$TOOL" ] \
|
if [ "${0##*/}" = "$TOOL" ] \
|
||||||
|| [ "${0##*/}" = "bash" -a "$_" = "$0" ]; then
|
|| [ "${0##*/}" = "bash" -a "$_" = "$0" ]; then
|
||||||
|
|
||||||
# Set up temporary dir.
|
# Set up temporary dir.
|
||||||
mk_tmpdir
|
mk_tmpdir
|
||||||
# Parse command line options.
|
# Parse command line options.
|
||||||
parse_options $0 "$@"
|
parse_options "$0" "$@"
|
||||||
usage_or_errors $0
|
usage_or_errors "$0"
|
||||||
po_status=$?
|
po_status=$?
|
||||||
rm_tmpdir
|
rm_tmpdir
|
||||||
|
|
||||||
@@ -2209,7 +2186,7 @@ fi
|
|||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
pt-summary - Summarize system information in a nice way.
|
pt-summary - Summarize system information nicely.
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
@@ -2218,17 +2195,13 @@ Usage: pt-summary
|
|||||||
pt-summary conveniently summarizes the status and configuration of a server.
|
pt-summary conveniently summarizes the status and configuration of a server.
|
||||||
It is not a tuning tool or diagnosis tool. It produces a report that is easy
|
It is not a tuning tool or diagnosis tool. It produces a report that is easy
|
||||||
to diff and can be pasted into emails without losing the formatting. This
|
to diff and can be pasted into emails without losing the formatting. This
|
||||||
tool works well on Linux systems.
|
tool works well on many types of Unix systems.
|
||||||
|
|
||||||
Download and run:
|
Download and run:
|
||||||
|
|
||||||
wget http://percona.com/get/pt-summary
|
wget http://percona.com/get/pt-summary
|
||||||
bash ./pt-summary
|
bash ./pt-summary
|
||||||
|
|
||||||
Download and run in a single step:
|
|
||||||
|
|
||||||
wget -O- http://percona.com/get/summary | bash
|
|
||||||
|
|
||||||
=head1 RISKS
|
=head1 RISKS
|
||||||
|
|
||||||
The following section is included to inform users about the potential risks,
|
The following section is included to inform users about the potential risks,
|
||||||
@@ -2238,8 +2211,7 @@ tools) and those created by bugs.
|
|||||||
|
|
||||||
pt-summary is a read-only tool. It should be very low-risk.
|
pt-summary is a read-only tool. It should be very low-risk.
|
||||||
|
|
||||||
At the time of this release, we know of no bugs that could cause serious harm
|
At the time of this release, we know of no bugs that could harm users.
|
||||||
to users.
|
|
||||||
|
|
||||||
The authoritative source for updated information is always the online issue
|
The authoritative source for updated information is always the online issue
|
||||||
tracking system. Issues that affect this tool will be marked as such. You can
|
tracking system. Issues that affect this tool will be marked as such. You can
|
||||||
@@ -2256,6 +2228,194 @@ then runs Unix commands on these results to format them nicely. It works
|
|||||||
best when executed as a privileged user, but will also work without privileges,
|
best when executed as a privileged user, but will also work without privileges,
|
||||||
although some output might not be possible to generate without root.
|
although some output might not be possible to generate without root.
|
||||||
|
|
||||||
|
=head1 OUTPUT
|
||||||
|
|
||||||
|
Many of the outputs from this tool are deliberately rounded to show their
|
||||||
|
magnitude but not the exact detail. This is called fuzzy-rounding. The idea is
|
||||||
|
that it doesn't matter whether a particular counter is 918 or 921; such a small
|
||||||
|
variation is insignificant, and only makes the output hard to compare to other
|
||||||
|
servers. Fuzzy-rounding rounds in larger increments as the input grows. It
|
||||||
|
begins by rounding to the nearest 5, then the nearest 10, nearest 25, and then
|
||||||
|
repeats by a factor of 10 larger (50, 100, 250), and so on, as the input grows.
|
||||||
|
|
||||||
|
The following is a simple report generated from a CentOS virtual machine,
|
||||||
|
broken into sections with commentary following each section. Some long lines
|
||||||
|
are reformatted for clarity when reading this documentation as a manual page in
|
||||||
|
a terminal.
|
||||||
|
|
||||||
|
# Percona Toolkit System Summary Report ######################
|
||||||
|
Date | 2012-03-30 00:58:07 UTC (local TZ: EDT -0400)
|
||||||
|
Hostname | localhost.localdomain
|
||||||
|
Uptime | 20:58:06 up 1 day, 20 min, 1 user,
|
||||||
|
load average: 0.14, 0.18, 0.18
|
||||||
|
System | innotek GmbH; VirtualBox; v1.2 ()
|
||||||
|
Service Tag | 0
|
||||||
|
Platform | Linux
|
||||||
|
Release | CentOS release 5.5 (Final)
|
||||||
|
Kernel | 2.6.18-194.el5
|
||||||
|
Architecture | CPU = 32-bit, OS = 32-bit
|
||||||
|
Threading | NPTL 2.5
|
||||||
|
Compiler | GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-48).
|
||||||
|
SELinux | Enforcing
|
||||||
|
Virtualized | VirtualBox
|
||||||
|
|
||||||
|
This section shows the current date and time, and a synopsis of the server and
|
||||||
|
operating system.
|
||||||
|
|
||||||
|
# Processor ##################################################
|
||||||
|
Processors | physical = 1, cores = 0, virtual = 1, hyperthreading = no
|
||||||
|
Speeds | 1x2510.626
|
||||||
|
Models | 1xIntel(R) Core(TM) i5-2400S CPU @ 2.50GHz
|
||||||
|
Caches | 1x6144 KB
|
||||||
|
|
||||||
|
This section is derived from F</proc/cpuinfo>.
|
||||||
|
|
||||||
|
# Memory #####################################################
|
||||||
|
Total | 503.2M
|
||||||
|
Free | 29.0M
|
||||||
|
Used | physical = 474.2M, swap allocated = 1.0M,
|
||||||
|
swap used = 16.0k, virtual = 474.3M
|
||||||
|
Buffers | 33.9M
|
||||||
|
Caches | 262.6M
|
||||||
|
Dirty | 396 kB
|
||||||
|
UsedRSS | 201.9M
|
||||||
|
Swappiness | 60
|
||||||
|
DirtyPolicy | 40, 10
|
||||||
|
Locator Size Speed Form Factor Type Type Detail
|
||||||
|
======= ==== ===== =========== ==== ===========
|
||||||
|
|
||||||
|
Information about memory is gathered from C<free>. The Used statistic is the
|
||||||
|
total of the rss sizes displayed by C<ps>. The Dirty statistic for the cached
|
||||||
|
value comes from F</proc/meminfo>. On Linux, the swappiness settings are
|
||||||
|
gathered from C<sysctl>. The final portion of this section is a table of the
|
||||||
|
DIMMs, which comes from C<dmidecode>. In this example there is no output.
|
||||||
|
|
||||||
|
# Mounted Filesystems ########################################
|
||||||
|
Filesystem Size Used Type Opts Mountpoint
|
||||||
|
/dev/mapper/VolGroup00-LogVol00 15G 17% ext3 rw /
|
||||||
|
/dev/sda1 99M 13% ext3 rw /boot
|
||||||
|
tmpfs 252M 0% tmpfs rw /dev/shm
|
||||||
|
|
||||||
|
The mounted filesystem section is a combination of information from C<mount> and
|
||||||
|
C<df>. This section is skipped if you disable L<"--summarize-mounts">.
|
||||||
|
|
||||||
|
# Disk Schedulers And Queue Size #############################
|
||||||
|
dm-0 | UNREADABLE
|
||||||
|
dm-1 | UNREADABLE
|
||||||
|
hdc | [cfq] 128
|
||||||
|
md0 | UNREADABLE
|
||||||
|
sda | [cfq] 128
|
||||||
|
|
||||||
|
The disk scheduler information is extracted from the F</sys> filesystem in
|
||||||
|
Linux.
|
||||||
|
|
||||||
|
# Disk Partioning ############################################
|
||||||
|
Device Type Start End Size
|
||||||
|
============ ==== ========== ========== ==================
|
||||||
|
/dev/sda Disk 17179869184
|
||||||
|
/dev/sda1 Part 1 13 98703360
|
||||||
|
/dev/sda2 Part 14 2088 17059230720
|
||||||
|
|
||||||
|
Information about disk partitioning comes from C<fdisk -l>.
|
||||||
|
|
||||||
|
# Kernel Inode State #########################################
|
||||||
|
dentry-state | 10697 8559 45 0 0 0
|
||||||
|
file-nr | 960 0 50539
|
||||||
|
inode-nr | 14059 8139
|
||||||
|
|
||||||
|
These lines are from the files of the same name in the F</proc/sys/fs>
|
||||||
|
directory on Linux. Read the C<proc> man page to learn about the meaning of
|
||||||
|
these files on your system.
|
||||||
|
|
||||||
|
# LVM Volumes ################################################
|
||||||
|
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
|
||||||
|
LogVol00 VolGroup00 -wi-ao 269.00G
|
||||||
|
LogVol01 VolGroup00 -wi-ao 9.75G
|
||||||
|
|
||||||
|
This section shows the output of C<lvs>.
|
||||||
|
|
||||||
|
# RAID Controller ############################################
|
||||||
|
Controller | No RAID controller detected
|
||||||
|
|
||||||
|
The tool can detect a variety of RAID controllers by examining C<lspci> and
|
||||||
|
C<dmesg> information. If the controller software is installed on the system, in
|
||||||
|
many cases it is able to execute status commands and show a summary of the RAID
|
||||||
|
controller's status and configuration. If your system is not supported, please
|
||||||
|
file a bug report.
|
||||||
|
|
||||||
|
# Network Config #############################################
|
||||||
|
Controller | Intel Corporation 82540EM Gigabit Ethernet Controller
|
||||||
|
FIN Timeout | 60
|
||||||
|
Port Range | 61000
|
||||||
|
|
||||||
|
The network controllers attached to the system are detected from C<lspci>. The
|
||||||
|
TCP/IP protocol configuration parameters are extracted from C<sysctl>. You can skip this section by disabling the L<"--summarize-network"> option.
|
||||||
|
|
||||||
|
# Interface Statistics #######################################
|
||||||
|
interface rx_bytes rx_packets rx_errors tx_bytes tx_packets tx_errors
|
||||||
|
========= ======== ========== ========= ======== ========== =========
|
||||||
|
lo 60000000 12500 0 60000000 12500 0
|
||||||
|
eth0 15000000 80000 0 1500000 10000 0
|
||||||
|
sit0 0 0 0 0 0 0
|
||||||
|
|
||||||
|
Interface statistics are gathered from C<ip -s link> and are fuzzy-rounded. The
|
||||||
|
columns are received and transmitted bytes, packets, and errors. You can skip
|
||||||
|
this section by disabling the L<"--summarize-network"> option.
|
||||||
|
|
||||||
|
# Network Connections ########################################
|
||||||
|
Connections from remote IP addresses
|
||||||
|
127.0.0.1 2
|
||||||
|
Connections to local IP addresses
|
||||||
|
127.0.0.1 2
|
||||||
|
Connections to top 10 local ports
|
||||||
|
38346 1
|
||||||
|
60875 1
|
||||||
|
States of connections
|
||||||
|
ESTABLISHED 5
|
||||||
|
LISTEN 8
|
||||||
|
|
||||||
|
This section shows a summary of network connections, retrieved from C<netstat>
|
||||||
|
and "fuzzy-rounded" to make them easier to compare when the numbers grow large.
|
||||||
|
There are two sub-sections showing how many connections there are per origin
|
||||||
|
and destination IP address, and a sub-section showing the count of ports in
|
||||||
|
use. The section ends with the count of the network connections' states. You
|
||||||
|
can skip this section by disabling the L<"--summarize-network"> option.
|
||||||
|
|
||||||
|
# Top Processes ##############################################
|
||||||
|
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
|
||||||
|
1 root 15 0 2072 628 540 S 0.0 0.1 0:02.55 init
|
||||||
|
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
|
||||||
|
3 root 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/0
|
||||||
|
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
|
||||||
|
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.97 events/0
|
||||||
|
6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
|
||||||
|
7 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
|
||||||
|
10 root 10 -5 0 0 0 S 0.0 0.0 0:00.13 kblockd/0
|
||||||
|
11 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
|
||||||
|
# Notable Processes ##########################################
|
||||||
|
PID OOM COMMAND
|
||||||
|
2028 +0 sshd
|
||||||
|
|
||||||
|
This section shows the first few lines of C<top> so that you can see what
|
||||||
|
processes are actively using CPU time. The notable processes include the SSH
|
||||||
|
daemon and any process whose out-of-memory-killer priority is set to 17. You
|
||||||
|
can skip this section by disabling the L<"--summarize-processes"> option.
|
||||||
|
|
||||||
|
# Simplified and fuzzy rounded vmstat (wait please) ##########
|
||||||
|
procs ---swap-- -----io---- ---system---- --------cpu--------
|
||||||
|
r b si so bi bo ir cs us sy il wa st
|
||||||
|
2 0 0 0 3 15 30 125 0 0 99 0 0
|
||||||
|
0 0 0 0 0 0 1250 800 6 10 84 0 0
|
||||||
|
0 0 0 0 0 0 1000 125 0 0 100 0 0
|
||||||
|
0 0 0 0 0 0 1000 125 0 0 100 0 0
|
||||||
|
0 0 0 0 0 450 1000 125 0 1 88 11 0
|
||||||
|
# The End ####################################################
|
||||||
|
|
||||||
|
This section is a trimmed-down sample of C<vmstat 1 5>, so you can see the
|
||||||
|
general status of the system at present. The values in the table are
|
||||||
|
fuzzy-rounded, except for the CPU columns. You can skip this section by
|
||||||
|
disabling the L<"--summarize-processes"> option.
|
||||||
|
|
||||||
=head1 OPTIONS
|
=head1 OPTIONS
|
||||||
|
|
||||||
=over
|
=over
|
||||||
@@ -2275,37 +2435,37 @@ Print help and exit.
|
|||||||
|
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
Save the data files used to generate the summary in this directory.
|
Save the collected data in this directory.
|
||||||
|
|
||||||
=item --read-samples
|
=item --read-samples
|
||||||
|
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
Create a report from the files found in this directory.
|
Create a report from the files in this directory.
|
||||||
|
|
||||||
=item --summarize-mounts
|
=item --summarize-mounts
|
||||||
|
|
||||||
default: yes; negatable: yes
|
default: yes; negatable: yes
|
||||||
|
|
||||||
Whenever the tool summarizes mounted filesystems and disk fullness.
|
Report on mounted filesystems and disk usage.
|
||||||
|
|
||||||
=item --summarize-network
|
=item --summarize-network
|
||||||
|
|
||||||
default: yes; negatable: yes
|
default: yes; negatable: yes
|
||||||
|
|
||||||
Whenever the tool prints information on network controllers & config.
|
Report on network controllers and configuration.
|
||||||
|
|
||||||
=item --summarize-processes
|
=item --summarize-processes
|
||||||
|
|
||||||
default: yes; negatable: yes
|
default: yes; negatable: yes
|
||||||
|
|
||||||
Whenever the tool summarizes the top processes and vmstat information.
|
Report on top processes and C<vmstat> output.
|
||||||
|
|
||||||
=item --sleep
|
=item --sleep
|
||||||
|
|
||||||
type: int; default: 5
|
type: int; default: 5
|
||||||
|
|
||||||
How much time to sleep when gathering samples from vmstat.
|
How long to sleep when gathering samples from vmstat.
|
||||||
|
|
||||||
=item --version
|
=item --version
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user