製品

Percona

pt-pmp

コマンド

pt-pmp [ オプション ] [ ファイル名 ]

【主なオプション】

  • ・ –binary (-b でも可) : どのバイナリをトレースするか。文字列で入力。デフォルトは mysqldです
  • ・ –pid (-p でも可) : トレースするプロセスのID。整数値を入力します

目的

LINUX上のスタックトレースを表示します

結果

実行すると、以下のように標準出力されます

[root@localhost Et]# pt-pmp
2017年  4月 10日 月曜日 14:13:34 JST     10__io_getevents_0_4(libaio.so.1),os_aio_linux_collect(os0file.cc:4977),os_aio_linux_handle(os0file.cc:4977),fil_aio_wait(fil0fil.cc:5809),io_handler_thread(srv0start.cc:492),start_thread(libpthread.so.0),clone(libc.so.6)
      3pthread_cond_wait,inline_mysql_cond_wait(mysql_thread.h:1162),block_until_new_connection(mysql_thread.h:1162),one_thread_per_connection_end(mysql_thread.h:1162),do_handle_one_connection(sql_connect.cc:989),handle_one_connection(sql_connect.cc:899),pfs_spawn_thread(pfs.cc:1860),start_thread(libpthread.so.0),clone(libc.so.6)
      1sigwait(libpthread.so.0),signal_hand(mysqld.cc:3205),pfs_spawn_thread(pfs.cc:1860),start_thread(libpthread.so.0),clone(libc.so.6)
      1select(libc.so.6),os_thread_sleep(os0thread.cc:287),srv_master_sleep(srv0srv.cc:2303),srv_master_thread(srv0srv.cc:2303),start_thread(libpthread.so.0),clone(libc.so.6)
      1select(libc.so.6),os_thread_sleep(os0thread.cc:287),page_cleaner_sleep_if_needed(buf0flu.cc:2375),buf_flush_page_cleaner_thread(buf0flu.cc:2375),start_thread(libpthread.so.0),clone(libc.so.6)
      1pthread_cond_wait,os_cond_wait(os0sync.cc:214),os_event_wait_low(os0sync.cc:214),srv_purge_coordinator_suspend(srv0srv.cc:2637),srv_purge_coordinator_thread(srv0srv.cc:2637),start_thread(libpthread.so.0),clone(libc.so.6)
      1pthread_cond_wait,os_cond_wait(os0sync.cc:214),os_event_wait_low(os0sync.cc:214),buf_dump_thread(buf0dump.cc:613),start_thread(libpthread.so.0),clone(libc.so.6)
      1pthread_cond_timedwait,os_cond_wait_timed(os0sync.cc:177),os_event_wait_time_low(os0sync.cc:177),srv_monitor_thread(srv0srv.cc:1539),start_thread(libpthread.so.0),clone(libc.so.6)
      1pthread_cond_timedwait,os_cond_wait_timed(os0sync.cc:177),os_event_wait_time_low(os0sync.cc:177),srv_error_monitor_thread(srv0srv.cc:1772),start_thread(libpthread.so.0),clone(libc.so.6)
      1pthread_cond_timedwait,os_cond_wait_timed(os0sync.cc:177),os_event_wait_time_low(os0sync.cc:177),lock_wait_timeout_thread(lock0wait.cc:503),start_thread(libpthread.so.0),clone(libc.so.6)
      1pthread_cond_timedwait,os_cond_wait_timed(os0sync.cc:177),os_event_wait_time_low(os0sync.cc:177),ib_wqueue_timedwait(ut0wqueue.cc:154),fts_optimize_thread(fts0opt.cc:3059),start_thread(libpthread.so.0),clone(libc.so.6)
      1pthread_cond_timedwait,os_cond_wait_timed(os0sync.cc:177),os_event_wait_time_low(os0sync.cc:177),dict_stats_thread(dict0stats_bg.cc:349),start_thread(libpthread.so.0),clone(libc.so.6)
      1poll(libc.so.6),handle_connections_sockets(mysqld.cc:6307),mysqld_main(mysqld.cc:5724),__libc_start_main(libc.so.6),_start

良い点

OSレベルでの障害の原因究明や、プロセスが何故待ち状態となっているのか等を調べるのに有効です