Linux:系统初始化,内核优化,性能优化(3)
优化系统的文件句柄数(全局)
也就是系统的最大文件数量
查看最大数量
cat /proc/sys/fs/file-max

当我们的服务器有非常大的一个数据并发的时候十几二十万的文件需要去配置,可能这个是远远不够的,我们就要去修改
vim /etc/sysctl.conf
# 末尾追加
fs.file-max = 102400
意思就是最大文件数是102400
再去让其生效
sysctl -p
再去查看一下最大文件数

或者使用命令
echo "fs.file-max = 102400" >> /etc/sysctl.conf
这个是全局生效的,对所有用户都生效,我们也可以对某个用户有不同的
优化系统的文件句柄数(用户)
某个账户的最大句柄数
查看大小
ulimit -u

可以看到用户的才7183(root是随意的不受限制的)
现在去进行修改
vim /etc/security/limits.conf #末尾追加* soft nofile 65535
* hard nofile 65535
意为最大就是65535和文件
或者使用命令
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
配置生效,重新登录即可
优化系统的文件句柄数(单个进程)
单个进程可以操控的句柄数
vim /etc/security/limits.d/20-nproc.conf
默认4096
也是重新登录生效
优化系统的文件句柄数(全局进程)
echo "* soft nproc 65535" >> /etc/security/limits.conf
echo "* hard nproc 65535" >> /etc/security/limits.conf
设置别名命令
通过alias设置别名命令
开启的服务进行精简
如果开机自动开启没用的服务就一堆这非常占用系统的开机时间一类的
systemctl list-unit-files | grep enabled
看一下

