通过slice调优应用程序的cpu使用
1. 创建并编辑文件vim /etc/systemd/system/system-frontend.slice
[Unit]
Description=frontend Slice ##名称
[Slice]
CPUQuota=50% ##使用50%的CPU配额
CPUAccounting=yes ##启用CPU计数
2.创建目录 mkdir /etc/systemd/system/frontend.service.d
3.创建并编辑文件 vim /etc/systemd/system/frontend.service.d/10-slice.conf
[Service]
Slice=system-frontend.slice ##指向system-frontend.slice
4. 装载 systemctl daemon-reload
5. 重启 systemctl restart frontend
6. 确认 CGroup 正常
systemctl status frontend | grep CGroup
systemd-cgls /system.slice/system-frontend.slice
7. 安装httpd yum install httpd
8. 启动httpd systemctl enable httpd --now
9. 查看cpu分配 tuna -t httpd -P
10. 创建目录 mkdir /etc/systemd/system/httpd.service.d
11. 编辑配置文件vim /etc/systemd/system/httpd.service.d/10-CPUAffinity.conf
[Service]
CPUAffinity=0 ##CPU亲和性
12. systemctl daemon-reload ##装载
13. systemctl restart httpd.service ##重启http服务
14. tuna -t httpd -P ##查看http服务的CPU使用状态
15. mkdir /etc/systemd/system/rngd.service.d
16. vim /etc/systemd/system/rngd.service.d/20-batch.conf
[Service]
CPUSchedulingPolicy=batch ##CPU调度策略
CPUSchedulingPriority=0 ##CPU计划优先级
17. systemctl daemon-reload ##装载
18. systemctl restart rngd ##重启 rngd
19. ps o pid,cls,rtprio,comm $(pidof rngd) ##查看rngd状态
挂载一个文件目录
1. mkdir /etc/tuned/virt-guest-lab ##增加目录virt-guest-lab
2. yum install -y vim
3. vim /etc/tuned/virt-guest-lab/tuned.conf
[main]
summary=Custom tuned profile
include=virtual-guest
[disk]
devices=vdb
readahead=4096 sectors
4. tuned-adm profile virt-guest-lab ##使virt-guest-lab配置生效
5. blockdev --getra /dev/vdb ##确认VDB的扇区数目
6. parted /dev/vdb mklabel gpt ##创建分区标签
7. parted /dev/vdc mklabel gpt ##创建分区标签
8. parted --align=opt /dev/vdb mkpart primary xfs 0% 100% ##创建主分区5GB
9. parted --align=opt /dev/vdc mkpart primary xfs 0% 1GiB ##创建主分区1GiB
10. partx -uv /dev/vdb ##强制重新加载分区表
11. partx -uv /dev/vdc ##强制重新加载分区表
12. mkfs.xfs -i size=512 -b size=4096 -l logdev=/dev/vdc1 /dev/vdb1 ##格式化
13. mkdir /bigfiles ##创建目录
14. vim /etc/fstab ##增加挂载点
/dev/vdb1 /bigfiles xfs relatime,logdev=/dev/vdc1 0 0
15. mount /dev/vdb1 ##挂载硬盘
16. findmnt --target /bigfiles ##查看挂载后目录
调整内存大页
1. mkdir /etc/tuned/enterprise-database ##增加enterprise-database的配置文件
2. vim /etc/tuned/enterprise-database/tuned.conf ##创建配置文件
[root@serverb ~]# cat /etc/tuned/enterprise-database/tuned.conf
[main]
include = throughput-performance ##名称
[vm]
# Disabling transparent huge pages
transparent_hugepages = never ##关闭透明大页
[sysctl]
# Allocating 256 MiB of huge pages (256 MiB / 2 MiB page = 128)
vm.nr_hugepages = 128 ##分配大小
# Using swap as little as possible
vm.swappiness = 1 ##交换区设置较小
# Starting background writeback at 3% ##设置后台回写
vm.dirty_background_ratio = 3
# The process generating dirty data starts writeback at 15% ##设置脏数据回写
vm.dirty_ratio = 15
3. systemctl status memload.service ##查看状态失败
4. vim /etc/tuned/enterprise-database/tuned.conf ##配置文件中增加允许内存过量提交
# Always accept memory overcommit
vm.overcommit_memory = 1
5. systemctl set-property memload.service MemoryLimit=512M ##设置内存限制参数
6. mkdir /etc/systemd/system/memload.service.d ##增加内促服务
7. vim /etc/systemd/system/memload.service.d/00-limit.conf ##可以手动设置内存限制参数
[Service]
MemoryLimit=512M
8. systemctl daemon-reload ##重新加载
9. yum install numactl ##安装numa
10. vim /etc/systemd/system/memload.service ##增加numa启动位置
[Service]
ExecStart=/bin/numactl --interleave all -- /usr/local/bin/memload 40G
11. systemctl daemon-reload ##重新加载
12. tuned-adm profile enterprise-database ##启用新的配置文件
13. systemctl restart postgresql ##重启PG库
14. systemctl start memload ##启用memload
15. systemctl status memload ##查看memload状态
16. grep Huge /proc/meminfo ##查看内存大页状态
17. numastat -c memload ##确认所有numa节点使用了新策略