Too young, too simple. Sometimes, naive & stupid

关于Win的虚拟化模板,vSphere上其实没什么难度,这里介绍的制作方式也不是唯一的,仅仅是提供一个制作的思路,如果有特殊需求,根据现有方案拓展即可。

Info

  • 这次的需求有一下这几点
    1. 重新封装
    2. 重新设置密码(有点歧义)
    3. IP地址需要定义
    4. SID唯一
    5. 优雅(尽量优雅)
    6. 尽量减少二次重复操作
    7. vmtools安装
  • 涉及到的组件
    1. Windows
    2. vmtools
    3. 自定义规范
阅读全文 »

存储和文件系统性能适当设置在很大程度上取决于存储的目的,I/O和文件系统性能会受下列因素的影响:

  • 数据的写入或读取模式
  • 数据重新排列与底层对齐
  • 块大小
  • 日志大小和位置
  • 记录访问时间
  • 确保数据可靠性
  • 预取数据
  • 预分配磁盘空间
  • 文件碎片
  • 资源争用
    阅读全文 »

这些内核参数有可能有助于提高系统的内存利用率。通过更改/proc文件系统中相应的文件的值来临时设置这些参数以用于测试目的。确定用例生成最佳性能的值后,可以使用sysctl命令永久设置它们。

通常通过设置一个或多个内核参数的值来配置内存使用情况。可以通过更改/proc文件系统中文件的内容来临时设置这些参数,也可以使用procps-ng软件包提供的sysctl工具永久设置这些参数。

例如,要将overcommit_memory参数临时设置为1:

阅读全文 »

有个两种方法可以保留大内存页:

  1. at boot time(启动时修改)
  2. at run time(运行时修改)

在 启动时保留会增加成功的可能性,因为内存尚未明显碎片化。但是在NUMA架构上,页面数量会自动在NUMA节点之间分配。运行时修改允许为每个NUMA节点保留大内存页。如果在引导过程中今早完成运行时预留,则内存碎片的可能性会降低。

引导时配置大内存页

要在引导时配置大内存页,请将以下参数添加到内核引导命令行:

阅读全文 »

从页表中读取地址映射很耗时且资源宝贵,因此Linux操作系统提供最近使用地址的缓存:转换检测缓冲区(TLB)。但默认的TLB只能缓存一定量的的地址映射。如果需要的地址映射不存在TLB中(TLB miss),系统仍然需要读取页表以决定物理到虚拟的内存地址映射。

由于应用程序内存需求与用来缓存地址映射的页大小之间的关系,对于内存需求小的应用程序来说,对内存需求大的程序更容易受到TLB miss造成的性能下降。因此无论何时,避免TLB miss很重要。

部分Linux提供大型转换检测缓冲区(大型TLB),可以将内存分为大片段进行管理。这使大量的地址映射能同时进行缓存,降低TLB miss的可能性,提高需要大内存的应用程序的性能。

Tuned是一个守护进程,用于udev监视连接的设备,并根据所选的配置文件静态和动态地调整系统设置。Tuned分布有许多预定义的配置文件,适用于高吞吐量,低延迟或powersave等常见用例。可以修改为每个配置文件定义的规则,并自定义如何调整特定设备。要还原特定配置文件对系统设置所做的所有更改,可以切换到另一个配置文件或停止tuned服务。

Tuned 支持 Tuned in on-deamon mode,此模式下,tuned会应用设置并退出。要启用这种模式,在/etc/tuned/tuned-main.conf文件中设置deamon = 0

静态调优主要包括预定义的sysctlsysfs设置以及一些配置工具的一次性激活。tuned还根据监控信息动态监控系统组件的使用并调整系统设置。

动态调整考虑了在任何给定系统的整个正常运行时间内各种系统组件的使用方式不同。例如,阴干驱动器在启动和登录期间大量使用,但稍后再用户可能主要使用web浏览器或电子邮件客户端几乎不适用,类似地,CPU和网络设备在不同时间使用特点也不同。tuned监控这些组件的活动并对其使用的变化做出反应。

