Percona MySQL Monitoring Template for Cacti

This page gives installation instructions specific to the MySQL graph templates, shows examples of graphs in the MySQL template collection, and shows what they do. You might want to look at to learn the meaning of the status variables contained in the graphs.

Installation Notes

The MySQL templates work by executing a PHP script that gathers information from MySQL servers and returns it to Cacti. The script makes an ordinary MySQL connection to gather its input.

It is highly recommended that you use the same MySQL username and password for all servers you want to graph, to ease the installation and configuration. If you don’t, you will need to customize your templates to accommodate your installation. See below for detailed information on the privileges.

The script requires that you be able to connect to MySQL from your Cacti server. You can test this with the mysql command-line program. Debugging MySQL connection problems is beyond the scope of this documentation; refer to the MySQL manual if you have trouble.

To install,

  • Create a MySQL user with the SUPER and PROCESS privileges on each server you want to monitor. Assuming you use “cacti” and “s3cret” as your username and password, execute the following command on each server: GRANT SUPER, PROCESS ON *.* TO 'cacti'@'%' IDENTIFIED BY "s3cret";
  • If you want to monitor replication with pt-heartbeat from Percona Toolkit (recommended), you must grant SELECT on the heartbeat table also. Assuming the pt-heartbeat table is percona.heartbeat, execute GRANT SELECT ON maatkit.heartbeat TO 'cacti'@'%';
  • Copy ss_get_mysql_stats.php into your Cacti installation’s scripts/ directory.
  • All other steps are the same as mentioned in in installation document.

If you want to specify a different MySQL port for various servers, see the instructions on how to accept input in each data source.

User Privileges

The suggested user privileges mentioned above are sufficient for the common case. In some cases you might not want or have such access. The following list explains the queries that the data-gathering script executes, the functionality, and how to disable if it’s unwanted:

This query requires no special privileges and is necessary for core functionality.
This query requires no special privileges and is necessary for core functionality.
This query requires either SUPER or REPLICATION CLIENT. It is necessary for tracking replication lag on replication slaves, which is enabled by default. To disable, edit the $chk_options array in the configuration. Alternatively, use pt-heartbeat and grant SELECT on the heartbeat table. If disabled, parts of the the MySQL Replication Status and MySQL Binary/Relay logs graphs will be empty.
This query is used to count up the size of binary logs. It requires the SUPER privilege. If disabled in the $chk_options array, then part of the MySQL Binary/Relay logs graph will be empty.
This query requires the PROCESS privilege to generate the MySQL Processlist graph. You can disable this query by editing the $chk_options array in the configuration.
This query requires the SUPER privilege in MySQL 5.1.23 and older versions. It is required for all of the InnoDB graphs. You can disable this query by editing the $chk_options array in the configuration. In MySQL 5.1.24 and greater, the required privilege is PROCESS, not SUPER.

If you disable significant portions of the functionality, such as the InnoDB graphs, then you might want to edit the Host Template to remove unwanted graphs.

Sample Graphs

The following sample graphs demonstrate how the data is presented.


The InnoDB Adaptive Hash Index graph shows the hash index’s cells total and cells used. There isn’t really anything actionable about this graph: the adaptive hash index isn’t designed to be user-tunable, although you can disable it. However, should something go wrong with performance, this graph might provide diagnostic information.


The InnoDB Buffer Pool graph shows the current status of the InnoDB buffer pool: the size, free pages, used (database) pages, and dirty (modified) pages. If too much of the buffer pool fills with dirty pages and InnoDB starts to flush aggressively to reduce that number, you could see cyclical behavior. This might be correlated with intense disk activity and/or periods of reduced throughput. Recent versions of the InnoDB plugin, Percona Server, and Percona XtraDB have various solutions for this problem, should you experience it.

The example graph shows what happens when InnoDB restarts: the buffer pool empties and then fills again. You can see the corresponding activity in the InnoDB Checkpoint Age graph example later in this document.


The InnoDB Buffer Pool Activity graph shows activity inside the buffer pool: pages created, read, and written. You can consider it roughly equivalent to the Handler graphs. If you see a sudden change in the graph, you should try to trace it to some change in your application.


