做机器设备的网站软件开发外包价格
2026/2/21 2:47:40 网站建设 项目流程
做机器设备的网站,软件开发外包价格,山西省住房和城乡建设厅网站,网络规划设计师书籍文章目录 一、资源控制1.1 cgroups1.2 pidstat1.3 stress1.4 实操1.4.1 对内存进行控制1.4.2 对 CPU 进行控制 二、LXC 容器2.1 LXC 认识2.2 LXC 命令2.3 安装 LXC2.4 LXC 容器实操 一、资源控制 1.1 cgroups cgroups#xff08;Control Groups#xff09;是 Linux 内核提供…文章目录一、资源控制1.1 cgroups1.2 pidstat1.3 stress1.4 实操1.4.1 对内存进行控制1.4.2 对 CPU 进行控制二、LXC 容器2.1 LXC 认识2.2 LXC 命令2.3 安装 LXC2.4 LXC 容器实操一、资源控制1.1 cgroupscgroupsControl Groups是 Linux 内核提供的一种机制这种机制可以根据需求把一系列系统任务及其子任务整合或分隔到按资源划分等级的不同组内从而为系统资源管理提供一个统一的框架。简单说cgroups 可以限制、记录任务组所使用的物理资源。本质上来说cgroups 是内核附加在程序上的一系列钩子hook通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。cgroups 的用途Resource limitation限制资源使用例内存使用上限/CPU 的使用限制Prioritization优先级控制例CPU 利用/磁盘 IO 吞吐Accounting一些审计或一些统计Control挂起进程/恢复执行进程cgroups 可以控制的子系统子系统功能说明blkio对块设备的 IO 进行限制cpu限制 CPU 时间片的分配cpuacct生成 cgroup 中的任务占用 CPU 资源的报告与 cpu 挂载在同一目录cpuset给 cgroup 中的任务分配独立的 CPU多处理器系统和内存节点devices限制设备文件的创建和对设备文件的读写freezer暂停/恢复 cgroup 中的任务memory对 cgroup 中的任务的可用内存进行限制并自动生成资源占用报告perf_event允许 perf 观测 cgroup 中的 tasknet_clscgroup 中的任务创建的数据报文的类别标识符这让 Linux 流量控制器tc 指令可以识别来自特定 cgroup 任务的数据包并进行网络限制hugetlb限制使用的内存页数量pids限制任务的数量rdma限制 RDMA 资源Remote Direct Memory Access远程直接数据存取1.2 pidstatpidstat 是 sysstat 的一个命令用于监控全部或指定进程的 CPU、内存、线程、设备 IO 等系统资源的占用情况。pidstat 第一次采样显示自系统启动开始的各项统计信息后续采样将显示自上次运行命令后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。语法pidstat[选项][时间间隔][次数]参数参数说明-u默认参数显示各进程的 CPU 使用统计-r显示各进程的内存使用统计-d显示各进程的 IO 使用情况-p指定进程号ALL 表示所有进程-C指定命令-l显示命令名和所有参数安装Ubuntu 安装# 卸载aptremove sysstat -y# 安装aptinstallsysstat -yCentOS 安装# 卸载yum remove sysstat -y# 安装yuminstallsysstat -y1.3 stressstress 是 Linux 的一个压力测试工具可以对 CPU、Memory、IO、磁盘进行压力测试。语法stress[OPTION[ARG]]参数参数说明-c, --cpu N产生 N 个进程每个进程都循环调用 sqrt 函数产生 CPU 压力-i, --io N产生 N 个进程每个进程循环调用 sync 将内存缓冲区内容写到磁盘上产生 IO 压力。通过系统调用 sync 刷新内存缓冲区数据到磁盘中以确保同步。如果缓冲区内数据较少写到磁盘中的数据也较少不会产生 IO 压力。在 SSD 磁盘环境中尤为明显很可能 iowait 总是 0却因为大量调用系统调用 sync导致系统 CPU 使用率 sys 升高-m, --vm N产生 N 个进程每个进程循环调用 malloc/free 函数分配和释放内存–vm-bytes B指定分配内存的大小–vm-keep一直占用内存区别于不断的释放和重新分配默认是不断释放并重新分配内存-d, --hdd N产生 N 个不断执行 write 和 unlink 函数的进程创建文件写入内容删除文件–hdd-bytes B指定文件大小-t, --timeout N在 N 秒后结束程序-q, --quiet程序在运行的过程中不输出信息安装Ubuntu 安装# 卸载aptremove stress -y# 安装aptinstallstress -yCentOS 安装# 卸载yum remove stress -y# 安装yuminstallstress -y1.4 实操1.4.1 对内存进行控制cgroupv1 操作创建内存控制组进入/sys/fs/cgroup/memory目录创建test_memory目录系统会自动生成内存限制相关配置文件cd/sys/fs/cgroup/memorymkdirtest_memory配置内存上限限制为 20M# 计算20M对应的字节数expr20\*1024\*1024# 输出20971520# 设置内存上限echo20971520test_memory/memory.limit_in_bytes启动内存压力进程占用50M内存stress -m1--vm-bytes 50M查看进程PID并绑定到控制组# 查看stress进程PID假设为62518pidstat -r -C stress -p ALL1# 将进程加入控制组echo62518test_memory/tasks效果进程因内存超限被终止。1.4.2 对 CPU 进行控制cgroupv1 操作创建CPU控制组cd/sys/fs/cgroup/cpumkdirtest_cpu限制CPU使用率为30%公式cfs_quota_us/cfs_period_us30000/100000echo30000test_cpu/cpu.cfs_quota_us启动CPU压力进程并绑定假设PID为62577# 启动100%CPU占用进程stress -c1# 绑定进程到控制组echo62577test_cpu/tasks效果CPU使用率被限制在30%。至此成功的模拟了对内存和 CPU 的使用控制而 Docker 本质也是调用这些的 API 来完成对资源的管理只不过 Docker 的易用性和镜像的设计更加人性化所以 Docker 才能风靡全球而Docker 对资源控制对比这种控制可以说简单不止一倍。二、LXC 容器2.1 LXC 认识LXCLinuX ContainersLinux 容器一种操作系统层虚拟化技术为 Linux 内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器Container内含应用软件本身的代码以及所需要的操作系统核心和库。透过统一的名字空间和共享 API 来分配不同软件容器的可用硬件资源创造出应用程序的独立沙箱运行环境使得 Linux 用户可以容易的创建和管理系统或应用容器。LXC 是最早一批真正把完整的容器技术用一组简易使用的工具和模板来极大的简化了容器技术使用的一个方案。LXC 虽然极大的简化了容器技术的使用但比起直接通过内核调用来使用容器技术其复杂程度其实并没有多大降低因为我们必须要学会 LXC 的一组命令工具且由于内核的创建都是通过命令来实现的通过批量命令实现数据迁移并不容易。其隔离性也没有虚拟机那么强大。后来就出现了 docker所以从一定程度上来说docker 就是 LXC 的增强版。2.2 LXC 命令常用命令命令功能格式lxc-checkconfig检查系统是否满足容器使用要求lxc-checkconfiglxc-create创建 LXC 容器lxc-create -n NAME -t TEMPLATE_NAME [-- template-options]lxc-start启动容器lxc-start -n NAME -dlxc-ls列出所有容器-f 显示常用信息lxc-ls -flxc-info查看容器详细信息lxc-info -n NAMElxc-attach进入容器执行命令lxc-attach --nameNAME [-- COMMAND]lxc-stop停止容器lxc-stop -n NAMElxc-destroy删除停机状态的容器lxc-destroy -n NAME2.3 安装 LXCUbuntu 安装# 安装主程序、模板及网桥工具aptinstalllxc lxc-templates bridge-utils -y# 检查服务运行状态systemctl status lxcCentOS 安装# 配置 EPEL 源yum -yinstallepel-release# 安装依赖及主程序yum -yinstalllxc lxc-templates bridge-utils lxc-libs libcgroup libvirt lxc-extradebootstrap# 启动服务systemctl start lxc systemctl start libvirtd# 检查服务状态systemctl status lxc systemctl status libvirtd2.4 LXC 容器实操检查 LXC 服务状态systemctl status lxc正常状态输出显示active (exited)表示服务已就绪。检查系统功能支持lxc-checkconfig核心检查项NamespacesUTS、IPC、PID 等、Control groups 均需显示enabled确保容器隔离与资源控制功能可用。查看容器模板LXC 提供多种系统模板存储路径为/usr/share/lxc/templates/ls/usr/share/lxc/templates/常见模板lxc-ubuntu、lxc-centos、lxc-debian、lxc-alpine 等。创建 LXC 容器Ubuntu 系统创建 Ubuntu 容器# -t 指定模板-n 指定容器名-r 指定系统版本-a 指定架构lxc-create -t ubuntu -n lxchost1 -- -r xenial -a amd64CentOS 系统创建 CentOS 容器lxc-create -t centos --name centos1Ubuntu 系统创建 CentOS 容器需用 download 模板lxc-create --name centos7 --templatedownload -- --distcentos --release7--archx86_64创建成功提示默认用户ubuntu密码ubuntu容器存储路径为/var/lib/lxc/容器名根文件系统路径为/var/lib/lxc/容器名/rootfs。查看容器列表lxc-ls -f输出说明显示容器名称、状态STOPPED/RUNNING、IP 地址等信息。启动容器# -d 表示后台运行lxc-start -n lxchost1 -d# 验证启动状态lxc-ls -f启动成功容器状态变为RUNNING并分配内网 IP如 10.0.3.248。查看容器详细信息lxc-info -n lxchost1输出内容包含容器 PID、IP 地址、CPU/内存/磁盘使用量等。进入容器SSH 方式# 用户名 ubuntu密码 ubuntuIP 为容器分配的内网 IPsshubuntu10.0.3.248容器内验证执行ip addr、df -h、ps -ef等命令可见容器拥有独立的网络、文件系统和进程空间。容器外执行命令无需进入容器直接在宿主机执行容器内命令# --clear-env 清除环境变量执行 echo 命令lxc-attach -n lxchost1 --clear-env --echoHello bit停止容器lxc-stop -n lxchost1# 验证停止状态lxc-ls -f删除容器需先停止lxc-destroy -n lxchost1# 验证删除结果lxc-ls -f

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询