How to record boot time?

Multi tool use
Multi tool use

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;







up vote
0
down vote

favorite












I want to monitor boot time (the time needed by the system to boot) compared to software version installed (kernel and other software) day by day in order to have a look at boot performance for my arch-linux computer.



I use the systemd command systemd-analyze time to get the boot time.



My idea is to have a log with:



[day]
.......Boot time [s]: 2.145 (kernel) + 13.675 (userspace)
.......with kernel version 4.11.2
.......gnome-shell version 3.24.1
[day+1]
.......Boot time [s]: 3.145 (kernel) + 21.665 (userspace)
.......with kernel version 4.17.11
.......gnome-shell version 3.28.3


How can I do?







share|improve this question



























    up vote
    0
    down vote

    favorite












    I want to monitor boot time (the time needed by the system to boot) compared to software version installed (kernel and other software) day by day in order to have a look at boot performance for my arch-linux computer.



    I use the systemd command systemd-analyze time to get the boot time.



    My idea is to have a log with:



    [day]
    .......Boot time [s]: 2.145 (kernel) + 13.675 (userspace)
    .......with kernel version 4.11.2
    .......gnome-shell version 3.24.1
    [day+1]
    .......Boot time [s]: 3.145 (kernel) + 21.665 (userspace)
    .......with kernel version 4.17.11
    .......gnome-shell version 3.28.3


    How can I do?







    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I want to monitor boot time (the time needed by the system to boot) compared to software version installed (kernel and other software) day by day in order to have a look at boot performance for my arch-linux computer.



      I use the systemd command systemd-analyze time to get the boot time.



      My idea is to have a log with:



      [day]
      .......Boot time [s]: 2.145 (kernel) + 13.675 (userspace)
      .......with kernel version 4.11.2
      .......gnome-shell version 3.24.1
      [day+1]
      .......Boot time [s]: 3.145 (kernel) + 21.665 (userspace)
      .......with kernel version 4.17.11
      .......gnome-shell version 3.28.3


      How can I do?







      share|improve this question













      I want to monitor boot time (the time needed by the system to boot) compared to software version installed (kernel and other software) day by day in order to have a look at boot performance for my arch-linux computer.



      I use the systemd command systemd-analyze time to get the boot time.



      My idea is to have a log with:



      [day]
      .......Boot time [s]: 2.145 (kernel) + 13.675 (userspace)
      .......with kernel version 4.11.2
      .......gnome-shell version 3.24.1
      [day+1]
      .......Boot time [s]: 3.145 (kernel) + 21.665 (userspace)
      .......with kernel version 4.17.11
      .......gnome-shell version 3.28.3


      How can I do?









      share|improve this question












      share|improve this question




      share|improve this question








      edited 2 days ago









      jasonwryan

      46.2k14123173




      46.2k14123173









      asked 2 days ago









      mattia.b89

      660217




      660217




















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          1
          down vote



          accepted










          Basic idea



          I'd be tempted to do this as a systemd service that logs this to a file:



          $ systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//'
          442ms (kernel) + 10.224s (userspace)


          This cuts the output of systemd-analyze time down to just the bits you want. The rest of the info you want is easy to come by via uname and gnome-shell command-lines' themselves:



          $ systemd-analyze time | 
          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//';
          printf "kernel: %sngnome-shell: %sn" "$(uname -r)" "$(gnome-shell --version)"
          442ms (kernel) + 10.224s (userspace)
          kernel: 3.10.0-693.21.1.el7.x86_64
          gnome-shell: GNOME Shell 3.25.4


          More refined



          As a script the above:



          $ cat ./boottime.bash
          #!/bin/bash

          printf "[%s]n" "$(date)"
          printf ".......Boot time [s]: %sn" "$(systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"
          printf ".......with kernel version: %sn" "$(uname -r)"
          printf ".......gnome-shell version: %sn" "$(gnome-shell --version)"

          #[day]
          #.......Boot time [s]: 2.145 (kernel) + 13.675 (userspace)
          #.......with kernel version 4.11.2
          #.......gnome-shell version 3.24.1
          #[day+1]
          #.......Boot time [s]: 3.145 (kernel) + 21.665 (userspace)
          #.......with kernel version 4.17.11
          #.......gnome-shell version 3.28.3


          The output:



          $ ./boottime.bash
          [Sat Aug 4 14:34:40 EDT 2018]
          .......Boot time [s]: 442ms (kernel) + 10.224s (userspace)
          .......with kernel version: 3.10.0-693.21.1.el7.x86_64
          .......gnome-shell version: GNOME Shell 3.25.4


          The unit file:



          $ cat /etc/systemd/system/boottime.service
          [Unit]
          Description=Boottime Service
          After=systend-user-sessions.service

          [Service]
          Type=simple
          ExecStart=/opt/bin/boottime.bash


          TLDR; parsing systemd-analyze time



          The sed used above works as follows:



          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"



          • s/Startup finished in // - removes everything from left up to the word in


          • s/ +.*(initrd)// - removes everything starting at + up to (initrd)


          • s/ =.*$// - removes everything at the end of string, starting with = to the end of the line $





          share|improve this answer























          • It looks good! I am not an expert of sed, can you explain the complex part s/ +.*(initrd)//;s/ =.*$// ?
            – mattia.b89
            yesterday











          • @mattia.b89 - see updated section at end that explains
            – slm♦
            yesterday










          • thank you, now it's clear! I don't have an initrd item...
            – mattia.b89
            10 hours ago










          Your Answer







          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );








           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f460511%2fhow-to-record-boot-time%23new-answer', 'question_page');

          );

          Post as a guest






























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          1
          down vote



          accepted










          Basic idea



          I'd be tempted to do this as a systemd service that logs this to a file:



          $ systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//'
          442ms (kernel) + 10.224s (userspace)


          This cuts the output of systemd-analyze time down to just the bits you want. The rest of the info you want is easy to come by via uname and gnome-shell command-lines' themselves:



          $ systemd-analyze time | 
          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//';
          printf "kernel: %sngnome-shell: %sn" "$(uname -r)" "$(gnome-shell --version)"
          442ms (kernel) + 10.224s (userspace)
          kernel: 3.10.0-693.21.1.el7.x86_64
          gnome-shell: GNOME Shell 3.25.4


          More refined



          As a script the above:



          $ cat ./boottime.bash
          #!/bin/bash

          printf "[%s]n" "$(date)"
          printf ".......Boot time [s]: %sn" "$(systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"
          printf ".......with kernel version: %sn" "$(uname -r)"
          printf ".......gnome-shell version: %sn" "$(gnome-shell --version)"

          #[day]
          #.......Boot time [s]: 2.145 (kernel) + 13.675 (userspace)
          #.......with kernel version 4.11.2
          #.......gnome-shell version 3.24.1
          #[day+1]
          #.......Boot time [s]: 3.145 (kernel) + 21.665 (userspace)
          #.......with kernel version 4.17.11
          #.......gnome-shell version 3.28.3


          The output:



          $ ./boottime.bash
          [Sat Aug 4 14:34:40 EDT 2018]
          .......Boot time [s]: 442ms (kernel) + 10.224s (userspace)
          .......with kernel version: 3.10.0-693.21.1.el7.x86_64
          .......gnome-shell version: GNOME Shell 3.25.4


          The unit file:



          $ cat /etc/systemd/system/boottime.service
          [Unit]
          Description=Boottime Service
          After=systend-user-sessions.service

          [Service]
          Type=simple
          ExecStart=/opt/bin/boottime.bash


          TLDR; parsing systemd-analyze time



          The sed used above works as follows:



          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"



          • s/Startup finished in // - removes everything from left up to the word in


          • s/ +.*(initrd)// - removes everything starting at + up to (initrd)


          • s/ =.*$// - removes everything at the end of string, starting with = to the end of the line $





          share|improve this answer























          • It looks good! I am not an expert of sed, can you explain the complex part s/ +.*(initrd)//;s/ =.*$// ?
            – mattia.b89
            yesterday











          • @mattia.b89 - see updated section at end that explains
            – slm♦
            yesterday










          • thank you, now it's clear! I don't have an initrd item...
            – mattia.b89
            10 hours ago














          up vote
          1
          down vote



          accepted










          Basic idea



          I'd be tempted to do this as a systemd service that logs this to a file:



          $ systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//'
          442ms (kernel) + 10.224s (userspace)


          This cuts the output of systemd-analyze time down to just the bits you want. The rest of the info you want is easy to come by via uname and gnome-shell command-lines' themselves:



          $ systemd-analyze time | 
          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//';
          printf "kernel: %sngnome-shell: %sn" "$(uname -r)" "$(gnome-shell --version)"
          442ms (kernel) + 10.224s (userspace)
          kernel: 3.10.0-693.21.1.el7.x86_64
          gnome-shell: GNOME Shell 3.25.4


          More refined



          As a script the above:



          $ cat ./boottime.bash
          #!/bin/bash

          printf "[%s]n" "$(date)"
          printf ".......Boot time [s]: %sn" "$(systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"
          printf ".......with kernel version: %sn" "$(uname -r)"
          printf ".......gnome-shell version: %sn" "$(gnome-shell --version)"

          #[day]
          #.......Boot time [s]: 2.145 (kernel) + 13.675 (userspace)
          #.......with kernel version 4.11.2
          #.......gnome-shell version 3.24.1
          #[day+1]
          #.......Boot time [s]: 3.145 (kernel) + 21.665 (userspace)
          #.......with kernel version 4.17.11
          #.......gnome-shell version 3.28.3


          The output:



          $ ./boottime.bash
          [Sat Aug 4 14:34:40 EDT 2018]
          .......Boot time [s]: 442ms (kernel) + 10.224s (userspace)
          .......with kernel version: 3.10.0-693.21.1.el7.x86_64
          .......gnome-shell version: GNOME Shell 3.25.4


          The unit file:



          $ cat /etc/systemd/system/boottime.service
          [Unit]
          Description=Boottime Service
          After=systend-user-sessions.service

          [Service]
          Type=simple
          ExecStart=/opt/bin/boottime.bash


          TLDR; parsing systemd-analyze time



          The sed used above works as follows:



          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"



          • s/Startup finished in // - removes everything from left up to the word in


          • s/ +.*(initrd)// - removes everything starting at + up to (initrd)


          • s/ =.*$// - removes everything at the end of string, starting with = to the end of the line $





          share|improve this answer























          • It looks good! I am not an expert of sed, can you explain the complex part s/ +.*(initrd)//;s/ =.*$// ?
            – mattia.b89
            yesterday











          • @mattia.b89 - see updated section at end that explains
            – slm♦
            yesterday










          • thank you, now it's clear! I don't have an initrd item...
            – mattia.b89
            10 hours ago












          up vote
          1
          down vote



          accepted







          up vote
          1
          down vote



          accepted






          Basic idea



          I'd be tempted to do this as a systemd service that logs this to a file:



          $ systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//'
          442ms (kernel) + 10.224s (userspace)


          This cuts the output of systemd-analyze time down to just the bits you want. The rest of the info you want is easy to come by via uname and gnome-shell command-lines' themselves:



          $ systemd-analyze time | 
          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//';
          printf "kernel: %sngnome-shell: %sn" "$(uname -r)" "$(gnome-shell --version)"
          442ms (kernel) + 10.224s (userspace)
          kernel: 3.10.0-693.21.1.el7.x86_64
          gnome-shell: GNOME Shell 3.25.4


          More refined



          As a script the above:



          $ cat ./boottime.bash
          #!/bin/bash

          printf "[%s]n" "$(date)"
          printf ".......Boot time [s]: %sn" "$(systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"
          printf ".......with kernel version: %sn" "$(uname -r)"
          printf ".......gnome-shell version: %sn" "$(gnome-shell --version)"

          #[day]
          #.......Boot time [s]: 2.145 (kernel) + 13.675 (userspace)
          #.......with kernel version 4.11.2
          #.......gnome-shell version 3.24.1
          #[day+1]
          #.......Boot time [s]: 3.145 (kernel) + 21.665 (userspace)
          #.......with kernel version 4.17.11
          #.......gnome-shell version 3.28.3


          The output:



          $ ./boottime.bash
          [Sat Aug 4 14:34:40 EDT 2018]
          .......Boot time [s]: 442ms (kernel) + 10.224s (userspace)
          .......with kernel version: 3.10.0-693.21.1.el7.x86_64
          .......gnome-shell version: GNOME Shell 3.25.4


          The unit file:



          $ cat /etc/systemd/system/boottime.service
          [Unit]
          Description=Boottime Service
          After=systend-user-sessions.service

          [Service]
          Type=simple
          ExecStart=/opt/bin/boottime.bash


          TLDR; parsing systemd-analyze time



          The sed used above works as follows:



          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"



          • s/Startup finished in // - removes everything from left up to the word in


          • s/ +.*(initrd)// - removes everything starting at + up to (initrd)


          • s/ =.*$// - removes everything at the end of string, starting with = to the end of the line $





          share|improve this answer















          Basic idea



          I'd be tempted to do this as a systemd service that logs this to a file:



          $ systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//'
          442ms (kernel) + 10.224s (userspace)


          This cuts the output of systemd-analyze time down to just the bits you want. The rest of the info you want is easy to come by via uname and gnome-shell command-lines' themselves:



          $ systemd-analyze time | 
          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//';
          printf "kernel: %sngnome-shell: %sn" "$(uname -r)" "$(gnome-shell --version)"
          442ms (kernel) + 10.224s (userspace)
          kernel: 3.10.0-693.21.1.el7.x86_64
          gnome-shell: GNOME Shell 3.25.4


          More refined



          As a script the above:



          $ cat ./boottime.bash
          #!/bin/bash

          printf "[%s]n" "$(date)"
          printf ".......Boot time [s]: %sn" "$(systemd-analyze time | sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"
          printf ".......with kernel version: %sn" "$(uname -r)"
          printf ".......gnome-shell version: %sn" "$(gnome-shell --version)"

          #[day]
          #.......Boot time [s]: 2.145 (kernel) + 13.675 (userspace)
          #.......with kernel version 4.11.2
          #.......gnome-shell version 3.24.1
          #[day+1]
          #.......Boot time [s]: 3.145 (kernel) + 21.665 (userspace)
          #.......with kernel version 4.17.11
          #.......gnome-shell version 3.28.3


          The output:



          $ ./boottime.bash
          [Sat Aug 4 14:34:40 EDT 2018]
          .......Boot time [s]: 442ms (kernel) + 10.224s (userspace)
          .......with kernel version: 3.10.0-693.21.1.el7.x86_64
          .......gnome-shell version: GNOME Shell 3.25.4


          The unit file:



          $ cat /etc/systemd/system/boottime.service
          [Unit]
          Description=Boottime Service
          After=systend-user-sessions.service

          [Service]
          Type=simple
          ExecStart=/opt/bin/boottime.bash


          TLDR; parsing systemd-analyze time



          The sed used above works as follows:



          sed 's/Startup finished in //;s/ +.*(initrd)//;s/ =.*$//')"



          • s/Startup finished in // - removes everything from left up to the word in


          • s/ +.*(initrd)// - removes everything starting at + up to (initrd)


          • s/ =.*$// - removes everything at the end of string, starting with = to the end of the line $






          share|improve this answer















          share|improve this answer



          share|improve this answer








          edited yesterday


























          answered 2 days ago









          slm♦

          232k65479648




          232k65479648











          • It looks good! I am not an expert of sed, can you explain the complex part s/ +.*(initrd)//;s/ =.*$// ?
            – mattia.b89
            yesterday











          • @mattia.b89 - see updated section at end that explains
            – slm♦
            yesterday










          • thank you, now it's clear! I don't have an initrd item...
            – mattia.b89
            10 hours ago
















          • It looks good! I am not an expert of sed, can you explain the complex part s/ +.*(initrd)//;s/ =.*$// ?
            – mattia.b89
            yesterday











          • @mattia.b89 - see updated section at end that explains
            – slm♦
            yesterday










          • thank you, now it's clear! I don't have an initrd item...
            – mattia.b89
            10 hours ago















          It looks good! I am not an expert of sed, can you explain the complex part s/ +.*(initrd)//;s/ =.*$// ?
          – mattia.b89
          yesterday





          It looks good! I am not an expert of sed, can you explain the complex part s/ +.*(initrd)//;s/ =.*$// ?
          – mattia.b89
          yesterday













          @mattia.b89 - see updated section at end that explains
          – slm♦
          yesterday




          @mattia.b89 - see updated section at end that explains
          – slm♦
          yesterday












          thank you, now it's clear! I don't have an initrd item...
          – mattia.b89
          10 hours ago




          thank you, now it's clear! I don't have an initrd item...
          – mattia.b89
          10 hours ago












           

          draft saved


          draft discarded


























           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f460511%2fhow-to-record-boot-time%23new-answer', 'question_page');

          );

          Post as a guest













































































          fEPDHw g,7hIRHJbNP,eCs Ihj HryVhJTH7pw5O P,UerokP
          1lj,gonZHW4P4ACIHjQTBzXzU,0X Tjjrxrh8p 6DEpNHXcDBEQJx ickgzza,9D61WB4,3,QqLgDzB8RXYCkuwZN64hMN

          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          How many registers does an x86_64 CPU actually have?

          Displaying single band from multi-band raster using QGIS