The InnoDB Checkpoint Age graph shows the InnoDB checkpoint age, which is the same thing as the number of uncheckpointed bytes, and thus the amount of log that will need to be scanned to perform recovery if there’s a crash. If the uncheckpointed bytes begin to approach the combined size of the InnoDB log files, your system might need larger log files. In addition, a lot of un-checkpointed data might indicate that you’ll have a long and painful recovery if there’s a crash. If you are writing a tremendous amount of data to the log files, and thus need large log files for performance, you might consider the enhancements in Percona Server.

The example is from the same server and time period as the InnoDB Buffer Pool graph.


The InnoDB Current Lock Waits graph shows the total number of seconds that InnoDB transactions have been waiting for locks. This is related to the InnoDB Locked Transactions graph above, except that it’s the sum of the lock wait time. You might have only one transaction in LOCK WAIT status, but it might be waiting a very long time ifinnodb_lock_wait_timeout is set to a large value. So if you see a large value on this graph, you should investigate for LOCK WAIT transactions, just as described above.


The InnoDB Insert Buffer graph shows information about InnoDB’s insert buffer: inserts, merge operations, and merged records. This is not generally actionable, because the insert buffer is not user-configurable in standard MySQL. However, you can use it to diagnose certain kinds of performance problems, such as furious disk activity after you stop the server from processing queries, or during particular types of queries that force the insert buffer to be merged into the indexes. (The insert buffer is sort of a delayed way of updating non-unique secondary indexes.) If the insert buffer is causing problems, then Percona Server might help, because it has some configuration parameters for the buffer.


The InnoDB Insert Buffer Usage graph shows the total cells in the insert buffer, and the used and free cells. This is diagnostic only, as in the previous graph. You can use it to see the buffer usage, and thus correlate with server activity that might be hard to explain otherwise.


The InnoDB Internal Hash Memory Usage graph shows how much memory InnoDB uses for various internal hash structures: the adaptive hash index, page hash, dictionary cache, filesystem, locks, recovery system, and thread hash. This is available only in Percona Server, and these structures are generally not configurable. However, you might use it to diagnose some kinds of performance problems, such as much greater than expected memory usage. In standard InnoDB, the internal data dictionary tends to consume large amounts of memory when you have many tables, for example. Percona Server lets you control that with some features that are similar to MySQL’s table cache.


The InnoDB I/O Activity graph shows InnoDB’s I/O activity: file reads and writes, log writes, and fsync() calls. This might help diagnose the source of I/O activity on the system. Some of this can be influenced with InnoDB settings, especiallyinnodb_flush_log_at_trx_commit.


The InnoDB I/O Pending graph shows InnoDB’s pending synchronous and asynchronous I/O operations in various parts of the engine. Pending I/O is not ideal; ideally you’d like InnoDB’s background thread(s) to keep up with writes, and you’d like the buffer pool large enough that reads are not an issue. If you see a lot of pending I/O, you might need more RAM, a bigger buffer pool (or use O_DIRECT to avoid double-buffering), or a faster disk subsystem.


The InnoDB Lock Structures graph shows how many lock structures InnoDB has internally. This should correlate roughly to the number of row locks transactions are currently holding, and might be useful to help diagnose increased lock contention. There is no hard rule about what’s a good or bad number of locks, but in case many transactions are waiting for locks, obviously fewer is better.

The data comes from lines in SHOW INNODB STATUS such as the following:

# 23 lock struct(s), heap size 3024, undo log entries 27
# LOCK WAIT 12 lock struct(s), heap size 3024, undo log entries 5
# LOCK WAIT 2 lock struct(s), heap size 368

It is the sum of all of the N lock struct(s) values.


The InnoDB Log Activity graph shows InnoDB log activity: the log buffer size, bytes written, flushed, and unflushed. If transactions need to write to the log buffer and it’s either not big enough or is currently being flushed, they’ll stall.


The InnoDB Memory Allocation graph shows InnoDB’s total memory allocation, and how much of that is in the additional pool (as opposed to the buffer pool). If a lot of memory is in the additional memory pool, you might suspect problems with the internal data dictionary cache; see above for more on this. Unfortunately, in standard InnoDB it’s a bit hard to know where the memory really goes.


