cgroup

13M initrd .config ubuntu 4.15.18

妖精的绣舞 提交于 2020-01-22 08:43:37
我靠,如此神器,我才知道!!! make localmodconfig 我还手动配个鸟!!! # # Automatically generated file; DO NOT EDIT. # Linux/x86 4.15.18 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_MMU=y CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y

Docker——Cgroup资源限制

[亡魂溺海] 提交于 2020-01-21 01:18:33
一、Cgroup (1)Docker通过 Cgroup 来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。 (2)Cgroup 是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制。 Cgroup 子系统: 1、blkio:设置限制每个块设备的输入输出控制; 2、cpu:使用调度程序为 cgroup 任务提供 cpu 的访问; 3、cpuacct:产生 cgroup 任务的 cpu 资源报告; 4、cpuset:如果是多核心的 cpu,这个子系统会为 cgroup 任务分配单独的 cpu 和内存; 5、devices:允许或拒绝 cgroup 任务对设备的访问; 6、freezer:暂停和恢复 cgroup 任务; 7、memory:设置每个 cgroup 的内存限制以及产生内存资源报告; 8、net_cls:标记每个网络包以供 cgroup 方便使用; 9、ns:命名空间子系统; 10、perf_event:增加了对每个 cgroup 的监测跟踪能力,可以监测属于某个特定的 cgroup 的所有线程及运行在特定 CPU 上的线程。 二、使用 stress 工具测试 CPU 和内存 首先使用 Dockerfile 来创建一个基于 Centos 的 stress 的工具镜像: [root@localhost ~

Docker——Cgroup资源限制

佐手、 提交于 2020-01-10 22:24:21
Docker Cgroup资源配置方法 Cgroup是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制 Docker通过Cgroup来控制容器使用的资源配额,包括 cpu、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制 Cgroup子系统 - blkio:设置限制每个块设备的输入输出控制 - cpu:使用调度程序为cgroup任务提供cpu的访问 - cpuacct:产生cgroup任务放的cpu资源报告 - cpuset:如果是多核心的cpu,这个子系统会为cgroup任务分配单独的cpu和内存 - devices:允许或拒绝cgroup任务对设备的访问 - freezer:暂停和恢复cgroup任务 - memory:设置每个cgroup的内存限制以及产生内存资源报告 - net_cls:标记每个网络包以供cgroup方便使用 - ns:命名空间子系统 - perf_event:增加了对每个group的监控跟踪的能力,可以监控属于某个特定的group的所有线程以及运行在特定cpu上的线程 使用Stress工具来测试cpu和内存 使用Dockerfile创建一个stress工具镜像 [root@localhost ~]# mkdir /opt/stress [root@localhost ~]# cd /opt/stress/ [root

cgroup介绍之为什么需要了解cgroup

≡放荡痞女 提交于 2020-01-07 08:39:31
cgroup是control group的简称,称为控制组,主要是为系统用户提供不同类型的资源分配和限制功能,是实现docker的基础。 cgroup主要的功能可以归纳如下: 1、资源限制:资源限制主要体现在进程运行过程中所需要的资源,例如cpu使用配额、内存大小、磁盘访问等 2、设置程序的优先级: 程序的执行优先级可以通过对cpu的使用以及I/O带宽的限制 3、系统资源使用统计:统计cpu运行时间,统计内存使用,统计程序wakeup次数等。 4、进程控制:对cpu进行带宽限制,可以控制进程的运行和挂起。 cgroup支持的子系统 cgroup子系统目前有下列几种: 1. devices 进程范围设备权限 2. cpuset 分配进程可使用的 CPU数和内存节点 3. cpu 控制CPU占有率 4. cpuacct 统计CPU使用情况,例如运行时间,throttled时间 5. memory 限制内存的使用上限 6. freezer 暂停 Cgroup 中的进程 7. net_cls 配合 tc(traffic controller)限制网络带宽 8. net_prio 设置进程的网络流量优先级 9. huge_tlb 限制 HugeTLB 的使用 10. perf_event 允许 Perf 工具基于 Cgroup 分组做性能检测 对于本人来说,本人最关注是红色标记的三点

Centos7 xfs分区格式化挂载

旧城冷巷雨未停 提交于 2020-01-05 11:58:18
查看所有磁盘情况: [root@ip200 ~]# fdisk -l 磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0007ffb6 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 83886079 41430016 8e Linux LVM 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-root:40.3 GB, 40273707008 字节,78659584 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O

Android 启动过程简析

时光怂恿深爱的人放手 提交于 2020-01-04 05:27:28
首先我们先来看android构架图: android系统是构建在linux系统上面的。 所以android设备启动经历3个过程。 Boot Loader,Linux Kernel & Android 系统服务。 1.基本启动过程 系统引导bootloader 加载boot.img 由bootloader 加载内核kernel 文件系统挂载,init 完成引导进程(文件解析、属性设置、启动服务、执行动作) 重要的服务进程zygote 建立Java Runtime,建立虚拟机 启动Android System Server 系统服务System Server 通过System Manager管理android的服务 桌面launcher 各个服务已经就绪,桌面程序Home在ActivityManagerService的服务过程中建立 2.init android 启动流程图: 是有kernel启动的第一个进程。 用来完成其他服务的引导进程。 init启动的过程记录在init.rc文件中。 2.1 init.rc的语法 rc文件只有在System/Core/Init/readme.txt中有描述 一共分为4种设计。 Action Commands Services Options Action & Services 暗示着一个新的语句的开始,这两个关键字后面跟着的 commands 或者

后端技术杂谈10:Docker 核心技术与实现原理

ぃ、小莉子 提交于 2019-12-29 00:23:53
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 本系列文章将整理于我的个人博客: www.how2playlife.com 该系列博文会介绍常见的后端技术,这对后端工程师来说是一种综合能力,我们会逐步了解搜索技术,云计算相关技术、大数据研发等常见的技术喜提,以便让你更完整地了解后端技术栈的全貌,为后续参与分布式应用的开发和学习做好准备。 如果对本系列文章有什么建议,或者是有什么疑问的话,也可以关注公众号【Java技术江湖】联系我,欢迎你参与本系列博文的创作和修订。 <!-- more --> 要搞懂docker的核心原理和技术,首先一定要对Linux内核有一定了解。 提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。 同样,由于项目的发展、功能的拆分以及各种奇怪的改名 PR ,让我们再次理解 Docker 的的整体架构变得更加困难。 虽然 Docker 目前的组件较多,并且实现也非常复杂,但是本文不想过多的介绍

Linux资源控制-CPU和内存

烂漫一生 提交于 2019-12-26 05:02:51
主要介绍Linux下, 如果对进程的CPU和内存资源的使用情况进行控制的方法。 CPU资源控制 每个进程能够占用CPU多长时间, 什么时候能够占用CPU是和系统的调度密切相关的. Linux系统中有多种调度策略, 各种调度策略有其适用的场景, 也很难说哪种调度策略是最优的. Linux的调度策略可以参见代码: include/linux/sched.h /* * Scheduling policies */ #define SCHED_NORMAL 0 #define SCHED_FIFO 1 #define SCHED_RR 2 #define SCHED_BATCH 3 /* SCHED_ISO: reserved but not implemented yet */ #define SCHED_IDLE 5 /* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */ #define SCHED_RESET_ON_FORK 0x40000000 Linux 系统也提供了修改调度策略的命令和系统调用接口. 调用接口请查询相关文档, 这里主要介绍一下修改调度策略的命令 - chrt. # 在一个终端中执行 sleep 1000 # 打开另一个终端 ps -ef |

深入理解 Kubernetes 资源限制:CPU

懵懂的女人 提交于 2019-12-18 22:35:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在关于 Kubernetes 资源限制的系列文章的 第一篇文章 中,我讨论了如何使用 ResourceRequirements 对象来设置 Pod 中容器的内存资源限制,以及如何通过容器运行时和 linux control group( cgroup )来实现这些限制。我还谈到了 Requests 和 Limits 之间的区别,其中 Requests 用于在调度时通知调度器 Pod 需要多少资源才能调度,而 Limits 用来告诉 Linux 内核什么时候你的进程可以为了清理空间而被杀死。在这篇文章中,我会继续仔细分析 CPU 资源限制。想要理解这篇文章所说的内容,不一定要先阅读上一篇文章,但我建议那些工程师和集群管理员最好还是先阅读完第一篇,以便全面掌控你的集群。 1. CPU 限制 正如我在上一篇文章中提到的, CPU 资源限制比内存资源限制更复杂,原因将在下文详述。幸运的是 CPU 资源限制和内存资源限制一样都是由 cgroup 控制的,上文中提到的思路和工具在这里同样适用,我们只需要关注他们的不同点就行了。首先,让我们将 CPU 资源限制添加到之前示例中的 yaml: resources: requests: memory: 50Mi cpu: 50m limits: memory: 100Mi cpu

Linux磁盘管理

让人想犯罪 __ 提交于 2019-12-18 16:44:11
df命令 1.查看文件系统硬盘使用情况,linux硬盘不能直接使用必须有挂载点。 2.df -h 是适当的显示磁盘的单位 3.df -i 查看磁盘inode信息,inode满了,即使磁盘有空间也写不进去 du命令 1.查看一个目录或文件大小,为什么用ls 和 du 查看文件的大小不一样呢。  因为磁盘存储有一个块儿的概念,最小块儿是4k,不满足4k的也按4k。 磁盘分区 1.查看磁盘命令,还可以给磁盘分区 fdisk -l 把系统中有的磁盘列出来 2.如果新插入了硬盘需要reboot重启主机 3.重启机器后可以看到新加的磁盘显示出来了。 4.fdisk /dev/sdb 给磁盘分区 5.-n 新建分区 -p 打印分区表 -d 删除分区 p 建立主分区 l 逻辑分区 6.主分区建立成功 7,逻辑分区从sdb5开始,逻辑分区一定是连续的,sdb5 6 7 磁盘格式化(只有格式化的分区才能被挂载) 1.center os支持的文件系统格式 cat /etc/filesystems 2.mount 命令查看磁盘是什么系统 / 和 boot 都是xfs [root@bogon ~]# mount|grep 'xfs' /dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)