mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
blog: adjust blog content
Resize image 2021-12-02-flamegraph-figure2.png. Adjust some paragraph and getpid performance tables. Signed-off-by: Yong He <chenglang.hy@antgroup.com> Signed-off-by: Jianfeng Tan <henry.tjf@antgroup.com>
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 748 KiB After Width: | Height: | Size: 377 KiB |
@@ -25,11 +25,13 @@ overhead; another 25% have <3% overhead. Some of our most valued application are
|
||||
the focus of our optimization, and get even better performance compared with
|
||||
runc.
|
||||
|
||||
The rest of this blog is organized as follows: - First, we analyze the cost of
|
||||
different syscall paths in gVisor. - Then, a way to profile a whole picture of a
|
||||
instance is proposed to find out if some slow syscall paths are encountered. -
|
||||
Some invisible overhead in Go runtime is discussed. - At last, a short summary
|
||||
on performance optimization with some other factors on production adoption.
|
||||
The rest of this blog is organized as follows:
|
||||
* First, we analyze the cost of different syscall paths in gVisor.
|
||||
* Then, a way to profile a whole picture of a instance is proposed to find out
|
||||
if some slow syscall paths are encountered. Some invisible overhead in Go
|
||||
runtime is discussed.
|
||||
* At last, a short summary on performance optimization with some other factors
|
||||
on production adoption.
|
||||
|
||||
For convenience of discussion, we are targeting KVM-based, or hypervisor-based
|
||||
platforms, unless explicitly stated.
|
||||
@@ -114,14 +116,14 @@ on a Intel(R) Xeon(R) CPU E5-2650 v2 platform, using
|
||||
As we can see, for KVM platform, the syscall interception costs more than 10x
|
||||
than a native Linux syscall.
|
||||
|
||||
| getpid benchmark (ns)
|
||||
getpid | benchmark (ns)
|
||||
------------ | ---------------------
|
||||
Native | 62
|
||||
Native-KPTI | 236
|
||||
runsc-KVM | 830
|
||||
runsc-ptrace | 6249
|
||||
|
||||
* "Native" stands for using vanilla linux kernel.
|
||||
\* "Native" stands for using vanilla linux kernel.
|
||||
|
||||
To understand the structural cost of syscall interception, we did a
|
||||
[quantitative analysis](https://github.com/google/gvisor/issues/2354) on kvm
|
||||
|
||||
Reference in New Issue
Block a user