Coder Social home page Coder Social logo

gcam's Introduction

gcam

gcam (GPFS Current Activity Monitor) uses mmpmon, Python 3, and ncurses on Linux to display in a console the current GPFS read and write bytes across all currently active GPFS nodes and all GPFS file systems in a given GPFS cluster.

https://github.com/impredicative/gcam/

Contents

Screenshot

Requirements

  • Linux or similar OS. The code is tested with CentOS 5.7. It has also been tested by users with CentOS 7.
  • GPFS. The code was developed with GPFS version 3.2.1-4. It has also been tested by users with GPFS versions 3.2.1-25, 3.3.0, and 4.2. It is not know whether other versions of GPFS provide compatible mmpmon output. It is possible for the host providing mmpmon output to be different from the host running gcam.
  • Python 3 with curses support. The code was developed with Python 3.2. It has also been tested by users with Python 3.4, 3.5, and 3.6. On CentOS, ensure that ncurses, ncurses-devel, and all other relevant ncurses packages are installed before installing Python.

Usage

The program can be run as gcam without any arguments. Run with the -h argument to display help and available command-line options. If the program fails to start, edit the gcam file. The params.py file in the source zip archive can be edited to change the default values of some options, although this should typically not be necessary.

sudo

If the program needs to be run by a non-root user foousr, use visudo to consider add a line such as:

foousr   ALL=NOPASSWD:   ~/gcam/gcam

This should allow the user to use sudo to run the program. For further ease of use, an alias gcam pointing to sudo gcam can be added for this user to prevent from having to explicitly use sudo.

Implementation

The program uses the fs_io_s command sent to the mmpmon program to obtain read and write bytes counters. It then calculates deltas over successive counters—these deltas are formatted and displayed on the screen.

The code is not nearly as efficient as it can be. Additionally, it has some quadratic operations which may make it scale poorly. A significant rewrite, potentially leveraging Pandas, is warranted to address these and other issues.

mmpmon does not indicate when the current batch of counters has ended. The program currently learns of this by waiting until the next batch has begun. This delays the display by up to one iteration. The program can possibly be updated to use a more sophisticated approach to predict when the current batch has ended—this would reduce the display delay.

If necessary, the refresh interval parameter value can be increased by the user to proportionately spread out the program's CPU usage over time. For large installations, this can ensure that the program's CPU usage does not persistently approach 100% for the specific CPU core that is in use.

At the current time, the program does not allow logging data for archival or analytic purposes, although it does allow diagnostic logging for debugging purposes.

License

See license. For the prettytable module, see src/prettytable.py.

gcam's People

Contributors

impredicative avatar jstaf avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.