当前位置: 首页 > news >正文

网站设计作用品牌网是什么网站

网站设计作用,品牌网是什么网站,台州商务网站,app制作开发费用目录 一、RootFs1. Docker 镜像与文件系统层2. RootFs 与容器隔离的意义 二、Linux Namespace1. 进程命名空间1.1 lsns 命令说明1.2 查看“祖先进程”命名空间1.3 查看当前用户进程命名空间 2. 容器进程命名空间2.1 查看容器进程命名空间列表2.2 容器进程命名空间的具体体现 三… 目录 一、RootFs1. Docker 镜像与文件系统层2. RootFs 与容器隔离的意义 二、Linux Namespace1. 进程命名空间1.1 lsns 命令说明1.2 查看“祖先进程”命名空间1.3 查看当前用户进程命名空间 2. 容器进程命名空间2.1 查看容器进程命名空间列表2.2 容器进程命名空间的具体体现 三、cgroups1. cpu 子系统1.1 CFS (Completely Fair Scheduler)1.2 RT (Real-time Scheduler)1.3 示例 2. cpuset 子系统3. cpuacct 子系统4. memory 子系统示例 5. blkio 子系统6. devices 子系统7. freezer 子系统8. net_cls 子系统9. net_prio 子系统10. perf_event11. hugetlb 总结 一、RootFs 在传统的 Linux 系统中rootfs根文件系统就是系统的“根”目录一般位于 /其下包含 /bin、/dev、/etc 等常见目录结构。 在容器中则通过镜像Image**容器层Container Layer**的组合来提供容器自身的根文件系统这个容器的根文件系统就是rootfs与宿主机的 rootfs 相对隔离。 1. Docker 镜像与文件系统层 **镜像Image**由多层只读层read-only layers构成利用了 Union FS 或 OverlayFS 等联合文件系统技术。**容器层Container Layer**是该镜像之上的可写层read-write layer。容器运行时对文件的修改都会写入到这个容器层中不会影响只读层的内容。 2. RootFs 与容器隔离的意义 当启动一个容器时容器看到的“根文件系统”并非与宿主机相同而是来自镜像 容器层组合形成的 rootfs。对于容器内部的进程来说/ 就是容器自身的根目录与宿主机的 / 相互独立尽管底层还是同一个内核。这种文件系统级别的隔离为容器提供了和宿主机隔离的外观不同容器之间也不会直接污染彼此的文件系统。 二、Linux Namespace Linux Namespace 是容器隔离的核心机制之一。Namespace 的主要作用是将系统资源进行“分名字空间”隔离如进程PID、网络NET、文件系统挂载MOUNT、用户USER、IPC 等从而让容器“以为”它拥有自己独立的环境。 1. 进程命名空间 1.1 lsns 命令说明 lsns 是 Linux 提供的一个查看系统中命名空间信息的命令。可以用 lsns 查看当前系统里所有命名空间如 lsns -t pid 可以查看 PID 命名空间lsns -t net 查看网络命名空间等。常见列示信息包含 NS TYPE: 命名空间类型如 pid、net、mnt、uts、ipc、user 等。NSID: 命名空间 ID一般可以在 /proc/pid/ns 路径中看到相应符号链接。PID: 对应的进程号。Command: 该命名空间对应进程的启动命令。 1.2 查看“祖先进程”命名空间 在 Linux 中每个进程都有对应的命名空间引用指针。如果想要查看某个进程比如 PID1 或者宿主机上的某个 PID的命名空间可以通过 列出系统所有命名空间 sudo lsns --output0allls -l /proc/PID/ns这会展示对应的符号链接比如 lrwxrwxrwx 1 root root 0 Jan 1 00:00 /proc/1/ns/pid - pid:[4026531836]这样就能看到 pid:[4026531836] 对应的命名空间 ID。通常 PID1系统的 init 或 systemd会在宿主机的最初始 namespace 中。 1.3 查看当前用户进程命名空间 直接对你当前 shell 的 PID 进行查看 echo $$ # 假设输出为 12345 ls -l /proc/12345/ns就能看到你当前 shell 进程所使用的 namespace。 2. 容器进程命名空间 容器之所以能够让其内部进程彼此隔离主要原因之一是 Docker或其他容器运行时在启动容器进程时会为该进程创建或加入单独的命名空间PID/NET/IPC/UTS 等。 2.1 查看容器进程命名空间列表 假设我们有一个正在运行的容器可以先找到容器对应的“容器进程” docker ps docker inspect container_id | grep Pid然后拿到对应的 PID比如是 23456。接着 ls -l /proc/23456/ns就能看到容器进程使用的所有 namespace 绑定信息。 2.2 容器进程命名空间的具体体现 PID Namespace 容器内部查看到的进程号PID从 1 开始而在宿主机上这个容器的进程是一个完全不同的 PID 值。容器内部的“PID1”通常是容器内的 init 进程。Network Namespace 容器有自己单独的网卡配置如 eth0与宿主机是隔离的。通过容器的 network namespace可以将容器网络与宿主机网络解耦或进行端口映射。Mount Namespace 容器有自己挂载的文件系统视图比如 / 是容器自己的 rootfs。与宿主机的挂载点不同。IPC Namespace 容器之间的共享内存、消息队列等 IPC 机制互不影响。UTS Namespace 容器可以有自己独立的 hostname。容器内 hostname 与宿主机可以不同。 借助这些命名空间容器可以呈现一个与宿主机几乎隔离的操作系统视图。 三、cgroups cgroups (control groups) 是 Linux 提供的另一项关键特性用于对系统资源进行“配额、限制、监控、隔离”。Docker 容器通过将容器进程加入到相应的 cgroup来限制其对 CPU、内存、IO 等资源的使用或进行统计。 cgroups 是一个可插拔的框架常见的子系统包括 cpucpusetcpuacctmemoryblkiodevicesfreezernet_clsnet_prioperf_eventhugetlb 等。 下面分别简要介绍这些子系统在容器隔离中的作用或使用示例。 1. cpu 子系统 cpu 子系统主要用于限制或分配 CPU 时间片给某个 cgroup 内进程。让我们来看看常见的调度器和示例。 1.1 CFS (Completely Fair Scheduler) Linux 默认的 CPU 调度器。可通过 cpu.shares、cpu.cfs_period_us、cpu.cfs_quota_us 等文件对 CPU 使用进行相对或绝对限额设置。例如要限制某个 cgroup 的进程只能使用“相当于一个 CPU 核心”的计算量可以在 cpu.cfs_period_us 100000默认100ms和 cpu.cfs_quota_us 100000 之间做设置这样就大致等价于 1 core。 1.2 RT (Real-time Scheduler) RT 调度针对实时任务可以用来做实时优先级的资源控制。不过容器中常见应用较少直接动用 RT 调度。 1.3 示例 在手动配置 cgroup 时可能会 创建目录mkdir /sys/fs/cgroup/cpu/test_cgroup写入一些限制echo 200000 /sys/fs/cgroup/cpu/test_cgroup/cpu.cfs_quota_us echo 100000 /sys/fs/cgroup/cpu/test_cgroup/cpu.cfs_period_us表示此 cgroup 一次调度周期内100ms只能用 200ms CPU 时间相当于可以使用 2 核的 CPU 时间。把某个进程写入 tasksecho pid /sys/fs/cgroup/cpu/test_cgroup/tasks该进程的 CPU 使用就受限于此组的规则。 Docker 在启动容器时会自动做这些事情如 --cpus、--cpuset-cpus 等参数。 2. cpuset 子系统 cpuset 子系统允许指定某些 CPU 核、某些内存节点给特定的 cgroup。比如可以指定容器只能在 CPU 0 和 1 上运行或者只能从 NUMA 节点0分配内存。Docker 对应的参数是 --cpuset-cpus0-1 之类。 3. cpuacct 子系统 cpuacct 用于统计某个 cgroup 内进程的 CPU 使用情况用户态、内核态占用总时长只做统计不做限制。Docker 可以通过这个子系统查看容器的 CPU 使用状态。 4. memory 子系统 memory 子系统用于限制和统计进程的内存使用包括物理内存和 swap。 常见的控制文件 memory.limit_in_bytes该 cgroup 最大物理内存限制。memory.memsw.limit_in_bytes物理内存 swap 限制如果启用 swap 记账。 通过设置这些值可防止某些进程用光系统所有内存。 示例 创建 cgroupmkdir /sys/fs/cgroup/memory/test_mem设置限制echo 524288000 /sys/fs/cgroup/memory/test_mem/memory.limit_in_bytes # 500MB将进程加入echo pid /sys/fs/cgroup/memory/test_mem/tasks这样该进程占用内存在超过 500MB 时可能会触发 OOMOut Of Memory动作。 5. blkio 子系统 blkio (Block IO) 用于限制进程的块设备 IO 速率比如磁盘读写速度。可以设置读取速率、写入速率的限制。对需要在容器层面做 IO QoS 的场景很有帮助。 6. devices 子系统 devices 子系统可以控制某个 cgroup 中的进程可以访问哪些设备、只能读或写、或完全禁止访问等。容器通常为了安全会只允许访问少数必要设备比如 /dev/null、/dev/random 等。 7. freezer 子系统 freezer 子系统提供了把 cgroup 内进程“冻结/解冻”的功能。可以把某个 cgroup 的状态设置为 FROZEN则该组内所有进程都挂起等到切回 THAWED 才继续运行。 8. net_cls 子系统 net_cls 可以为网络数据包打上一个分类标识classid配合 tctraffic control做网络流量整形或带宽控制。 9. net_prio 子系统 net_prio 子系统可以为 cgroup 中的进程设置网络优先级priority从而在同一台宿主机上的容器间做网络流量优先级区分。 10. perf_event perf_event 子系统方便对一组进程进行性能计数器performance counter的监控比如 CPU cycle、cache miss 等。 11. hugetlb hugetlb 用于管理大页内存Huge Pages。可以限制某个 cgroup 使用多少大页内存。 总结 通过 RootFs、Linux Namespace 和 cgroups 的巧妙组合Docker 容器能够在同一个 Linux 内核上运行却拥有与宿主机和其他容器相对独立的文件系统、进程空间、网络环境、IPC、以及严格的资源配额/限制。这为容器提供了接近虚拟机的隔离性同时也保留了“共享同一个内核”的优势启动速度快、资源开销小等。 RootFs让容器拥有独立的文件系统视图与宿主机的根目录区分开来。Linux Namespace PID Namespace 让容器内部进程有各自的 PID 视图。Network Namespace 让容器拥有独立的虚拟网卡、网络栈。Mount Namespace 让容器控制自己的挂载点。UTS、IPC、User Namespace 等也实现其他层面的隔离。 cgroups 对 CPU、内存、IO 等进行资源限制和监控。通过 Docker 参数可很方便地指定容器的资源上限、优先级。 这些机制共同构成了 Docker 容器环境下的核心隔离和限制手段使得容器能够安全、稳定地在生产环境中运行各种应用。 参考 0voice · GitHub
http://www.tj-hxxt.cn/news/137525.html

