操作体系参数统共跟三项有关:CPU、Memory、Disk
目录
一、CPU
二、Memory
三、Disk
一、CPU
Dynamic frequency scaling(DFS)
Dynamic Frequency Scaling(DFS)是一种CPU动态节能技能,旨在低落服务器功耗。通过选择体系空闲状态差别的电源管理计谋,DFS 可以实现差别程度的功耗低落,然而,低功耗计谋大概会导致 CPU 唤醒速度减慢,进而影响体系性能。
界说及原理:DFS 通过调解处置惩罚器的工作频率来实现节能目标。具体来说,当体系负载较低或处于空闲状态时,DFS 会低落 CPU 的时钟频率,以减少能耗和热量产生。反之,当体系负载较高时,DFS 会提高 CPU 的时钟频率,以提供更高的性能。
DFS的五种模式:
1.performance(TiDB推荐,长期最高)
特点:提供最高的 CPU 性能,不思量功耗和能效。
应用场景:对性能要求较高的工作负载,如盘算麋集型使命。
2.userspace(用户级手动调节)
特点:允许用户空间程序自行控制 CPU 的频率调解。
应用场景:需要定制化的频率调解计谋,如特定应用程序的性能优化。
3.powersave(省电模式)
特点:优先思量低落功耗,断送肯定的性能。
应用场景:对功耗要求较高,性能要求较低的工作负载。
4.ondemand(自动调节最高或最低)
特点:根据体系负载动态调解 CPU 频率,以平衡性能和功耗。
应用场景:对性能和功耗都有要求的通用工作负载。
5.conservative(自动平滑试调节)
特点:在体系负载较低时低落 CPU 频率,但在负载增加时不会立即提高频率,以制止频繁的调解。
应用场景:对稳定性要求较高的工作负载,如服务器应用。
cpupower frequency-set--governor performancecpupower frequency-set --governor performance
Numa Binding
NUMA (Non-Uniform Memory Access) Binding 是一种用于优化服务器性能的技能,特别是在多处置惩罚器体系中。NUMA Binding 旨在将盘算使命和内存访问绑定到特定的 NUMA 节点,以减少内存访问延迟和提高数据访问速度。
界说及原理:NUMA 是一种多处置惩罚器体系布局,其中体系中的每个处置惩罚器都与一组本地内存连接在一起,而不是与整个体系内存连接。这意味着处置惩罚器访问本地内存的速度比访问长途内存的速度更快。NUMA Binding 通过将盘算使命和内存访问绑定到特定的 NUMA 节点,可以最大程度地利用本地内存,从而减少内存访问延迟,提高体系性能。
Numa Binding的作用:
1.减少内存访问延迟:将盘算使命绑定到与其访问的内存节点相对应的处置惩罚器上,可以减少内存访问延迟,提高盘算效率。
2.提高数据访问速度:通过最大程度地利用本地内存,可以加快数据访问速度,提高体系整体性能。
3.防止资源争抢:通过绑定Numa,举行资源管控,防止资源竞争导致未知风险。
二、Memory
Transparent Huge Page(THP)
Transparent Huge Page(THP)是一种用于管理大页(Huge Page)的技能,旨在提高体系性能和内存管理的效率。THP 允许操作体系自动将通例大小的页面(通常为 4KB)合并为更大的页面(通常为 2MB 或 1GB),从而减少页表项数量,提高内存管理效率,并减少 TLB(Translation Lookaside Buffer)缓存的压力。
注意事项:
对于数据库应用,一般不发起启用 Transparent Huge Page(THP)技能。这是由于数据库往往具有稀疏而不是连续的内存访问模式,而 THP 技能更适用于连续的内存访问模式。此外,当体系存在高阶内存碎片化问题时,分配 THP 页面大概会导致较大的延迟。即使启用了针对 THP 的直接内存规整功能,也大概出现体系 CPU 利用率忽然增加的情况。因此,发起在数据库应用中关闭 THP,以制止潜伏的性能问题。
从ReadHat官网对于THP的先容当中也可以看到,不发起在数据库应用中启动THP
Vrtual Memory Parameters
在操作体系中,虚拟内存起到了至关重要的作用,允许体系在物理内存不敷时将部门数据存储在磁盘上,从而为应用程序提供了更大的可用内存空间。
其中,dirty_ratio 和 dirty_background_ratio 是两个关键的参数,它们直接影响了体系的性能和稳定性。
dirty_ratio:界说了体系内存中脏页的最大比例,即已被修改但尚未写入磁盘的页面。当体系中脏页的比例达到 dirty_ratio 时,体系将开始触发写入操作,将数据从内存写入到磁盘,以确保数据的长期性和一致性。
dirty_background_ratio:界说了一个后台写入的触发点,当体系中脏页的比例达到这个值时,后台写入进程会启动,以制止过多的脏页堆积,从而提高体系的相应速度和稳定性。
dirty_ratio 和 dirty_background_ratio 在我们这里通常并不需要调解,对于高性能的SSD,比如NVME装备来说,低落其值有利于提高内存回收时的效率。
三、Disk
I/O scheduler
I/O调度器是操作体系中负责管理和调度磁盘I/O哀求的组件之一。常见的I/O调度器模式包括 noop、deadline 和 cfq,它们各自具有差别的特点和适用场景。下面是对这三种模式的具体先容:
(1)Noop(TiDB推荐)
特点:
- Noop是一种简单的I/O调度器,通常被用于闪存装备(如SSD)等低延迟、高性能的存储介质上。
- 它的调度计谋非常简单,只是按照哀求的到达顺序来处置惩罚I/O哀求,不举行额外的排序或调度。
- Noop调度器适用于不需要额外的I/O调度处置惩罚的场景,可以最大限度地减少CPU消耗,提升I/O性能。
适用场景:
- 适用于低延迟、高性能的存储装备,如SSD、NVMe等。
- 适用于对I/O调度算法要求不高的应用场景,例如嵌入式体系或某些特定的数据中央应用。
(2)Deadline
特点:
- Deadline调度器是一种具有简单截止期限的I/O调度器,重要用于提高体系的相应性和稳定性。
- 它根据I/O哀求的截止期限来调度,优先处置惩罚即将超时的哀求,以确保对实时性要求较高的使命能够及时得到相应。
- Deadline调度器既思量了哀求的完成顺序,又兼顾了哀求的截止期限,可以在肯定程度上平衡体系的吞吐量和相应性能。
适用场景:
- 适用于需要提高体系相应速度和稳定性的场景,如桌面操作体系、实时体系等。
- 适用于对I/O哀求的相应时间有较高要求的应用,如多媒体处置惩罚、交互式应用等。
(3)CFQ(Completely Fair Queuing)
特点:
- CFQ是一种基于完全公平队列的I/O调度器,旨在提供公平的磁盘访问权,并在多使命情况中实现精良的性能和资源利用率。
- 它将全部的I/O哀求分配到差别的队列中,并按照肯定的调度计谋(如时间片轮转)对这些队列举行调度,以确保每个进程都能获得公平的磁盘访问机会。
- CFQ调度器适用于多使命情况下的服务器和桌面体系,可以平衡各个进程之间的磁盘访问需求,提高体系的整体性能和稳定性。
适用场景:
- 适用于多使命情况下的服务器和桌面体系,如Web服务器、文件服务器、多用户体系等。
- 适用于需要公平调度磁盘资源的场景,如多用户体系、虚拟化情况等。
相关下令:
- #查看目前使用的模式
- cat /sys/block/sda/queue/scheduler
- #修改当前调度器模式
- echo "noop"> /sys/block/sda/queue/scheduler
复制代码
Mount Paramtets
挂载参数(Mount Parameters)是在操作体系中用于控制文件体系挂载举动的设置。它们决定了文件体系如何与操作体系交互以及如何处置惩罚文件体系上的数据。明白和正确设置挂载参数对于体系性能、数据完整性和安全性至关重要。
TiDB推荐的挂载参数:
nodelalloc:通过利用 nodelalloc 参数来禁用延迟分配,可以确保每次数据写入操作都会立即同步到磁盘,从而减少了数据丢失的风险。这对于一些对数据一致性要求较高或对数据长期性要求较严酷的应用场景尤为重要
noatime:通过利用 noatime 参数,可以禁止文件体系更新文件的访问时间戳,从而减少了文件体系的元数据更新操作,提高了体系的性能和吞吐量。这对于一些对文件访问时间不感兴趣的应用场景尤为有效。
作者:付家明| 后端开辟工程
版权声明:本文由神州数码云基地团队整理撰写,若转载请注明出处。
公众号搜刮神州数码云基地,相识更多技能干货。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |