Linux VM(重型多线程应用程序)的性能改进

Performance improvement on Linux VM(heavy multi threaded app)

本文关键字:性能 应用程序 VM 重型 多线程 Linux      更新时间:2023-10-16

嗨,在对应用程序进行一些分析后,我得到了以下内核调用堆栈,位于应用程序的顶部。其余的执行在 CPU 使用率上非常低(在 0.x - 2% 之间,绿色区域)。

Linux 上的代码 (C++) 时间设置为 hpet (可以在调用中看到) 应用程序(5 个线程)处理 100 TXN/秒(TCP/DB 写入...有没有办法调整一天的获取时间,或者Virtual Box的虚拟机管理程序真的很糟糕。顶部的 CPU 负载...在机器上约为 30-40%。(4 核 i7 + 6GB 内存)

样本:128K 事件"CPU 时钟",事件计数(大约):32221750000开销命令共享对象符号

14.52% app [kernel.kallsyms] [k] _raw_spin_unlock_irqrestore
_raw_spin_unlock_irqrestore
8.82% hrtimer_start_range_ns
8.79% do_nanosleep
hrtimer_nanosleep
compat_sys_nanosleep
sysenter_dispatch
4.22% try_to_wake_up
1.06% __wake_up_sync_key
**13.47% app [kernel.kallsyms] [k] read_hpet**
read_hpet
12.10% __getnstimeofday64
getnstimeofday64
10.28% do_gettimeofday
compat_sys_gettimeofday
sysenter_dispatch
1.70% ktime_get_real
1.36% ktime_get
11.67% app [kernel.kallsyms] [k] native_sched_clock
native_sched_clock
11.67% sched_clock
local_clock
9.92% tcp_transmit_skb
tcp_write_xmit
__tcp_push_pending_frames
tcp_push

以下是其余的一些电话。这个应用程序非常大,我不想添加所有的性能数据,但这里有一个更大的片段:

+   14.52%  app   [kernel.kallsyms]             [k] _raw_spin_unlock_irqrestore
+   13.47%  app   [kernel.kallsyms]             [k] read_hpet                  
+   11.67%  app   [kernel.kallsyms]             [k] native_sched_clock         
+    9.81%  app   [kernel.kallsyms]             [k] finish_task_switch               
+    1.25%  app   libc-2.17.so                  [.] __memcpy_ssse3                               
+    0.90%  app   libc-2.17.so                  [.] __memcmp_sse4_2            
+    0.85%  app   [kernel.kallsyms]             [k] __do_softirq     
0.84%  app   app                        [.] list<var_entry>::find                     
+    0.81%  app   libc-2.17.so                  [.] __strlen_sse2_bsf              
+    0.66%  app   app                        [.] __x86.get_pc_thunk.bx          
+    0.63%  app   libclntsh.so.11.1             [.] kpuexec                        
+    0.51%  app   libclntsh.so.11.1             [.] ttcfour                        
0.48%  app   app                        [.] str_base::is_null   

还有相同问题的reddit链接(也许更好的文本格式)

https://www.reddit.com/r/AskProgramming/comments/8dm5mb/performance_improvement_on_linux_vmheavy_multi/

它是VBox的虚拟机管理程序,它不能胜任:(任务。在KVM上的普通服务器上运行它后,一切都很好。