相关文章:

  • 网站建设电话销售不被挂断为什么网站的备案号在备案网站查询不到
  • 免费建站网站网页长沙债务优化公司
  • 网站建设中 动态图片长春公司网站模板建站
  • 保健品网站建设案例佛山市seo推广哪家好
  • 免费企业官网模板天蝎网站推广优化
  • 电商商城网站开发深圳网站建设工作
  • 江西省城住房和城乡建设厅网站学做网站视频论坛
  • 网站cms系统哪个好用吗做网站在图片里加文字
  • 曲阜网站建设百度开户wordpress购物车保存
  • 海伦网站建设济南网站建设开发
  • 做团购网站怎样赚钱网站建设对企业很重要
  • 网站系统建设系广告经营者网站建设的简介
  • 网站建设网站制作公司哪家好做电商网站的步骤
  • 怎么让网站文章被收录番禺论坛网站建设
  • 做网站和APP需要注册公司吗学网页制作需要学什么
  • 建设银行网站解除绑定wordpress 标签云插件下载
  • 北京做网站公司有哪些da面板安装wordpress
  • 金湖网站建设如何进行推广
  • vue做网站前端我想接app注册推广单
  • 如何申请免费网站泗县住房和城乡建设局网站
  • 企业网站开发使用方法昆山移动网站建设
  • 杭州网站建设优化案例hao123文件在哪里
  • 电脑建网站软件用什么程序做网站好
  • wordpress专题模板企业网站怎么优化
  • 经常做飞机网站rp网站自动跳转图片怎么做
  • 做词频云图的网站怎么查有做网站的公司有哪些
  • wordpress多站共享授权码wordpress 云主机名
  • 网站建设投资风险分析用户体验设计原则
  • 做网站 宁波数据分析和网站开发
  • 哈尔滨站建筑面积xp花生壳做自己的网站