The InnoDB Row Lock Time graph shows the amount of time, in milliseconds, that InnoDB has waited to grant row locks. This comes from the Innodb_row_lock_time status variable.


The InnoDB Row Lock Waits graph shows the number of times that InnoDB has waited to grant row locks. This comes from the Innodb_row_lock_waits status variable.


The InnoDB Row Operations graph shows row operations InnoDB has performed: reads, deletes, inserts, and updates. These should be roughly equivalent to Handler statistics, with the exception that they can show internal operations not reflected in the Handler statistics. These might include foreign key operations, for example.


The InnoDB Semaphores graph shows information on InnoDB semaphore activity: the number of spin rounds, spin waits, and OS waits. You might see these graphs spike during times of high concurrency or contention. These graphs basically indicate different types of activity involved in obtaining row locks or mutexes, which are causes of poor scaling in some cases.


The InnoDB Tables In Use graph shows how many tables InnoDB has in use and how many are locked. If there are spikes in these graphs, you’ll probably also see spikes in LOCK WAIT and other signs of contention amongst queries.


The InnoDB Transactions graph shows information about transactions within InnoDB.

  • Total transactions ever created is the internal transaction counter.
  • The length of the history list shows how old the oldest unpurged transaction is. If this grows large, you might have transactions that are staying open a very long time. This means InnoDB can’t purge old row versions. It will get bloated and slow as a result. Commit your transactions as quickly as you can.

The example graph is slightly outdated; a newer version of the templates has moved some of the items to the Active/Locked graph instead.


InnoDB Active/Locked Transactions

This template shows InnoDB transaction counts:

  • An active transaction is a transaction that’s currently open. It’s possible for transactions to be in “not started” status, which really means that this connection to MySQL doesn’t actually have a transaction open. A transaction is active between BEGIN and COMMIT. It’s also active whilst a query is running, although it might commit immediately due to auto-commit, if applicable. This graph really just shows how much transactional activity is happening on the database.
  • A locked transaction is in LOCK WAIT status. This usually means it’s waiting for a row lock, but in some cases could be a table lock or an auto-increment lock. If you start to see lock waits, you need to check SHOW INNODB STATUS and search for the string “LOCK WAIT” to examine what’s waiting. Lock waits can come from several sources, including too much contention on busy tables, queries accessing data through scans on different indexes, or bad query patterns such as SELECT .. FOR UPDATE.
  • The current transactions are all transactions, no matter what status (ACTIVE, LOCK WAIT, not started, etc).
  • The number of read views open shows how many transactions have a consistent snapshot of the database’s contents, which is achieved by MVCC.

The example image is slightly outdated; some of the items just mentioned don’t appear on this image, but are on the InnoDB Transactions graph instead.


The MyISAM Indexes graph shows information about how many logical and physical reads and writes took place to MyISAM indexes. Probably the most important one is the physical reads. The ratio between logical and physical reads is not very useful to monitor. Instead, you should look at the absolute number of physical reads per second, and compare it to what your disks are capable of. (RRDTool normalizes everything to units of seconds, so this graph’s absolute value is the number you need.)


The MyISAM Key Cache graph shows the size of the key buffer, how much of it is used, and how much is unflushed. Memory that isn’t used might not really be allocated; the key buffer isn’t allocated to its full size.


The MySQL Binary/Relay logs graph shows information about the space used by the server binary and relay logs. The variations in the sizes are when the logs are purged, probably due toexpire_logs_days being set. If this suddenly grows large, look for problems in purging, which might be caused by a configuration change, or by someone manually deleting a file and causing the automatic purge to stop working.


The MySQL Command Counters graph shows counters for various MySQL commands. These are derived from the Com_ counters from SHOW STATUS. If there is a change in the graph, it indicates that something changed in the application.


The MySQL Connections graph shows information about the connection parameters and counters inside MySQL: connections permitted, connections used, connections aborted, clients aborted, current connections, and connections created. Probably the most interesting are the aborted clients and connections, which might indicate a malfunctioning application that disconnects ungracefully, an idle connection timing out, network problems, bad authentication attempts, or similar.


