Linux系统优化要义

        这里不敢说 linux优化奥义,主要是本文比较浅显,适合普通开发相关人员去读

linux作为服务器系统的王者,以稳定性著称,但对于不同的“应用场景”,相关配置还需调整,才能保证业务稳定性。以下是相关总结

  • IO优化

        IO优化通常在需要进行大量文件读写,或进行大量网络请求的情况,如数据库服务器,中间件服务,文件存储服务器,或承担高并发的基础服务的服务器等。根据实际业务情况进行调整

        1.文件读写频率的调整,需要的实时性越高,以下3项需要设置得越小,CPU消耗越多。需要的性能越高,以下3项需要设置越大(根据机器配置),CPU消耗越多。

#调整文件 触发刷写脏页的百分比
echo 1 > /proc/sys/vm/dirty_background_ratio
#多久检查一次脏页 秒
echo 1 > /proc/sys/vm/dirty_ratio
#多久后算脏页 此处100ms
echo 100 > /proc/sys/vm/dirty_expire_centisecs

        taps:很多数据库采用mmap等有自己的优化配置,这些参数配置就没用了

        2. 单进程的文件打开数(如不够用会报xxx openfiles)

#查看现有配置
less /etc/security/limits.conf
#调整配置  这里还可以优化其他参数 如打开进程数等,与命令ulimit -a 中内容相呼应
vim /etc/security/limits.conf
# 将如下内容贴到底部
# 限制文件打开数据
*               hard     nofile          65535
*               soft     nofile          65535

 sysctl -p 刷一下,重新登录ssh,用命令 ulimit -n 查看是否生效(相关程序也需要重启)

  • 内存优化

        内存优化。一般情况不建议内存优化,特别是OOM机制,是系统级别的兜底机制,否则真卡住,只能去机房了,如果机房在贵州山里面就很麻烦了哈哈哈

        1. 虚拟内存。如果应用实时要求性很高,建议关闭虚拟内存,毕竟拿磁盘当内存,硬件就差了。他作用在于处理一些内存不够的情况,提高程序的极值,如“离线计算类”应用,可以将虚拟内存开大

#查看交换空间
swapon -s 
#调整大小
[root@localhost ~]# free -mh
              total        used        free      shared  buff/cache   available
Mem:           3.7G        3.0G        253M        8.4M        433M        459M
Swap:          3.9G        264K        3.9G
#创建一个1M*1024的文件夹 ,根据实际情况调整
[root@localhost ~]# dd if=/dev/zero of=/tmp/big_swap bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,0.337149 秒,3.2 GB/秒
#统计大小
[root@localhost ~]# du -sh /tmp/big_swap
1.0G    /tmp/big_swap
[root@localhost ~]# mkswap /tmp/big_swap
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=80241833-60b5-4613-83e7-e5715355d35b
#标记为交换区
[root@localhost ~]#  swapon /tmp/big_swap
swapon: /tmp/big_swap:不安全的权限 0644,建议使用 0600。
#查看大小,增加了1G
[root@localhost ~]#  free -mh
              total        used        free      shared  buff/cache   available
Mem:           3.7G        3.0G        146M        8.4M        552M        470M
Swap:          4.9G        264K        4.9G

        2.cgroup。 严格来说叫内存管控,也是docker的底层原理。设置一个cgroup文件。cgroup其实是个完整的资源管理体系,cd /sys/fs/cgroup 发现里面有很多文件,这里说内存:如下图创建了一个文件,内容是 byte数

系统程序时采用 cgexec -g memory:memory_limit/xxx_limit 开始,加入当前组就行

至于内存分配页等来说,不建议随便优化,以免适得其反。

  • 网络优化

        首先确认大部分应用基于TCP,不是UDP,此处忽略UDP的优化。此处TCP原理就不说了

        打开文件 vim /etc/sysctl.conf

#很需要调整的 队列不够长的时候,并发一上来,就开始拒绝连接 默认1024
net.ipv4.tcp_max_syn_backlog=10240
#很需要调整的 已连接的队列,当握手完成后,会放到这个队列 也是并发过多时会出现的问题,比如断了网,客户端端会自动重试,可能1k个客户端每个重试3次,就是3k个请求直接打过来,此处太小就直接拒绝了连接 默认是128
net.core.somaxconn=10240

