...
Status | ||||
---|---|---|---|---|
|
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
|
...
- Setup → General → Global Settings → User Interface → Profile Request
. Modify the URL to profile by adding '&_profile=1' and fire submit the request in your browser.
Code Block language bash theme RDark http://localhost/nagnis_master/check_mk/view.py?view_name=allhosts&_profile=1
.
Now two files are created in ~{{$OMD_ROOT/var/check_mk/}}.
Code Block theme RDark root@mylinuxhost:/opt/omd/sites/mysite/var/check_mk# ll |grep multisite -rw-rw---- 1 mysite mysite 100246 Nov 6 13:35 multisite.profile -rwxr-xr-x 1 mysite mysite 155 Nov 6 13:35 multisite.py*
.
By executing 'multisite.py', you can get runtime statistics about the last processed page.
Code Block language bash theme RDark root@mylinuxhost:/opt/omd/sites/mysite/var/check_mk# ./multisite.py |more Fri Nov 6 13:35:33 2020 /omd/sites/nagnis_master/var/check_mk/multisite.profile 9585 function calls (9480 primitive calls) in 0.007 seconds Ordered by: internal time ncalls tottime percall cumtime percall filename:lineno(function) 1 0.001 0.001 0.002 0.002 /omd/sites/mysite/lib/python/cmk/gui/modules.py:140(_cmk_gui_top_level_modules) 4652 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects} ... ...
.
For viewing
multisite.profile
with snakeviz, move the file to another directory (e.g., /tmp), and change the owner to the owner of your Internet Browser.Code Block language bash theme RDark linuxuser@mylinuxhost:/omd/sites/mysite/var/check_mk$ sudo cp multisite.profile /tmp/ linuxuser@mylinuxhost:/tmp$ sudo chown linuxuser:linuxuser multisite.profile
.
Install the Python module (for Python 2 or Python 3, respectively).
Code Block language bash theme RDark root@mylinuxhost:~# pip install snakeviz root@mylinuxhost:~# pip3 install snakeviz
.
Now you can use snakeviz to view the profiling file.
Code Block language bash theme RDark linuxuser@mylinuxhost:/tmp$ snakeviz multisite.profile
.Now you can analyze at which point of the request your view needs the most time!.
Profiling via cli
The cmk commands have the option to profile them.
Code Block language bash theme RDark OMD[mysite]:~$ cmk |grep profile --profile Enable profiling mode
.
The profile file will be created in the current directory. Let's go to tmp and run the cmk command with the profile option.
Code Block language bash theme RDark ➜ ~ su - at OMD[mysite]:~$ cd tmp OMD[mysite]:~$ cmk -Afv --profile
Note cmk -Afv --profile is only one example. This command will trigger the agent baking via the CLI. You may need to profile a different command.
.
Now we will see two files:
Code Block language bash theme RDark OMD[mysite]:~/tmp$ ls |grep profile profile.out* show_profile.py*
.
To work with these files, we need to copy them outside the site.
Code Block language bash theme RDark OMD[mysite]:~/tmp$ cp show_profile.py profile.out /tmp/
.
- Now there are two ways to analyze these files:
Open the profile file via the command line:
Code Block language bash theme RDark ➜ /tmp ./show_profile.py
- Analyze via snakevize as described here: Checkmk profiling#GUIProfiling
...
There is a simple to achieve this anyway:
The solution is: Python virtualenv inspired by: https://computingforgeeks.com/how-to-install-python2-with-virtualenv-on-ubuntu/How To Install Python 2 with Virtualenv on Ubuntu 20.04
Here is my short step-by-step guide:
...
- Start the Network Monitor
- Ctrl + Shift + I
- For Firefox, follow this manual: https://developer.mozilla.org/en-US/docs/Tools/Network_Monitor Firefox Network Analyzer
- For Google Chrome, follow this manual: https://developer.chrome.com/docs/devtools/network/ Chrome Network Analyzer
- Ctrl + Shift + I
- Reload the slow/ crashing view again and save/export this file as .har. Please submit this file to us.
...