The MySQL Files and Tables graph shows status of MySQL’s table cache and file handles: the size of the cache, and how many open files and tables there are. This graph is not likely to contain much information in the normal course of events.


The MySQL Handlers graph shows the various Handler counters, which record how many operations MySQL has done through the storage engine API. Changes in indexing will probably show up clearly here: a query that used to do a table scan but now has a good index to use will cause different Handler calls to be used, for example. If you see sudden changes, it probably correlates with schema changes or a different mixture of queries. The example graph shows a large spike ofHandler_read_rnd_next, which probably means something was doing a lot of table scans.

Here is another graph, generated from an active production server.


The MySQL Network Traffic graph shows network traffic to and from the MySQL Server, in bytes.


MySQL Processlist

The MySQL Processlist shows the number (count) of queries from SHOW PROCESSLIST in given statuses. Some of the statuses are lumped together into the “other”category. This is a “scoreboard” type of graph. In most cases, you should see mostly Other, or a few of the statuses like “Sending data”. Queries in Locked status are the hallmark of a lot of MyISAM table locking. Any mixture of statuses is possible, and you should investigate sudden and systemic changes.


The MySQL Query Cache graph shows information about the query cache inside MySQL: the number of queries in the cache, inserted, queries not cached, queries pruned due to low memory, and cache hits.


The MySQL Query Cache Memory graph shows information on the query cache’s memory usage: total size, free memory, total blocks and free blocks. Blocks are not of a uniform size, despite the name.


The MySQL Query Response Time (Microseconds) graph displays a histogram of the query response time distribution available in Percona Server. Because the time units are user-configurable, exact unit labels are not displayed; rather, the graph simply shows the values. There are 14 time units by default in Percona Server, so there are 13 entries on the graph (the 14th is non-numeric, so we omit it).

The graph actually displays the amount of response time spent by the server on queries of various lengths. See the Percona documentation for more. The units are in microseconds on the graph, because RRDtool cannot store floating-point values.


The MySQL Query Time Histogram (Count) graph displays a histogram of the query response time distribution available in Percona Server. Because the time units are user-configurable, exact unit labels are not displayed; rather, the graph simply shows the values. There are 14 time units by default in Percona Server, so there are 13 entries on the graph (the 14th is non-numeric, so we omit it).

The graph displays the number of queries that fell into each time division. See the Percona documentation for more.


The MySQL Replication Status graph displays the status of the replication thread. There are two ways to measure the replication delay:

  • By looking at SHOW SLAVE STATUS’s Seconds_behind_master column, which is shown as Secs Behind Master
  • By looking at a heartbeat table such as those supported by the pt-heartbeat tool in Percona Toolkit. You must configure the ss_get_mysql_stats.php file to do this.

When replication is running, there is an AREA of the same size as the replication delay, colored green. When it’s stopped, there’s an AREA of the same size as the replication delay, colored red. What this means is that you’ll see a graph of replication delay, colored in with the appropriate color (green or red) to indicate whether replication was stopped at that moment. If replication isn’t delayed, you won’t see any green or red. If you’re using Seconds_behind_master instead of pt-heartbeat to measure delay, it’s impossible to measure delay when the slave is stopped, so you won’t see any red. This is one of the reasons Seconds_behind_master from SHOW SLAVE STATUS is not as useful as pt-heartbeat.

The graph also shows open temporary tables and retried transactions.


The MySQL Select Types graph shows information on how many of each type of select the MySQL server has performed: full join, full range join, range, range check, and scan. Like the Handler graphs, these show different types of execution plans, so any changes should be investigated. You should strive to have zero Select_full_join queries! The graph shows some of those.


The MySQL Sorts graph shows information about MySQL sort operations: rows sorted, merge passes, and number of sorts triggered by range and scan queries. It is easy to over-analyze this data. It is not useful as a way to determine whether the server configuration needs to be changed.


The MySQL Table Locks graph shows information about table-level lock operations inside MySQL: locks waited, locks granted without waiting, and slow queries. Locks that have to wait are generally caused by MyISAM tables. Even InnoDB tables will cause locks to be acquired, but they will generally be released right away and no waiting will occur.


