ESXI虚拟机中部署docker会降低服务器性能

news2025/2/5 12:07:21

在 8 核 16GB 的 ESXi 虚拟机中部署 Docker 的性能影响分析

在 ESXi 虚拟机中运行 Docker 容器时,性能影响主要来自以下几个方面:

  1. 虚拟化开销:ESXi 虚拟化层和 Docker 容器化层的叠加。
  2. 资源竞争:虚拟机与容器之间对 CPU、内存、网络和存储资源的争用。
  3. 调度延迟:ESXi 和 Docker 的双层调度可能增加任务响应时间。

以下是详细分析和优化建议。


1. 性能影响分析

(1) CPU 性能
  • 虚拟化开销
    • ESXi 虚拟化引入约 5%~10% 的 CPU 开销。
    • Docker 容器化引入约 2%~5% 的 CPU 开销。
    • 总开销:约 7%~15%
  • 调度延迟
    • ESXi 和 Docker 的双层调度可能增加任务切换时间,导致延迟波动。
(2) 内存性能
  • 内存开销
    • ESXi 虚拟化占用约 1~2GB 内存(用于 Hypervisor 和管理)。
    • Docker 容器化占用约 100~500MB 内存(用于容器运行时和镜像缓存)。
    • 总开销:约 1.1~2.5GB
  • 内存竞争
    • 若容器内存需求较高,可能触发虚拟机内存交换(Swap),显著降低性能。
(3) 网络性能
  • 虚拟网络开销
    • ESXi 虚拟交换机(vSwitch)引入约 5%~10% 的网络延迟。
    • Docker 容器网络(如 bridge 模式)引入约 2%~5% 的延迟。
    • 总开销:约 7%~15%
  • 带宽限制
    • 虚拟机网络带宽受 ESXi 主机配置限制(如 1G/10G 网卡)。
(4) 存储性能
  • 虚拟存储开销
    • ESXi 虚拟磁盘(VMDK)引入约 5%~10% 的 I/O 延迟。
    • Docker 容器存储(如 OverlayFS)引入约 2%~5% 的延迟。
    • 总开销:约 7%~15%
  • IOPS 限制
    • 虚拟机磁盘 IOPS 受底层存储性能限制(如 SAS RAID 5)。

2. 性能影响量化

(1) 资源占用估算
资源ESXi 开销Docker 开销总开销剩余资源
CPU5%~10%2%~5%7%~15%85%~93%
内存1~2GB100~500MB1.1~2.5GB13.5~14.9GB
网络延迟5%~10%2%~5%7%~15%-
存储延迟5%~10%2%~5%7%~15%-
(2) 并发能力估算
  • SIP 信令处理
    • 单核 vCPU 可处理约 1,000~1,500 TPS
    • 8 核 vCPU 可处理 8,000~12,000 TPS
    • 考虑虚拟化和容器化开销,实际性能约为 6,800~10,200 TPS
  • 并发会话数
    • 每个 SIP 会话平均产生 0.5~1 TPS
    • 可支持 6,800~10,200 并发 SIP 会话

3. 优化建议

(1) CPU 优化
  • 绑定 vCPU:将虚拟机 vCPU 绑定到物理 CPU 核心,减少上下文切换。
    # ESXi 命令行
    vmdumper <VM_ID> setaffinity 0-7
    
  • 限制容器 CPU:为 Docker 容器设置 CPU 配额,避免资源争用。
    docker run --cpus="2" <image>
    
(2) 内存优化
  • 预留内存:为虚拟机预留 16GB 内存,避免内存交换。
    # ESXi 虚拟机设置
    memoryReservationLockedToMax = "TRUE"
    
  • 限制容器内存:为 Docker 容器设置内存限制。
    docker run --memory="4g" <image>
    
(3) 网络优化
  • 使用 Host 网络模式:减少 Docker 容器网络开销。
    docker run --network="host" <image>
    
  • 启用 SR-IOV:若 ESXi 主机支持,为虚拟机分配 SR-IOV 虚拟功能(VF)。
(4) 存储优化
  • 使用本地存储:将 Docker 容器数据存储到虚拟机本地磁盘,避免共享存储延迟。
  • 启用 Overlay2:使用 Overlay2 存储驱动,减少容器存储开销。
    # Docker 配置文件
    {
      "storage-driver": "overlay2"
    }
    

4. 性能验证