发现有很多
systemctl list-unit-files | grep en | wc -l
看一下有多少个可以看到有62个
postfix.service这个服务一般不开
NetworkManager.service 一般也不开
其他的根据自己的情况去禁用
systemctl disable postfix.service
systemctl disable NetworkManager.service
其他没有用的话可以具体的去网上查一下,根据官方的推荐去禁掉一些
优化内核参数
tcp/ip协议的优化,允许更多的tcp会话,增加吞吐量,缓解相关攻击
cat >>/etc/sysctl.conf<<EOF
#保持在FIN-WAIT-2状态的时间,使系统可以处理更多连接。此参数值为整数,单位为秒。
net.ipv4.tcp_fin_timeout = 2
#开启重用,允许将TIME_WAIT socket用于新的TCP连接。默认为0,表示关闭。
net.ipv4.tcp_tw_reuse = 1
#开启TCP连接中TIME_WAIT socket的快速回收。默认值为0,表示关闭。
net.ipv4.tcp_tw_recycle = 1
#新建TCP连接请求,需要发送一个SYN包,该值决定内核需要尝试发送多少次syn连接请求才决定放弃建立连接。默认值是5. 对于高负责且通信良好的物理网络而言,调整为2
net.ipv4.tcp_syn_retries = 2
#对于远端SYN连接请求,内核会发送SYN+ACK数据包来确认收到了上一个SYN连接请求包,然后等待远端的确认(ack数据包)。该值则指定了内核会向远端发送tcp_synack_retires次SYN+ACK数据包。默认设定值是5,可以调整为2
net.ipv4.tcp_synack_retries = 2
#开启SYN cookie,出现SYN等待队列溢出时启用cookie处理,防范少量的SYN攻击。默认为0,表示关闭。
net.ipv4.tcp_syncookies = 1
#表示SYN队列的长度,预设为1024,这里设置队列长度为262144,以容纳更多等待连接。
net.ipv4.tcp_max_syn_backlog = 262144
#系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清除并输出警告信息。默认值为180000。控制TIME_WAIT套接字最大值,避免服务器被拖死。可以抵御简单的DoS攻击。
net.ipv4.tcp_max_tw_buckets = 6000
#表示系统中最多有多少TCP套接字不被关联到任何一个用户文件句柄上。如果超过这里设置的数字,连接就会复位并输出警告信息。这个限制仅仅是为了防止简单的DoS攻击。此值不能太小。
net.ipv4.tcp_max_orphans = 16384
# 增加TCP最大缓冲区大小
net.ipv4.tcp_rmem=4096 87380 4194304
net.ipv4.tcp_wmem=4096 16384 4194304
#keepalived启用时TCP发送keepalived消息的频度。默认2小时。
net.ipv4.tcp_keepalive_time = 600
#TCP发送keepalive探测以确定该连接已经断开的次数。根据情形也可以适当地缩短此值
net.ipv4.tcp_keepalive_probes = 5
#探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃。对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值。
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.route.gc_timeout = 100
#指定外部连接的端口范围。默认值为32768 61000
net.ipv4.ip_local_port_range = 1024 65000
#定义了系统中每一个端口最大的监听队列的长度, 对于一个经常处理新连接的高负载 web服务环境来说,默认值为128,偏小
net.core.somaxconn = 16384
#表示当在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数量。
net.core.netdev_max_backlog = 16384
#避免放大攻击
net.ipv4.icmp_echo_ignore_broadcasts=1
EOF
sysctl -p
生效一下
锁定重要配置文件
直接不让配置某些文件
Linux:锁定文件chattr_linux文件加锁+i-CSDN博客
https://blog.csdn.net/w14768855/article/details/135118897?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171068649916800188557769%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171068649916800188557769&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-135118897-null-null.nonecase&utm_term=char&spm=1018.2226.3001.4450这篇文章可以看到如果上锁,可以把重要文件进行上锁处理
相关文章:
Linux:系统初始化,内核优化,性能优化(3)
优化系统的文件句柄数(全局) 也就是系统的最大文件数量 查看最大数量 cat /proc/sys/fs/file-max 当我们的服务器有非常大的一个数据并发的时候十几二十万的文件需要去配置,可能这个是远远不够的,我们就要去修改 vim /etc/sy…...
使用 GitHub Actions 通过 CI/CD 简化 Flutter 应用程序开发
在快节奏的移动应用程序开发世界中,速度、可靠性和效率是决定项目成功或失败的关键因素。持续集成和持续部署 (CI/CD) 实践已成为确保满足这些方面的强大工具。当与流行的跨平台框架 Flutter 和 GitHub Actions 的自动化功能相结合时,开发人员可以创建无…...
微软 CEO Satya Nadella 的访谈
Nicolai: 大家好。我刚经历了人生中最不可思议的事情,我有幸采访了微软的 CEO、Satya Nadella。微软现在是全球市值最高的公司。真是太棒了,请继续关注。 第一章 微软的发展与平台转变 Nicolai: Satya,你是全球市值最高公司的 CEOÿ…...
万界星空科技商业开源MES,技术支持+项目合作
商业开源的一套超有价值的JAVA制造执行MES系统源码 亲测 带本地部署搭建教程 教你如何在本地运行运行起来。 开发环境:jdk11tomcatmysql8springbootmaven 可以免费使用,需要源码价格便宜,私信我获取。 一、系统概述: MES制造执…...
Docker Mysql无root账户创建最高权限用户
创建最高权限用户 进入 MySQL 容器的命令行界面。您可以使用以下命令: 修改配置文件my.cnf 无密码进入 [mysqld]下输入 skip-grant-tables重启mysql容器 进入容器内部 container_name 容器ID或name docker restart mysql docker exec -it <container_name>…...
常用芯片学习——DS3231M芯片
DS3231M RTC实时时钟 芯片介绍 DS3231M是一款低成本、极其精确的 I2C 实时时钟 (RTC)。该设备集成了电池输入,并在设备主电源中断时保持准确的计时。微型电子机械系统 (MEMS) 谐振器的集成提高了器件的长期精度&…...
蓝桥杯单片机快速开发笔记——矩阵键盘
一、原理分析 二、思维导图 三、示例框架 定义了四个位控制变量,用于控制键盘扫描时的行列信号。 在Scan_Keys()函数中,首先设置行列信号,将其中一个行信号置为0,另一个行信号置为1,同时将列信号置为1,用于…...
每周一算法:双向深搜
题目描述 达达帮翰翰给女生送礼物,翰翰一共准备了 N N N 个礼物,其中第 i i i 个礼物的重量是 G [ i ] G[i] G[i]。 达达的力气很大,他一次可以搬动重量之和不超过 W W W的任意多个物品。 达达希望一次搬掉尽量重的一些物品,请…...
蓝桥杯刷题(十)
1.翻转 代码 输入数据,每组数据进行比较,j的范围掐头去尾,若a[j]b[j],继续,若出现010,101子串则改成000,111,遍历完后比较a是否等于b,相同则输出次数,不同则输出-1。 for _ in ran…...
ioDraw:与 GitHub、gitee、gitlab、OneDrive 无缝对接,绘图文件永不丢失!
🌟 绘图神器 ioDraw 重磅更新,文件保存再无忧!🎉 无需注册,即刻畅绘!✨ ioDraw 让你告别繁琐注册,尽情挥洒灵感! 新增文件在线实时保存功能,支持将绘图文件保存到 GitHu…...
利用 Python 处理遥感影像数据:计算年度平均影像
在地球科学、气象学以及环境监测等领域,遥感影像数据是一种重要的信息源,它们可以提供地表的地形、植被覆盖、气候变化等丰富信息。然而,随着观测技术的进步,我们通常会获得大量的遥感影像数据,如何高效地处理和分析这…...
【Leetcode-73.矩阵置零】
题目: 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2&…...
redis 常见的异常
目录 一、缓存穿透 1、概念 解决方案 (1)布隆过滤器 (2)、缓存空对象 二、缓存雪崩 1、概念 解决方案 (1)redis高可用 (2)限流降级 (3)数据预热 一、缓存穿透 1、概念 缓…...
npm包、全局数据共享、分包
使用 npm 包 小程序对 npm 的支持与限制 目前,小程序中已经支持使用 npm 安装第三方包,从而来提高小程序的开发效率。但是,在小程序中使用npm 包有如下 3 个限制: ① 不支持依赖于 Node.js 内置库的包 ② 不支持依赖于浏览器内置…...
UnityShader:IBL
效果: 实现: Shader "MyShader/IBL" {Properties{_CubeMap ("环境贴图", Cube) "white" {}_Exposure("曝光",float)1.0_Color("颜色",color)(1,1,1,1)_NormalMap("法线贴图",2d)"bu…...
每日五道java面试题之mybatis篇(三)
目录: 第一题. MyBatis的框架架构设计是怎么样的?第二题. 为什么需要预编译?第三题. Mybatis都有哪些Executor执行器?它们之间的区别是什么?第四题. Mybatis中如何指定使用哪一种Executor执行器?第五题. Mybatis是否支持延迟加载…...
C#开发五子棋游戏:从新手到高手的编程之旅
C#开发五子棋游戏:从新手到高手的编程之旅 目录 一、引言 二、项目规划与设计思路 三、棋盘与棋子的数据模型构建 四、交互式用户界面设计 五、核心游戏逻辑实现 一、引言 五子棋,作为一种古老的策略型棋类游戏,在全球拥有广泛的爱好者…...
ELK日志管理实现的3种常见方法
ELK日志管理实现的3种常见方法 1. 日志收集方法 1.1 使用DaemonSet方式日志收集 通过将node节点的/var/log/pods目录挂载给以DaemonSet方式部署的logstash来读取容器日志,并将日志吐给kafka并分布写入Zookeeper数据库.再使用logstash将Zookeeper中的数据写入ES,并通过kibana…...
深度强化学习01
Random variable Probability Density Function 期望 Random Sampling 学习视频 这绝对是我看过最好的深度强化学习!从入门到实战,7小时内干货不断!_哔哩哔哩_bilibili...
C++ 智能指针的使用
智能指针类型 在C程序中,普通变量使用栈内存,为函数运行时专用,结束后会自动释放,无须考虑内存释放问题。 但堆内存是共用的,其使用是通过指针变量的new来分配,使用delete来释放,因指针使用方便…...
UniversalUnityDemosaics:Unity游戏马赛克移除技术的深度解析与实践指南
UniversalUnityDemosaics:Unity游戏马赛克移除技术的深度解析与实践指南 【免费下载链接】UniversalUnityDemosaics A collection of universal demosaic BepInEx plugins for games made in Unity3D engine 项目地址: https://gitcode.com/gh_mirrors/un/Univers…...
git--github
解决github无法访问的问题。...
量子集成方法破解医疗AI小样本困境
1. 量子集成方法在医疗与生命科学中的突破价值在医疗健康与生命科学(HCLS)领域,数据稀缺性一直是制约AI技术落地的核心瓶颈。以癌症免疫治疗为例,获取足够数量的患者样本往往需要数年时间,而每个样本可能包含数万个基因…...
虚拟化PCIe直通故障排查:BIOS设置、IOMMU组与QEMU参数全链路解析
1. 这不是驱动问题,是PCIe拓扑在“装睡” “虚拟化服务器PCI报错”——这六个字,我去年在三个不同客户的机房里反复听到过,每次都是凌晨两点被电话叫醒。运维同事第一反应永远是重装驱动、更新固件、换网卡,折腾两天后发现报错照旧…...
Godot 4.2 2D游戏开发:用TileMap图层一键搞定游戏地图的可行走区域
Godot 4.2 2D游戏开发:用TileMap图层一键搞定游戏地图的可行走区域在2D游戏开发中,地图设计往往是最耗时的环节之一。传统方法需要开发者手动绘制碰撞体或编写复杂的导航逻辑,而Godot 4.2的TileMap导航层功能彻底改变了这一局面。想象一下&am…...
XGBoost处理缺失值:构建面向天文大数据的极冷矮星智能发现系统
1. 项目概述:当机器学习遇见“暗弱”的宇宙居民在广袤的宇宙中,除了那些明亮耀眼的主序星和星系,还存在着一个庞大而“低调”的群体——极冷矮星。它们涵盖了光谱型晚于M6的恒星(如M型矮星)以及质量不足以点燃稳定氢聚…...
用机器学习与SHAP解析教育公平:巴西学生成绩预测模型实战
1. 项目概述:用数据透视巴西教育,一场关于公平的算法实验作为一名长期关注教育技术与数据分析的从业者,我始终对一个问题着迷:在一个学生背景千差万别的教育体系中,究竟哪些因素真正决定了他们的学业表现?是…...
Token CSS高级技巧:如何扩展自定义设计令牌和主题的终极指南
Token CSS高级技巧:如何扩展自定义设计令牌和主题的终极指南 【免费下载链接】tokencss 项目地址: https://gitcode.com/gh_mirrors/to/tokencss Token CSS是一个革命性的设计令牌工具,它让CSS开发变得更加智能和高效。如果你已经掌握了Token CS…...
用Python解放你的记忆:Genanki自动化Anki卡片生成终极指南
用Python解放你的记忆:Genanki自动化Anki卡片生成终极指南 【免费下载链接】genanki A Python 3 library for generating Anki decks 项目地址: https://gitcode.com/gh_mirrors/ge/genanki 你是否曾为手动创建数百张Anki卡片而头痛?是否想过将学…...
GCN vs MLP:在Cora数据集上,图神经网络到底强在哪?(附可视化对比)
GCN与MLP在Cora数据集上的本质差异:从特征聚合到空间重构的认知升级当我们面对学术文献分类任务时,传统机器学习方法往往将每篇文献视为独立个体进行处理。这种处理方式在Cora数据集上通常只能获得约50%的分类准确率,而图卷积网络(GCN)却能轻…...