# 客户端无响应的超时时间。默认60 不建议改,但要知道,方便查问题
net.ipv4.tcp_fin_timeout=60
#tcp快速打开功能,改功能适合频繁断开连接的情况,而且需客户端配合,虽是银剑,但场景偏少 0禁用 1启用 2启用并解释数据
net.ipv4.tcp_fastopen=0

#一般不用改 在连接建立过程中,发送 SYN(同步)包后等待对方响应的最大重试次数,网络环境很差就可以设置多些
net.ipv4.tcp_syn_retries=6
#一般不用改 是否重用time_wait的连接 默认不重用,当业务代码很健壮的时候可以开,性能提高不少
net.ipv4.tcp_tw_reuse=0


修改之后通过sysctl -p刷写。(然后建议重启程序)

还有其他相关参数未列出,但找到入口就好办了

  • 整体参数说明

        如需要进行较深入的优化,通过sysctl -a 查看linux的所有内核参数,根据实际情况进行优化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/352409.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

快快销ShopMatrix 分销商城多端uniapp可编译5端-代理商收益管理:差价奖励和销售额统计

代理商收益管理是一种针对代理商的利润分配模式,主要通过差价奖励和销售额统计来实现。这种模式的核心思想是通过激励代理商的销售行为,提高代理商的积极性和销售效率,从而实现整个销售网络的增长。 差价奖励是代理商收益管理中的一种常见方…

兄弟DCP-7057黑白激光多功能一体机加粉后清零方法

硒鼓加粉机器上清零,方法如下: 打开安装硒鼓的前盖。按“清除”键,显示“更换硒鼓”。不用管提示,接着按“启用Start”,再按“”,屏幕上显示“01”。继续按“”,直到屏幕上显示“11”。按“OK”…

E5071C 是德科技网络分析仪

181/2461/8938产品概述: E5071C ENA 矢量网络分析仪,9 kHz 至 20 GHz,配有增强型 TDR 测量选件。 E5071C 是大规模无源元器件测试的理想解决方案。 它具有出色的测量性能,有助于提高测试吞吐量,尤其是与 E5092A 多端…

Discuz论坛搭建:Linux宝塔面板一键部署,固定地址畅享公网访问

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 安装基础环境二. 一键部署Discuz三. 安装cpolar工具四. 配置域名访问Discuz…

【小白教程】幻兽帕鲁服务器一键搭建 | 支持更新 | 自定义配置

幻兽帕鲁刚上线就百万在线人数,官方服务器的又经常不稳定,所以这里给大家带来最快捷的搭建教程,废话不多说直接开始。 步骤一:准备服务器 服务器建议 Linux 系统,资源占用低,而且一键脚本只需要一条命令&am…

架构篇27:如何设计计算高可用架构?

文章目录 主备主从集群小结计算高可用的主要设计目标是:当出现部分硬件损坏时,计算任务能够继续正常运行。因此计算高可用的本质是通过冗余来规避部分故障的风险,单台服务器是无论如何都达不到这个目标的。所以计算高可用的设计思想很简单:通过增加更多服务器来达到计算高可…

AI大模型开发架构设计(5)——人人能学会的Llama-2大模型微调

文章目录 人人能学会的Llama-2大模型微调1 什么是Llama-2以及关键特性分析什么是Llama-2?Llama-2关键特性分析2 Llama-2微调全流程剖析为什么要微调Llama-2?Llama-2微调全流程3 基于Llama-2微调3个应用案例案例1:电子游戏评价数据生成文本数据集合案例2:利用Llama-2微调模型…

Android如何通过按钮实现页面跳转方法

Hello大家好!我是咕噜铁蛋!在Android应用开发中,页面跳转是一项基本且常见的功能。通过按钮实现页面跳转可以为用户提供更好的交互体验,使应用更加灵活和易用。本文将介绍Android Studio中如何通过按钮实现页面跳转的方法&#xf…

OJ_日期问题

基础&#xff1a;已知某天的日期求下一天的日期 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> using namespace std;void NextDay(int &year, int &month, int &day) {//存储一下 月份和天数的对应关系int dayOfMonth[] {…