(1) 压力测试工具
  • SIPp:模拟并发 SIP 信令。
    sipp -sn uac <kamailio_ip> -i <client_ip> -d 10000 -m 10000 -r 1000
    
  • 监控指标
    • SIP 事务/秒(TPS):目标 ≥6,800 TPS。
    • 响应延迟(P99):≤5 ms。
(2) 资源监控
  • ESXi 监控
    • 使用 esxtop 查看虚拟机 CPU、内存、网络和磁盘使用率。
  • Docker 监控
    • 使用 docker stats 查看容器资源占用。
    docker stats <container_id>
    

5. 总结

  • 性能影响
    • 在 8 核 16GB 的 ESXi 虚拟机中部署 Docker,总体性能下降约 7%~15%
    • 可支持 6,800~10,200 并发 SIP 会话
  • 优化建议
    • 绑定 vCPU、预留内存、限制容器资源。
    • 使用 Host 网络模式和 Overlay2 存储驱动。
  • 适用场景
    • 中小型 VoIP 系统,适合开发和测试环境。
    • 若需更高性能,建议直接使用物理机部署 Kamailio 和 Docker。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2292306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接入DeepSeek大模型

接入DeepSeek 下载并安装Ollamachatbox 软件配置大模型 下载并安装Ollama 下载并安装Ollama&#xff0c; 使用参数ollama -v查看是否安装成功。 输入命令ollama list&#xff0c; 可以看到已经存在4个目录了。 输入命令ollama pull deepseek-r1:1.5b&#xff0c; 下载deepse…

【论文复现】粘菌算法在最优经济排放调度中的发展与应用

目录 1.摘要2.黏菌算法SMA原理3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 本文提出了一种改进粘菌算法&#xff08;ISMA&#xff09;&#xff0c;并将其应用于考虑阀点效应的单目标和双目标经济与排放调度&#xff08;EED&#xff09;问题。为提升传统粘菌算法&#xf…

UE Bridge混合材质工具

打开虚幻内置Bridge 随便点个材质点右下角图标 就能打开材质混合工具 可以用来做顶点绘制

基于 yolov8_pyqt5 自适应界面设计的火灾检测系统 demo:毕业设计参考

基于 yolov8_pyqt5 自适应界面设计的火灾检测系统 demo&#xff1a;毕业设计参考 【毕业设计参考】基于yolov8-pyqt5自适应界面设计的火灾检测系统demo.zip资源-CSDN文库 【毕业设计参考】基于yolov8-pyqt5自适应界面设计的火灾检测系统demo.zip资源-CSDN文库 一、项目背景 …

Linux 传输层协议 UDP 和 TCP

UDP 协议 UDP 协议端格式 16 位 UDP 长度, 表示整个数据报(UDP 首部UDP 数据)的最大长度如果校验和出错, 就会直接丢弃 UDP 的特点 UDP 传输的过程类似于寄信 . 无连接: 知道对端的 IP 和端口号就直接进行传输, 不需要建立连接不可靠: 没有确认机制, 没有重传机制; 如果因…

chrome浏览器chromedriver下载

chromedriver 下载地址 https://googlechromelabs.github.io/chrome-for-testing/ 上面的链接有和当前发布的chrome浏览器版本相近的chromedriver 实际使用感受 chrome浏览器会自动更新&#xff0c;可以去下载最新的chromedriver使用&#xff0c;自动化中使用新的chromedr…

第一个Qt开发实例(一个Push Button按钮和两个Label)【包括如何在QtCreator中创建新工程、代码详解、编译、环境变量配置、测试程序运行等】

目录 Qt开发环境QtCreator的安装、配置在QtCreator中创建新工程在Forms→mainwindow.ui中拖曳出我们要的图形按钮查看拖曳出按钮后的代码为pushButton这个图形添加回调函数编译工程关闭开发板上QT的GUI(选做)禁止LCD黑屏(选做)设置Qt运行的环境变量运行Qt程序如何让程序在系统启…

【react+redux】 react使用redux相关内容

首先说一下&#xff0c;文章中所提及的内容都是我自己的个人理解&#xff0c;是我理逻辑的时候&#xff0c;自我说服的方式&#xff0c;如果有问题有补充欢迎在评论区指出。 一、场景描述 为什么在react里面要使用redux&#xff0c;我的理解是因为想要使组件之间的通信更便捷…

【435. 无重叠区间 中等】