典型的,办公室工作站。大多数情况下,以太网网络接口不是很活跃。每隔一段时间只有少量的电子邮件进出,或者可能会加载一些网页。对于那些类型的负载,网络接口不必全速运行,就像默认情况下那样。tuned有一个用于网络设备的监控和调整插件,可以检测到这活动,然后自动降低网络速率,通常为了降低功耗。如果界面上的活动增减了很长一段时间。例如正在下载,tuned检测到这一点并将接口速率设置为最大,以便活动级别如此之高时提供最佳性能。此原则也用于CPU和硬盘的其他插件。

动态tuned默认是禁用的,可以更改/etc/tuned/tuned-main.conf文件中的dynamic_tuning1来启用。

阅读全文 »

物理内存管理区块称为页,每个页的物理位置都映射到一个虚拟位置以便处理器能够访问内存。这种映射存储于一个叫做页表的数据结构中。

默认情况下,一个页4KB,由于页的默认大小非常小,因此需要很多页来管理大量的内存。但是,页表只能存储有限的地址映射,增加其存储地址映射的数量既昂贵又困难,因为要考虑到将性能保护顶级保持在内存需求的范围内。

Linux通过静态大型页来给每个页管理大内存的能力。静态大型分页可以配置到1GB大小。但是很难对其进行手动管理,必须在启动时就分配好。

透明大分页很大程度上使之余静态大页面的一个自动选择。透明大型页大小为2MB且默认启动。它们有时会干扰对延迟敏感的应用,因此常常在延迟严重时被禁用。

可以使用tuna程序调整调度程序可调参数,调整线程优先级,IRQ处理程序以及隔离CPU核心和套接字,tuna旨在降低执行调优任务的复杂性。

用tuna查看系统

可以使用tuna显示系统当前正在发生的情况。

查看当前的策略和优先事项,使用tuna --show_threads命令:

阅读全文 »

透明大内存页(THP)是HugeTLB的替代解决方案。使用THP,内核会自动为进程分配大内存页,因此不需要手动预留大内存页。

THP功能有两种操作模式:系统范围和每个进程。当在系统范围内启用THP时,内核会尝试在可能分配大页面时,内核会尝试在可能分配大页面时为任何进程分配大页面,并且该进程使用大的连续虚拟内存区域。如果每个进程启用THP,则内核仅将大页面分配给madvise()系统调用指定的各个进程的内存区域。

注意,THP功能仅支持2MB页面。默认情况下启用透明大页面,要检查状态,运行:

1
cat /sys/kernel/mm/transparent_hugepage/enabled

要启用透明的大页面,请运行:

阅读全文 »

红帽企业版 Linux 提供了大量工具来协助管理员配置系统。本章概述了可用的工具并提供了使用它们在红帽企业版 Linux 7 中解决与处理器相关的性能问题的实例。

配置内核滴答记号时间

默认情况下,红帽企业版 Linux 7 使用无时钟内核,它不会中断空闲 CPU 来减少用电量,并允许较新的处理器利用深睡眠状态。

红帽企业版 Linux 7 同样提供一种动态的无时钟设置(默认禁用),这对于延迟敏感型的工作负载来说是很有帮助的,例如高性能计算或实时计算。

要启用特定内核中的动态无时钟性能,在内核命令行中用 nohz_full 参数进行设定。在 16 核的系统中,设定 nohz_full=1-15 可以在 1 到 15 内核中启用动态无时钟内核性能,并将所有的计时移动至唯一未设定的内核中(0 内核)。这种性能可以在启动时暂时启用,也可以在 /etc/default/grub 文件中永久启用。要持续此性能,请运行 grub2-mkconfig -o /boot/grub2/grub.cfg 指令来保存配置。

阅读全文 »