| #!/bin/bash |
| # |
| # lib/dstat |
| # Functions to start and stop dstat |
| |
| # Dependencies: |
| # |
| # - ``functions`` file |
| |
| # ``stack.sh`` calls the entry points in this order: |
| # |
| # - install_dstat |
| # - start_dstat |
| # - stop_dstat |
| |
| # Save trace setting |
| _XTRACE_DSTAT=$(set +o | grep xtrace) |
| set +o xtrace |
| |
| # install_dstat() - Install prerequisites for dstat services |
| function install_dstat { |
| if is_service_enabled memory_tracker; then |
| # Install python libraries required by tools/mlock_report.py |
| pip_install_gr psutil |
| fi |
| } |
| |
| # start_dstat() - Start running processes |
| function start_dstat { |
| # A better kind of sysstat, with the top process per time slice |
| run_process dstat "$TOP_DIR/tools/dstat.sh $LOGDIR" |
| |
| # To enable memory_tracker add: |
| # enable_service memory_tracker |
| # to your localrc |
| run_process memory_tracker "$TOP_DIR/tools/memory_tracker.sh" "" "root" |
| |
| # TODO(jh): Fail when using the old service name otherwise consumers might |
| # never notice that is has been removed. |
| if is_service_enabled peakmem_tracker; then |
| die $LINENO "The peakmem_tracker service has been removed, use memory_tracker instead" |
| fi |
| |
| # To enable file_tracker add: |
| # enable_service file_tracker |
| # to your localrc |
| run_process file_tracker "$TOP_DIR/tools/file_tracker.sh" |
| } |
| |
| # stop_dstat() stop dstat process |
| function stop_dstat { |
| stop_process dstat |
| stop_process memory_tracker |
| stop_process file_tracker |
| } |
| |
| # Restore xtrace |
| $_XTRACE_DSTAT |