mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
development: add boottime graph howto
This commit is contained in:
parent
4004225803
commit
2c4be47e13
@ -683,31 +683,23 @@ passed as kernel boot parameters.
|
|||||||
Kernel boot parameters
|
Kernel boot parameters
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
``vyos-debug``
|
* ``vyos-debug`` - Adding the parameter to the linux boot line will produce
|
||||||
^^^^^^^^^^^^^^
|
timing results for the execution of scripts during commit. If one is seeing
|
||||||
|
an unexpected delay during manual or boot commit, this may be useful in
|
||||||
Adding the parameter ``vyos-debug`` to the linux boot line will produce
|
identifying bottlenecks. The internal flag is ``VYOS_DEBUG``, and is found
|
||||||
timing results for the execution of scripts during commit. If one is seeing
|
in vyatta-cfg_. Output is directed to ``/var/log/vyatta/cfg-stdout.log``.
|
||||||
an unexpected delay during manual or boot commit, this may be useful in
|
|
||||||
identifying bottlenecks. The internal flag is ``VYOS_DEBUG``, and is found in
|
|
||||||
vyatta-cfg_. Output is directed to ``/var/log/vyatta/cfg-stdout.log``.
|
|
||||||
|
|
||||||
``vyos-config-debug``
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
During development, coding errors can lead to a commit failure on boot,
|
|
||||||
possibly resulting in a failed initialization of the CLI. In this
|
|
||||||
circumstance, the kernel boot parameter ``vyos-config-debug`` will ensure
|
|
||||||
access to the system as user ``vyos``, and will log a Python stack trace to
|
|
||||||
``/tmp/boot-config-trace``.
|
|
||||||
|
|
||||||
|
* ``vyos-config-debug`` - During development, coding errors can lead to a
|
||||||
|
commit failure on boot, possibly resulting in a failed initialization of the
|
||||||
|
CLI. In this circumstance, the kernel boot parameter ``vyos-config-debug``
|
||||||
|
will ensure access to the system as user ``vyos``, and will log a Python
|
||||||
|
stack trace to the file ``/tmp/boot-config-trace``.
|
||||||
|
|
||||||
Debugging features
|
Debugging features
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
A number of flags can be set up to change the behaviour of VyOS at runtime.
|
A number of flags can be set up to change the behaviour of VyOS at runtime.
|
||||||
These flags can be toggled using either environment variables or creating
|
These flags can be toggled using either environment variables or creating files.
|
||||||
files.
|
|
||||||
|
|
||||||
For each feature, a file called ``vyos.feature.debug`` can be created to toggle
|
For each feature, a file called ``vyos.feature.debug`` can be created to toggle
|
||||||
the feature on. If a parameter is required it can be placed inside the file as
|
the feature on. If a parameter is required it can be placed inside the file as
|
||||||
@ -725,35 +717,22 @@ In that case, the name will be (in uppercase) VYOS_FEATURE_DEBUG.
|
|||||||
for example running, ``export VYOS_IFCONFIG_DEBUG=""`` on your vash, will have
|
for example running, ``export VYOS_IFCONFIG_DEBUG=""`` on your vash, will have
|
||||||
the same effect as ``touch /tmp/vyos.ifconfig.debug``.
|
the same effect as ``touch /tmp/vyos.ifconfig.debug``.
|
||||||
|
|
||||||
``ifconfig``
|
* ``ifconfig`` - Once set, all commands used, and their responses received from
|
||||||
^^^^^^^^^^^^
|
the OS, will be presented on the screen for inspection.
|
||||||
|
|
||||||
Once set, all commands used, and their responses received from the OS, will be
|
* ``command`` - Once set, all commands used, and their responses received from
|
||||||
presented on the screen for inspection.
|
the OS, will be presented on the screen for inspection.
|
||||||
|
|
||||||
``command``
|
* ``developer`` - Should a command fail, instead of printing a message to the
|
||||||
^^^^^^^^^^^
|
user explaining how to report issues, the python interpreter will start a PBD
|
||||||
|
post-mortem session to allow the developer to debug the issue. As the debugger
|
||||||
|
will wait from input from the developer, it has the capacity to prevent a
|
||||||
|
router to boot and therefore should only be permanently set up on production
|
||||||
|
if you are ready to see the OS fail to boot.
|
||||||
|
|
||||||
Once set, all commands used, and their responses received from the OS, will be
|
* ``log`` - In some rare cases, it may be useful to see what the OS is doing,
|
||||||
presented on the screen for inspection.
|
including during boot. This option sends all commands used by VyOS to a file.
|
||||||
|
The default file is ``/tmp/full-log`` but it can be changed.
|
||||||
``developer``
|
|
||||||
^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Should a command fail, instead of printing a message to the user explaining how
|
|
||||||
to report issues, the python interpreter will start a PBD post-mortem session
|
|
||||||
to allow the developer to debug the issue.
|
|
||||||
|
|
||||||
As the debugger will wait from input from the developer, it has the capacity to
|
|
||||||
prevent a router to boot and therefore should only be permanently set up on
|
|
||||||
production if you are ready to see the OS fail to boot.
|
|
||||||
|
|
||||||
``log``
|
|
||||||
^^^^^^^
|
|
||||||
|
|
||||||
In some rare cases, it may be useful to see what the OS is doing, including
|
|
||||||
during boot. This option sends all commands used by VyOS to a file.
|
|
||||||
The default file is ``/tmp/full-log`` but it can be changed.
|
|
||||||
|
|
||||||
Config Migration
|
Config Migration
|
||||||
----------------
|
----------------
|
||||||
@ -780,6 +759,23 @@ own by:
|
|||||||
|
|
||||||
vyos@vyos:~$ /usr/libexec/vyos/run-config-migration.py --virtual --set-vintage vyos /tmp/config.boot
|
vyos@vyos:~$ /usr/libexec/vyos/run-config-migration.py --virtual --set-vintage vyos /tmp/config.boot
|
||||||
|
|
||||||
|
Boot Timing
|
||||||
|
-----------
|
||||||
|
|
||||||
|
During the migration and extensive rewrite of functionality from Perl into
|
||||||
|
Python a significant increase in the overall system boottime was noticed. The
|
||||||
|
system boot time can be analysed and a graph can be generated in the end which
|
||||||
|
shows in detail who called whom during the system startup phase.
|
||||||
|
|
||||||
|
This is done by utilizing the ``systemd-bootchart`` package which is now
|
||||||
|
installed by default on the VyOS 1.3 (equuleus) branch. The configuration is
|
||||||
|
also versioned so we get comparable results. ``systemd-bootchart`` is configured
|
||||||
|
using this file: bootchart.conf_
|
||||||
|
|
||||||
|
To enable boot time graphing change the Kernel commandline and add the folowing
|
||||||
|
string: ``init=/usr/lib/systemd/systemd-bootchart``
|
||||||
|
|
||||||
|
This can also be done permanently by changing ``/boot/grub/grub.cfg``.
|
||||||
|
|
||||||
Priorities
|
Priorities
|
||||||
==========
|
==========
|
||||||
@ -823,5 +819,6 @@ http://dev.packages.vyos.net/repositories/.
|
|||||||
.. _`VLAN (VIF)`: https://github.com/vyos/vyos-1x/tree/current/interface-definitions/include/vif.xml.i
|
.. _`VLAN (VIF)`: https://github.com/vyos/vyos-1x/tree/current/interface-definitions/include/vif.xml.i
|
||||||
.. _`MAC address`: https://github.com/vyos/vyos-1x/tree/current/interface-definitions/include/interface-mac.xml.i
|
.. _`MAC address`: https://github.com/vyos/vyos-1x/tree/current/interface-definitions/include/interface-mac.xml.i
|
||||||
.. _vyatta-cfg: https://github.com/vyos/vyatta-cfg
|
.. _vyatta-cfg: https://github.com/vyos/vyatta-cfg
|
||||||
|
.. _bootchart.conf: https://github.com/vyos/vyos-build/blob/current/data/live-build-config/includes.chroot/etc/systemd/bootchart.conf
|
||||||
|
|
||||||
.. include:: ../common-references.rst
|
.. include:: ../common-references.rst
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user