documentation:technical_docs:performance
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionNext revisionBoth sides next revision | ||
documentation:technical_docs:performance [2019/03/26 00:22] – external edit 127.0.0.1 | documentation:technical_docs:performance [2019/11/21 17:16] – [Choosing good Hardware] olivier | ||
---|---|---|---|
Line 90: | Line 90: | ||
Avoid NUMA architecture but prefer a CPU in only one package with maximum core (8 or 16). | Avoid NUMA architecture but prefer a CPU in only one package with maximum core (8 or 16). | ||
- | If you are using NUMA, check that inbound/ | + | If you are using NUMA, check that inbound/ |
=== Network Interface Card === | === Network Interface Card === | ||
Line 746: | Line 746: | ||
</ | </ | ||
- | On this case the bootleneck is just the network stack. | + | On this case the bootleneck is just the network stack (most of the time spend into function ip_findroute called by ip_tryforward). |
== CPU cycles spent == | == CPU cycles spent == | ||
Line 761: | Line 761: | ||
< | < | ||
pmcstat -z 50 -S cpu_clk_unhalted.thread -l 20 -O / | pmcstat -z 50 -S cpu_clk_unhalted.thread -l 20 -O / | ||
+ | pmcstat -R / | ||
+ | less / | ||
</ | </ | ||
- | Then analyses | + | === Lock contention source === |
- | < | + | |
- | fetch http:// | + | To identifying lock contention source (like if function lock_delay or __mtx_lock_sleep was quite high from the pcm output), you can try to search which lock is contended and why with lockstat. |
- | tar xzfv BSDRP-release-debug.tar.xz | + | |
- | pmcannotate / | + | You can generate 2 output: |
- | </ | + | * contented locks broken down by type: < |
+ | * stacks associated with the lock contention to identify the source: < |
documentation/technical_docs/performance.txt · Last modified: 2020/01/18 01:04 by olivier