OceanBase 初探学习历程之二——操作系统参数最佳实践
本文章分享OB操作系统参数最佳实践值,相关参数部分来自PK项目得知,仅供参考,实际参数设置仍需结合现有设备条件及业务系统特点是否有必要如此设置,但我任务大部分场景均可用(仅本人个人观点)。
1、磁盘配置
[root@ob2 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Aug 18 09:03:09 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/uos-root / ext4 defaults 1 1
UUID=ada6bb64-387c-4526-b525-73f897c9ceba /boot ext4 defaults 1 2
UUID=0493-3126 /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/uos-home /home ext4 defaults 1 2
/dev/vgob/log /data/log1 ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0
/dev/vgob/data /data/1 ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0
/dev/vgob/admin /home/admin ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0
2、文件限制配置
[root@ob2 ~]# more /etc/security/limits.d/oceanbase_limits.conf
* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* hard core unlimited
* soft core unlimited
* hard stack 10240
* soft stack 10240
* hard cpu unlimited
* soft cpu unlimited
root soft nofile 655360
root hard nofile 655360
root soft nproc 655360
root hard nproc 655360
root hard core unlimited
root soft core unlimited
root hard stack 10240
root soft stack 10240
root hard cpu unlimited
root soft cpu unlimited
3、SWAP设置
[root@ob2 ~]# free -gtotal used free shared buff/cache available
Mem: 381 340 0 0 40 38
Swap: 0 0 0
4、selinux设置
[root@ob2 ~]# sestatus
SELinux status: disabled
5、内核参数配置
[root@ob2 ~]# cat /etc/sysctl.conf
kernel.sem = 4096 4194304 32768 1024vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.vfs_cache_pressure = 50
vm.swappiness = 1
net.ipv4.ip_local_port_range = 3500 65535
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.ipv4.tcp_wmem = 262144 262144 4194304
net.ipv4.tcp_rmem = 4194304 4194304 6291456
vm.nr_hugepages = 384
####################################################
# for oceanbase
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216net.ipv4.ip_local_port_range = 3500 65535
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_slow_start_after_idle=0
net.ipv4.ip_local_reserved_ports = 62881-63881vm.swappiness = 0
kernel.core_pattern = /data/1/core-%e-%p-%t
vm.min_free_kbytes = 2097152
vm.overcommit_memory = 0fs.aio-max-nr=1048576
vm.max_map_count=655360
vm.nr_hugepages = 0
6、登录设置
[root@ob2 ~]# cat /etc/pam.d/login
#%PAM-1.0
auth substack system-auth
auth include postlogin
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include system-auth
session include postlogin
-session optional pam_ck_connector.sosession required /lib64/security/pam_limits.so
session required pam_limits.so
7、透明大页numa设置
[root@ob2 ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=false
GRUB_TERMINAL_OUTPUT="console"
GRUB_BACKGROUND="/boot/efi/EFI/UnionTech/themes/deepin/background.jpg"
GRUB_THEME="/boot/efi/EFI/UnionTech/themes/deepin/theme.txt"
GRUB_GFXMODE=1152x864,auto
DEEPIN_GFXMODE_NOT_SUPPORTED=2560x1600
GRUB_TERMINAL=gfxterm
LANG=C
GRUB_CMDLINE_LINUX="rd.lvm.lv=uos/root rd.lvm.lv=uos/swap video=VGA-1:640x480-32@60me rhgb console=tty0 crashkernel=1024M,high smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off numa=on"
GRUB_DISABLE_RECOVERY="false"[admin@ob2 ~]$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
8、I/O调度模式
BOOT_IMAGE=/vmlinuz-4.19.90-2201.4.0.0135.up1.uel20.aarch64 root=/dev/mapper/uos-root ro rd.lvm.lv=uos/root rd.lvm.lv=uos/swap video=VGA-1:640x480-32@60me rhgb console=tty0 crashkernel=1024M,high smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off numa=on[root@ob2 ~]# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.19.90-2201.4.0.0135.up1.uel20.aarch64 root=/dev/mapper/uos-root ro rd.lvm.lv=uos/root rd.lvm.lv=uos/swap video=VGA-1:640x480-32@60me rhgb console=tty0 crashkernel=1024M,high smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off numa=on
[root@ob2 ~]# cat /sys/block/nvme1n1/queue/scheduler
[none] mq-deadline kyber bfq
9、挂载点设置
root@ob2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 558.4G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 556.4G 0 part ├─uos-root 253:0 0 70G 0 lvm /├─uos-swap 253:1 0 4G 0 lvm └─uos-home 253:5 0 482.4G 0 lvm /home
nvme3n1 259:0 0 2.9T 0 disk
├─vgob-log 253:2 0 2T 0 lvm /data/log1
├─vgob-data 253:3 0 7.9T 0 lvm /data/1
└─vgob-admin 253:4 0 500G 0 lvm /home/admin
nvme0n1 259:1 0 2.9T 0 disk
├─vgob-log 253:2 0 2T 0 lvm /data/log1
├─vgob-data 253:3 0 7.9T 0 lvm /data/1
└─vgob-admin 253:4 0 500G 0 lvm /home/admin
nvme1n1 259:2 0 2.9T 0 disk
├─vgob-log 253:2 0 2T 0 lvm /data/log1
├─vgob-data 253:3 0 7.9T 0 lvm /data/1
└─vgob-admin 253:4 0 500G 0 lvm /home/admin
nvme2n1 259:3 0 2.9T 0 disk
├─vgob-log 253:2 0 2T 0 lvm /data/log1
├─vgob-data 253:3 0 7.9T 0 lvm /data/1
└─vgob-admin 253:4 0 500G 0 lvm /home/admin
10、用户变量配置
[admin@ob2 ~]$ cat .bash_profile export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/admin/oceanbase/lib"
[admin@ob2 ~]$ id admin
uid=500(admin) gid=500(admin) groups=500(admin)
11、服务器性能模式
[admin@ob2 ~]$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
performance
12、络配置网卡的接受队列和发送队列
[admin@ob2 ~]$ cat /proc/sys/net/core/netdev_max_backlog
10000
当然还有硬件层面一些提升的空间,这里暂时先不分享,下一期再分享,欢迎大家关注我,一起学习。
(若重要,处处都是办法;若不重要,比比皆是理由。)
相关文章:
OceanBase 初探学习历程之二——操作系统参数最佳实践
本文章分享OB操作系统参数最佳实践值,相关参数部分来自PK项目得知,仅供参考,实际参数设置仍需结合现有设备条件及业务系统特点是否有必要如此设置,但我任务大部分场景均可用(仅本人个人观点)。 1、磁盘配置…...
全面指南:使用JMeter进行性能压测与性能优化(中间件压测、数据库压测、分布式集群压测、调优)
目录 一、性能测试的指标 1、并发量 2、响应时间 3、错误率 4、吞吐量 5、资源使用率 二、压测全流程 三、其他注意点 1、并发和吞吐量的关系 2、并发和线程的关系 四、调优及分布式集群压测(待仔细学习) 1.线程数量超过单机承载能力时的解决…...
《机器学习实战》专栏 No12:项目实战—端到端的机器学习项目Kaggle糖尿病预测
《机器学习实战》专栏 第12集:项目实战——端到端的机器学习项目Kaggle糖尿病预测 本集为专栏最后一集,本专栏的特点是短平快,聚焦重点,不长篇大论纠缠于理论,而是在介绍基础理论框架基础上,快速切入实战项…...
【vue项目中如何实现一段文字跑马灯效果】
在Vue项目中实现一段文字跑马灯效果,可以通过多种方式实现,以下是几种常见的方法: 方法一:使用CSS动画和Vue数据绑定 这种方法通过CSS动画实现文字的滚动效果,并结合Vue的数据绑定动态更新文本内容。 步骤ÿ…...
DeepSeek 细节之 MLA (Multi-head Latent Attention)
DeepSeek 系统模型的基本架构仍然基于Transformer框架,为了实现高效推理和经济高效的训练,DeepSeek 还采用了MLA(多头潜在注意力)。 MHA(多头注意力)通过多个注意力头并行工作捕捉序列特征,但面临高计算成本…...
Python爬虫具体是如何解析商品信息的?
在使用Python爬虫解析亚马逊商品信息时,通常会结合requests库和BeautifulSoup库来实现。requests用于发送HTTP请求并获取网页内容,而BeautifulSoup则用于解析HTML页面并提取所需数据。以下是具体的解析过程,以按关键字搜索亚马逊商品为例。 …...
lerobot调试记录
这里写自定义目录标题 libtiff.so undefined symbol libtiff.so undefined symbol anaconda3/envs/lerobot3/lib/python3.10/site-packages/../.././libtiff.so.6: undefined symbol: jpeg12_write_raw_data, version LIBJPEG_8.01.安装库 conda install -c conda-forge jpeg …...
【Word转PDF】在线Doc/Docx转换为PDF格式 免费在线转换 功能强大好用
在日常办公和学习中,将Word文档转换为PDF格式的需求非常普遍。无论是制作简历、撰写报告还是分享文件,都需要确保文档格式在不同设备上保持一致。而小白工具的“Word转PDF”功能正是为此需求量身打造的一款高效解决方案。 【Word转PDF】在线Doc/Docx转换…...
Jenkins 配置 Credentials 凭证
Jenkins 配置 Credentials 凭证 一、创建凭证 Dashboard -> Manage Jenkins -> Manage Credentials 在 Domain 列随便点击一个 (global) 二、添加 凭证 点击左侧 Add Credentials 四、填写凭证 Kind:凭证类型 Username with password: 配置 用…...
Datawhale Ollama教程笔记5
Dify 接入 Ollama 部署的本地模型 Dify 支持接入 Ollama 部署的大型语言模型推理和 embedding 能力。 快速接入 下载 Ollama 访问 Ollama 安装与配置,查看 Ollama 本地部署教程。 运行 Ollama 并与 Llama 聊天 ollama run llama3.1Copy to clipboardErrorCopied …...
小爱音箱连接电脑外放之后,浏览器网页视频暂停播放后,音箱整体没声音问题解决
背景 22年买的小爱音箱增强版play,小爱音箱连接电脑外放之后,浏览器网页视频暂停播放后,音箱整体没声音(一边打着游戏,一边听歌,一边放视频,视频一暂停,什么声音都没了,…...
go设置镜像代理
前言 在 Go 开发中,如果直接从官方源(https://proxy.golang.org)下载依赖包速度较慢,可以通过设置 镜像代理 来加速依赖包的下载。以下是增加 Go 镜像代理的详细方法: 一、设置 Go 镜像代理 1. 使用环境变量设置代理…...
Python爬虫系列教程之第十二篇:爬虫异常处理与日志记录
大家好,欢迎继续关注本系列爬虫教程!在实际的爬虫项目中,网络请求可能会因为各种原因失败,如连接超时、目标服务器拒绝访问、解析错误等。此外,大规模爬虫任务运行过程中,各种异常情况层出不穷,…...
将Google文档导入WordPress:简单实用的几种方法
Google文档是内容创作者非常实用的写作工具。它支持在线编辑、多人协作,并能够自动保存内容。但当我们想把Google文档中的内容导入WordPress网站时,可能会遇到一些小麻烦,比如格式错乱、图片丢失等问题。本文将为大家介绍几种简单实用的方法&…...
大白话实战Gateway
网关功能 网关在分布式系统中起了什么作用?参考下图: 前端想要访问业务访问,就需要知道各个访问的地址,而业务集群服务有很多,前端需要记录非常多的服务器地址,这种情况下,我们需要对整个业务集群做一个整体屏蔽,这个时候就引入Gateway网关,它就是所有服务的请求入…...
深入学习解析:183页可编辑PPT华为市场营销MPR+LTC流程规划方案
华为终端正面临销售模式转型的关键时刻,旨在通过构建MPRLTC项目,以规避对运营商定制的过度依赖,并探索新的增长路径。项目核心在于建设一套全新的销售流程与IT系统,支撑双品牌及自有品牌的战略发展。 项目总体方案聚焦于四大关键议…...
【微中子代理踩坑-前端node-sass安装失败】
微中子代理踩坑-前端node-sass安装失败-windows 1.npm版本2.python2.73.安装Visual Studio 1.npm版本 当前使用node版本13.12.0 2.python2.7 安装python2.7.9并配置环境变量 3.安装Visual Studio 安装Visual Studio 我是直接勾选了3个windows的sdk,然后就好了 最后 npm in…...
使用open-webui+deepseek构建本地AI知识库
序 本文主要研究一下如何使用OpenWebUIdeepseek构建本地AI知识库 步骤 拉取open-webui镜像 docker pull ghcr.io/open-webui/open-webui:maindocker启动 docker run -d -p 3000:8080 \ -e OLLAMA_BASE_URLhttp://host.docker.internal:11434 \ ghcr.io/open-webui/open-we…...
CSS盒模
CSS盒模型就像一个快递包裹,网页上的每个元素都可以看成是这样一个包裹,它主要由以下几个部分组成: 内容(content):就像包裹里真正装的东西,比如文字、图片等。在CSS里,可用width&a…...
【开源向量数据库】Milvus简介
Milvus 是一个开源、高性能、可扩展的向量数据库,专门用于存储和检索高维向量数据。它支持近似最近邻搜索(ANN),适用于图像检索、自然语言处理(NLP)、推荐系统、异常检测等 AI 应用场景。 官网:…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...
