1.分区为 4K 对齐以获得最佳存储性能
如果分区不是4K对齐的,这对于单个磁盘来说没什么大不了的,但是对于共享存储来说,共享存储中的一个LUN实际上是跨多个不同磁盘条带化的;
因此,来宾操作系统的读取或写入将导致存储阵列上的 I/O 翻倍(未对齐的分区将跨越条带上的块,因此阵列将从 2 个条带读取或写入;通常只应读取单个条带)
对于一两个虚拟机来说,这不是什么大问题,但是当数百个虚拟机的 I/O 错位时,影响可能会变得很糟糕。
例如:parted 命令很容易在不注意的情况下创建未对齐的分区。建议使用 fdisk 和 gdisk 工具创建分区,没有这个问题:
(parted) mkpart 主要 0 5gb
警告:生成的分区未正确对齐以获得最佳性能。
使用 parted 命令创建分区的正确方法是在创建后使用 align-check 命令验证对齐:
(分开) mkpart 主要 0% 100%
(分开的)对齐检查
对齐类型(最小/选择)[最佳]/最小?
分区号?1
1 对齐
2.安装和使用 VMWare 工具
这是必然的,但是还有很多Linux虚拟机没有安装,很多运维人员还认为VMware-tools是“VMware Workstation上的那种”,所以抵制安装;
但实际上ESXi的VMware Tools也是用来添加“准虚拟化网络”和“SCSI适配器”的驱动装好系统分好盘如何4k对齐,以及显卡驱动,支持来自
vCenter 正常关闭和重新启动虚拟机
不用说,一定要安装!
[root@localhost ~]# yum -y install open-vm-tools
3.尽可能不要安装桌面版
首先,不安装桌面版服务器几乎已经成为“业界共识”(不安装桌面版可以节省大量磁盘空间)
如果您安装了桌面版本(例如:Xorg、KDE、GNOME 等),桌面屏幕保护程序会导致性能问题,而运行“命令行模式”可以节省大量内存和 CPU 周期
4.定时任务 crontab 的随机延迟
系统默认有一些“计划任务”,如:日志轮换、mlocate数据库索引更新、系统监控任务sar...等,外加自定义任务;
这些任务通常是 I/O 密集型的,我们可以在这些任务中引入“随机延迟时间”来帮助分散系统负载
bash中有一个环境变量$RANDOM,它随机生成一个0到32767之间的随机数;
比如我可以接受一个任务随机等待最多不超过5分钟,可以计算32767÷300(秒)=109
然后在 crontab 的作业文件(/etc/cron.d 或 /etc/cron.daily)中执行此操作:
/bin/sleep $((RANDOM/109)) # 在文件第2行添加随机延迟0-300秒
5.虚拟机应该使用 NTP 而不是 VMware Tools 来同步时间
NTP 是标准的网络时间同步协议,使用 VMware Tools 可能会由于虚拟化开销和生命周期事件而引入一些额外的系统因素,这些因素会影响计时机制并导致虚拟机内的时间漂移;
时间准确性很重要,不仅对系统日志和crontab程序的准确性,加密操作也取决于系统时间
参考链接:
6.设置磁盘调度算法为“noop”
noop 的意思是“没有优化”,没有优化,因为 ESXi 本身会对 I/O 进行排序和优化;
操作系统应该把所有的I/O请求交给hypervisor(虚拟机管理程序)进行调度,而不是自己去优化,这样可能会破坏更多的“ESXi全局优化”
在 /etc/default/grub 添加:
GRUB_CMDLINE_LINUX=“crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap lift=noop rhgb quiet”
并重新生成grub.cfg,重启生效
[root@localhost ~]# grub2-mkconfig >/boot/grub2/grub.cfg
[root@localhost ~]# 重启
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
[noop] 截止日期cfq
7.要收集虚拟机性能数据,从 vSphere 收集,而不是从操作系统收集
因为从虚拟机内部测量性能数据可能不准确,尤其是当 CPU 被“过度使用”时,即多个虚拟机同时抢占 CPU
在使用操作系统的性能测量工具时装好系统分好盘如何4k对齐,操作系统无法知道 ESXi 的 CPU 开销;所以使用 vSphere 的性能测量工具
8. 虚拟机启动热添加功能,不要给虚拟机分配太多资源
许多客户喜欢为他们的虚拟机配置“性能强大的 16 核 32GB”,即使虚拟机只是运行静态 HTML 页面;
正确的方法是:
1.监控 vCenter 中的 CPU 和 RAM 利用率
2.当虚拟机确实需要更多资源时,增加配置
这实际上会提高性能,因为 ESXi 可以更轻松地调度具有更少 CPU 的虚拟机,并且如果虚拟机磁盘更小,它还可以节省交换文件磁盘空间和 vMotion 时间,因此最好不要过度使用。
用“性能”
9.禁用文件系统访问时间更新
文件系统跟踪文件的创建、修改和访问时间;更新上次访问时间的操作变成了“额外的磁盘写入” 根据 IBM 的说法:“昂贵的 I/O 操作”
如果不需要这个功能,可以选择关闭;当然,您可能不会在单个 VM 上看到性能提升,但您会在数百个 VM 上看到显着的性能提升
要禁用访问时间更新,请添加到 /etc/fstab 中的文件系统条目:
/dev/mapper/storage-data /data xfs 默认值,noatime 0 0