The MySQL Temporary Objects graph shows information about temporary objects created by the MySQL server: temporary tables, temporary files, and temporary tables created on disk instead of in memory. Like sort data, this is easy to over-analyze. The most serious one is the temp tables created on disk. Dealing with these is complex, but is covered well in the book High Performance MySQL.


The MySQL Transaction Handler graph shows the transactional operations that took place at the MySQL server level.

2012/08/22 13:40 2012/08/22 13:40
from.Ugg Boots Scontati  2015/11/10 02:03
nike outlet kissimmee
from.birkenstock online  2015/11/10 18:43
birkenstock best price
from.Shop Online Ugg  2015/11/10 20:57
nike free run 3.0 online
from.Mocassini Ugg  2015/11/10 20:57
nike air max cheap china
from.Ugg Originali Online  2015/11/12 20:38
shop nike clothing online
from.Ugg Online Scontati  2015/11/13 23:13
online shopping nike
from.Ugg Boots Outlet Online  2015/11/15 23:01
nike free run womens black
from.Zoccoli Ugg  2015/11/15 23:15
create shoes nike
from.Ugg Online Outlet  2015/11/16 10:49
cheap nike shoes nz
from.Ugg Classic Short  2015/11/16 11:12
running nike air max
from.Ugg Boots Italia Online  2015/11/18 11:29
nike womens free run 4.0
from.Ugg Vendita On Line  2015/11/18 18:26
nike outlet oceanside
from.Ugg Boots Italia Online  2015/11/21 05:29
mcm women bag
from.Pulizia Ugg  2015/11/21 09:10
mcm handbags for sale
from.Ugg Sito Ufficiale Outlet  2015/11/21 11:19
nike air max shoes women
from.Ugg Ciabatte  2015/11/21 11:26
nike mary jane shoes
from.Ugg Prezzi Scontati  2015/11/23 16:41
create own nike
from.Ugg Con Bottone  2015/11/24 01:24
black mcm bag
from.Ugg Wikipedia  2015/11/26 02:21
nike nike free run 3
from.Ugg 60 Euro  2015/11/26 15:36
mcm stark backpack medium
from.Mcm Boston  2016/02/04 19:03
nike factory outlet portland
from.Mcm Bags For Cheap  2016/02/05 07:13
nike shoes women cheap
from.Mcm Bags Online  2016/02/05 10:41
nike 2011
from.Vintage Mcm Purse  2016/02/05 13:08
nike shoes 3.0
from.Ebay Ugg  2016/02/05 21:27
nike air trainer max 94
from.Ugg Napoli  2016/02/05 22:01
nike air max turbulence
from.Mcm Belts  2016/02/06 01:30
mcm purses on sale
from.Mcm Store  2016/02/06 06:44
cheap nike free runs
from.White Mcm Bag  2016/02/06 07:02
nike shoes cheap prices online
from.Replica Mcm Bags  2016/02/06 13:35
cheap mcm handbags
from.Mcm Wallet Sale  2016/02/07 02:48
where can i buy mcm backpack
from.Mcm Brown Backpack  2016/02/07 03:21
nike free running shoes 5.0
from.Mcm Outlet Usa  2016/02/07 08:50
where can i order nike shoes online
from.Cheap Mcm Bag  2016/02/07 15:02
nike air max all
from.Buy Mcm Online  2016/02/07 23:13
nike shoes discount online
from.Small Mcm Backpack  2016/02/08 08:43
nike free 4.0 v2
from.Mcm Cheap Bags  2016/02/08 17:54
make your own nike shoes
from.Mcm Bag White  2016/02/08 18:12
custom nike free shoes
from.Ugg Estivi  2016/02/08 18:15
mcm london 2014 dates
from.Mcm Usa  2016/02/08 20:26
discount mens nike air max
from.Mcm Electronic  2016/02/09 03:58
best site to buy cheap nike air max
from.Authentic Mcm Handbags  2016/02/09 13:59
from.Mcm Designer  2016/02/09 20:22
nike outlet williamsburg iowa
from.Stivali Ugg Scontati Online  2016/02/10 07:40
2014 mens nike air max
from.Mcm Handbags Online Shopping  2016/02/10 09:36
mcm for cheap
from.Mcm Backpack Medium  2016/02/10 19:25
cheap nike shoes canada
from.Mcm Electonics  2016/02/11 02:15
nike factory
from.Mcm Limited Edition Backpack  2016/02/11 08:05
where to buy mcm online
from.Mcm Bag 2014  2016/02/11 20:09
nike customized id
from.Mcm Shoes  2016/02/12 08:26
cheap free nike
from.Ugg Australia Online Shop  2016/02/12 11:00
mcm worldwide online shop
from.Mcm Electronics Promo  2016/02/12 11:06
nike air max store
from.Ugg Wikipedia  2016/02/12 12:30
nike free run 3.0 womens
from.Cheap Mcm  2016/02/12 20:32
nike air max shoes for cheap
from.Mcm Online Shopping  2016/02/13 02:38
nike women run
from.Mcm Promo Code  2016/02/13 06:46
pink nike air max
from.Mcm Buy Online  2016/02/13 08:39
womens nike free run 1
from.Mcm Worldwide  2016/02/13 14:44
nike outlet store atlantic city
from.Ugg Boots Online  2016/02/13 15:58
discount nike free run 3
from.Mcm Backpacks  2016/02/14 12:06
nike air max womens running shoe
from.Sconti Ugg  2016/02/14 14:24
discount nike shoes for women
from.Mcm Footwear  2016/02/14 14:41
nike free 5.0 v2
from.Ugg Mini Ebay  2016/02/14 17:20
nike free hot pink
from.Mcm Uk Online  2016/02/14 20:49
new nike free run 2014
from.Mcm Black Bag  2016/02/15 08:59
nike creator
from.Ugg Sconti  2016/02/16 02:09
nike air max white men
from.Ugg A Milano  2016/02/16 18:26
nike outlet discounts
from.Negozi Ugg A Milano  2016/02/16 22:48
cheap nike air max 90 s
from.Ugg Australia Prezzi  2016/02/18 13:30
nike free 3.0 v5
from.Ugg Originali  2016/02/19 01:18
shoes nike outlet
from.Ugg On Line Shop  2016/02/19 04:52
nike air max neon
from.Mcm Belt  2016/02/19 22:30
nike air max id
from.Ugg Stivali  2016/02/21 01:41
nike id design
from.Ugg Bambini Milano  2016/02/21 09:44
nike running shoes
from.Ugg On Line  2016/02/23 12:10
nike free run outlet online
from.Taglie Ugg  2016/02/25 18:38
cheap nike air max womens uk
from.Mcm Online Store Korea  2016/02/25 20:31
free nike shoes
from.Mcm Munchen  2016/02/26 00:17
running shoes nike free run
from.Mcm Electronics Coupon Code  2016/02/26 20:07
nike outlet store usa
from.Outlet Ugg Italia  2016/02/27 20:57
nike store outlet
from.Wholesale Discount Oakley Sunglasses  2016/02/28 00:54
nike shoes order
from.Oakley Outlet Sunglasses  2016/03/01 03:01
mcm bags
from.Ray Ban Try On  2016/03/01 09:11
nike free run 4 v3
from.Oakley Sunglass Sale  2016/03/02 23:41
mcm handbags online shopping
from.$18 Cheap Oakley Sunglasses On Ebay  2016/03/03 00:07
alpine nike outlet
from.Frogskin Oakley Sunglasses  2016/03/03 00:32
mcm comic con birmingham 2014
from.Oakley Sunglasses For Cheap  2016/03/03 01:20
nike air max 2014 shoes
from.Oakley Fuel Cell  2016/03/03 02:06
mcm footwear
from.Oakley Sale 2013  2016/03/03 02:32
nike air max 90 cheap
from.Oakley Store Australia  2016/03/03 03:24
blue womens nike free run
from.Oakley Sunglasses Clearance Sale  2016/03/03 03:50
nike free run 3 kids
from.Discount Oakley Sunglasses For Women  2016/03/03 04:15
company mcm
from.Oakley Sunglasses Wholesale  2016/03/03 04:39
cheap nike free shoes online
from.Oakley Sunglasses Review  2016/03/03 06:59
nike free run womens tiffany blue
from.Cheap Oakley Sunglasses For Sale  2016/03/03 07:24
nike free run 3 blue
from.Cheap Oakley Juliet  2016/03/03 09:02
cheap nike air trainers
from.Polarized Oakley Sunglasses  2016/03/03 10:13
nike air max shopping
from.Oakley Sunglasses M Frame  2016/03/03 11:49
mcm purses for cheap
from.Cheap Oakley Sunglasses For Men  2016/03/03 13:05
nike basketball id
from.Oakley Deals  2016/03/03 14:01
nike nike free run
from.Oakley Restless Sunglasses  2016/03/03 14:28
nike air max 80
from.Discount Oakley Sunglasses Outlet  2016/03/03 17:07
training shoes nike
from.Oakley Sunglasses Accessories  2016/03/03 18:02
shoe nike store
from.Clear Oakley Sunglasses  2016/03/03 19:44
nike air max cb 94
from.Oakley Sunglasses For Cheap  2016/03/03 21:27
nike clearance
from.About Oakley Sunglasses  2016/03/04 03:14
nike men
from.Oakley Breathless Sunglasses  2016/03/04 03:39
nike apparel sale
from.Cheap Oakley Sunglasses Wholesale China  2016/03/04 06:39
women nike free run 3.0
from.Oakley Kids  2016/03/04 09:39
womens nike free run 3 v4
from.Discount Oakley Sunglasses Online  2016/03/04 12:34
nike outlet grapevine mills
from.Buy Cheap Oakley Sunglasses Sale  2016/03/04 16:24
nike air max latest
from.Cheap Fake Oakley Sunglasses Outlet  2016/03/04 20:26
nike flyknit online
from.Oakley Sunglasses Discount Sale  2016/03/04 20:48
womens nike air max 2010
from.Oakley Sunglasses Outlet Usa  2016/03/05 03:29
nike run 3
from.Oakley Vault Youth  2016/03/05 03:37
nike shox turbo 9
from.Oakley Probation Polarized  2016/03/05 09:33
nike free 5.0 v3
from.Oakley Outlet Us  2016/03/05 10:02 Oakley Boots
from.Oakley Discount Sale  2016/03/07 07:22
nike air max for cheap
from.Oakley Custom  2016/03/07 07:33
mcm bag white
from.Oakley.Com  2016/03/07 15:18
nike sneakers free run
from.Oakley Outlet Eu  2016/03/10 07:14 Outlet In California
from.patineta electrica scooter  2016/03/13 10:20
As soon as My family and i witnessed these individuals entirely on Oprah Even i did to produce them! I snapped up isn't even close to and therefore began one or two internet resources to consider these people even so they wouldn't lug them. That i to...
from.Cheap Real Oakley Sunglasses  2016/03/13 10:46
mcm parts
from.Cheap Oakley Jackets  2016/03/13 23:24
nike free 5.0 nike
from.air max  2016/03/16 01:28
::: ZOSEL ::: :: Percona MySQL Monitoring Template for Cacti,air max
from.Bijuterii Argint  2016/08/21 19:58
::: ZOSEL ::: :: Percona MySQL Monitoring Template for Cacti
ZOSEL:Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
Too much is as bad as too little...!! 자공(子貢)이 공자에게 "사(師:子張의 이름)와 상(商:子夏의 이름)은 어느 쪽이 어집니까?" 하고 묻자, 공자는 "사는 지나치고 상은 미치지 못한다"고 대답하였다. "그럼 사가 낫단 말씀입니까?" 하고 반문하자, 공자는 "지나친 것은 미치지 못한 것과 같다(過猶不及)"고 말하였다.
전체 (209)
리눅스시스템 (92)
윈도우시스템 (16)
프로그램 (7)
네트워크시스템 (7)
최근관심 (1)
«   2024/05   »
      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  
  1.  2021
  2. 강남역 풀싸롱  2021
    강남역 풀싸롱
  3.   2021
  1. 2018/02 (1)
  2. 2017/03 (2)
  3. 2016/12 (2)