Search code examples
salt-project

salt-stack highstate - find slow states


Running an initial install takes about 20 minutes, running a salt-call state.highstate takes about 6 minutes. That's not unreasonable, but I'd like to speed it up, but I'm not sure how to find the slowest states.

Is there any way to find how long each state takes to run other than watching my screen with a stopwatch for 6 minutes?


Solution

  • sudo salt-call state.highstate provides start-time and duration for each state.

    ----------
              ID: ntp-removed
        Function: pkg.removed
          Result: True
         Comment: None of the targeted packages are installed
         Started: 12:45:04.430901
        Duration: 0.955 ms
         Changes:   
    

    You can capture this for processing:

    salt-call state.highstate test=True --out json | tee output.json
    python -c 'import json; j=json.load(open("output.json"))["local"];\
               print [x["name"] for x in j.values() if x["duration"] > 1000];'
    
    [u'munin-node']