Linux:命名管道及其实现原理

文章目录 命名管道指令级命名管道代码级命名管道 本篇要引入的内容是命名管道 命名管道 前面的总结中已经搞定了匿名管道&#xff0c;但是匿名管道有一个很严重的问题&#xff0c;它只允许具有血缘关系的进程进行通信&#xff0c;那如果是两个不相关的进程进行通信&#xff0…

C# Graphics对象学习

Graphics对象用于进行绘制&#xff1b; 从哪个对象获取的Graphics&#xff0c;然后进行绘制&#xff0c;就绘制到该对象上&#xff1b; 从位图获取Graphics&#xff0c;然后进行绘制&#xff0c;绘制到该位图上&#xff1b; 从某个控件获取Graphics&#xff0c;然后绘制&…

el-tree基础的树形节点设置节点不能选中高亮出来,对已经选中的节点设置disabled,对当前节点刚选中后设置禁用disabled

一、 el-tree基础的树形节点设置节点不能选中高亮出来 需求 我们使用element-ui或者element-plus的时候会遇到树形控件的使用&#xff0c;我们使用树形控件会限制有的节点不让选中和高亮出来&#xff0c;这个时候需要我们做限制。在实现中我们发现了element-ui和element-plus…

基于C语言的趣味游戏之五子棋

目录 趣味五子棋游戏 第一步 text.c文件 第二步 game.h文件 第三步 初始化 打印棋盘 玩家输入 电脑输入 判断输赢 game.c 趣味五子棋游戏 第一步 先写菜单&#xff0c;然后在主函数里调用&#xff0c;由于这是一个可以重复的游戏所以将do while循环里调用menu函数。…

《WebKit技术内幕》学习之十五(2):Web前端的未来

2 嵌入式应用模式 2.1 嵌入式模式 读者可能会奇怪本章重点表达的是Web应用和Web运行平台&#xff0c;为什么会介绍嵌入式模式&#xff08;Embedded Mode&#xff09;呢&#xff1f;这是因为很多Web运行平台是基于嵌入式模式的接口开发出来的&#xff0c;所以这里先解释一下什…

keepalived+nginx双主热备(有问题私信)

keepalivednginx双主热备 前言keepalivednginx双主热备keepalivednginx双主热备部署安装nginx安装keepalived修改master节点的keepalived配置文件 修改backup节点的keeepalived配置文件配置keepalived主备配置keepalived双主热备 前言 有关keepalived和nginx的一些工作原理&am…

uniapp封装公共的方法或者数据请求方法

仅供自己参考&#xff0c;不是每个页面都用到这个方法&#xff0c;所以我直接在用到的页面引用该公用方法&#xff1a; 1、新建一个util.js文件 export const address function(options){return new Promise((resolve,reject)>{uni.request({url:"https://x.cxniu.…

matlab对负数开立方根得到虚数的解决方案

问题描述&#xff1a;在matlab中&#xff0c;对负数开立方根&#xff0c;不出意外你将得到虚数。 例如 − 27 3 \sqrt[3]{-27} 3−27 ​&#xff0c;我们知道其实数解是-3&#xff0c;但在matlab中的计算结果如下&#xff1a; 问题原因&#xff1a;matlab中的立方根运算是在…

【JAVA面试精选篇-初生牛犊不怕虎】

文章目录 🌽 简介🧺 线程池🌄 Redis⏰ JVM🚛 数据结构🍎 Mysql🍡 结语🌽 简介 海阔凭鱼跃,天高任鸟飞! 学习不要盲目,让大脑舒服的方式吸收知识!!! 本人马上离开济南,回泰安发展,为了积极准备面试,目前在梳理一些知识点,同时希望能够帮助到需要的人… …

libjsoncpp 的编译和交叉编译

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

【现代密码学基础】详解完美安全与香农定理

目录 一. 介绍 二. 完美安全的密钥与消息空间 三. 完美安全的密钥长度 四. 最优的完美安全方案 五. 香农定理 &#xff08;1&#xff09;理论分析 &#xff08;2&#xff09;严格的正向证明 &#xff08;3&#xff09;严格的反向证明 六. 小结 一. 介绍 一次一密方案…