题目&#xff1a; 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 注意 只在一点上接触的区间是 不重叠的。例如 [1, 2] 和 [2, 3] 是不重叠的。 示例 1: 输入: intervals …

文献学习笔记:中风醒脑液(FYTF-919)临床试验解读:有效还是无效?

【中风醒脑液&#xff08;FYTF-919&#xff09;临床试验解读&#xff1a;有效还是无效&#xff1f;】 在发表于 The Lancet &#xff08;2024 年 11 月 30 日&#xff0c;第 404 卷&#xff09;的临床研究《Traditional Chinese medicine FYTF-919 (Zhongfeng Xingnao oral pr…

vue2语法速通

首先&#xff0c;git clone下来的项目要npm install下载依赖&#xff0c;如果是vue项目&#xff0c;运行通常npm run serve或者npm run dev vue速通一下 使用vite创建项目&#xff08;较快&#xff09; npm create vite 配置文件 src/ ├── assets/ # 存放…

【商品库存管理——差分、前缀和】

题目 代码 #include <bits/stdc.h> using namespace std; const int N 3e510; int l[N], r[N], b[N]; int s1[N], s0[N]; int main() {int n, m;cin >> n >> m;for(int i 1; i < m; i){cin >> l[i] >> r[i];b[l[i]], b[r[i]1]--;}int a 0…

Linux基本指令2

07.man指令&#xff08;重要&#xff09;&#xff1a; Linux的命令有很多参数&#xff0c;我们不可能全记住&#xff0c;我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man 语法: man [选项] 命令 man ls查看ls指令更多的说明。 man man&#xff1a; man指令就…

Android学习19 -- 手搓App

1 前言 之前工作中&#xff0c;很多时候要搞一个简单的app去验证底层功能&#xff0c;Android studio又过于重型&#xff0c;之前用gradle&#xff0c;被版本匹配和下载外网包折腾的堪称噩梦。所以搞app都只有找应用的同事帮忙。一直想知道一些简单的app怎么能手搓一下&#x…

人工智能导论-第3章-知识点与学习笔记

参考教材3.2节的内容&#xff0c;介绍什么是自然演绎推理&#xff1b;解释“肯定后件”与“否定前件”两类错误的演绎推理是什么意义&#xff0c;给出具体例子加以阐述。参考教材3.3节的内容&#xff0c;介绍什么是文字&#xff08;literal&#xff09;&#xff1b;介绍什么是子…

DeepSeek 的含金量还在上升

大家好啊&#xff0c;我是董董灿。 最近 DeepSeek 越来越火了。 网上有很多针对 DeepSeek 的推理测评&#xff0c;除此之外&#xff0c;也有很多人从技术的角度来探讨 DeepSeek 带给行业的影响。 比如今天就看到了一篇文章&#xff0c;探讨 DeepSeek 在使用 GPU 进行模型训练…

【Linux系统】信号:信号保存 / 信号处理、内核态 / 用户态、操作系统运行原理(中断)

理解Linux系统内进程信号的整个流程可分为&#xff1a; 信号产生 信号保存 信号处理 上篇文章重点讲解了 信号的产生&#xff0c;本文会讲解信号的保存和信号处理相关的概念和操作&#xff1a; 两种信号默认处理 1、信号处理之忽略 ::signal(2, SIG_IGN); // ignore: 忽略#…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.6 广播机制核心算法:维度扩展的数学建模

2.6 广播机制核心算法&#xff1a;维度扩展的数学建模 目录/提纲 #mermaid-svg-IfELXmhcsdH1tW69 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-IfELXmhcsdH1tW69 .error-icon{fill:#552222;}#mermaid-svg-IfELXm…

硬件产品经理:需求引力模型(DGM)

目录 1、DGM 模型简介 2、理论核心&#xff1a;打破传统线性逻辑 3、三大定律 第一定律&#xff1a;暗物质需求法则 第二定律&#xff1a;引力井效应 第三定律&#xff1a;熵减增长律 4、落地工具包 工具1&#xff1a;需求密度热力图 工具3&#xff1a;摩擦力歼灭清单…

Guided Decoding (借助FSM,有限状态自动机)

VLLM对结构化输出的支持&#xff1a; vllm/docs/source/features/structured_outputs.md at main vllm-project/vllm GitHub VLLM对tool call的支持&#xff1a; vllm/docs/source/features/tool_calling.md at main vllm-project/vllm GitHub 以上指定输出格式&#xf…