搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
我家自动化
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Ant Design tree 一级多选二级单选_ant design 级联如何可以选第一级
2
Git突破文件限制上传大文件_agit 文件数量
3
[react native]mac M2搭建react native-iOS端 全过程!!!_react native installing ruby gems
4
Winpcap数据包的抓取及还原_清空pcap_next_ex中pkt_data指向的缓存
5
python模拟抛硬币_关于概率:模拟2个人抛硬币直到获得第一个头像Python
6
java异常体系简介_trowable 转string
7
zabbix监控windows进程_proc.mem[
,
,
,
,
]
8
使用 Windows Deployment Services 部署 VHD Native Boot——苏繁
9
linux kernel 内存踩踏之KASAN(一)
10
六、ChatGPT需要什么资源?
当前位置:
article
> 正文
liunx调优(未完)_linux 调优
作者:我家自动化 | 2024-02-27 01:52:13
赞
踩
linux 调优
文件系统调优:
使用适当的文件系统:选择合适的文件系统类型,如Ext4、XFS等,以满足性能和可靠性需求。
根据需求选择适当的文件系统类型。常见的Linux文件系统包括ext4、XFS、Btrfs等,每种文件系统都有其特定的性能和功能特点。
考虑文件系统的可靠性、性能、快照支持、扩展性等因素,并选择最适合应用需求的文件系统。
调整文件系统参数:通过修改文件系统的参数来提高性能,如调整读写缓冲区大小、文件系统日志模式等。
考虑修改文件系统的参数以提高性能。例如,调整文件系统的读写缓存大小、最大文件句柄数、写入延迟等参数。
对于ext4文件系统,可以调整相关参数如data=writeback、commit等来改善性能。
使用适当的挂载选项:
在挂载文件系统时,使用适当的挂载选项以优化性能。例如,对于SSD驱动器,可以使用noatime选项来禁用文件访问时间更新,减少写操作。
其他常用的挂载选项包括nodiratime、barrier、noexec等,具体根据需求和文件系统类型进行选择。
分区和磁盘布局:
合理分区和布局磁盘以提高性能和可用性。将不同类型的数据放在不同的分区中,例如将日志、数据库文件等分别放置在独立的分区中,以减少文件系统碎片和提高访问效率。
考虑使用RAID或LVM等技术来提供磁盘冗余和灵活性。
RAID(冗余阵列)和 LVM(逻辑卷管理)是常用的技术,用于提供磁盘冗余性和灵活性。下面是它们的简要介绍和如何使用它们:
RAID(冗余阵列):RAID 是一种通过将多个物理磁盘组合起来创建逻辑卷的技术,它提供了数据冗余和/或增加存储性能的能力。常见的 RAID 级别包括 RAID 0、RAID 1、RAID 5、RAID 6 等。每个级别都有不同的冗余和性能特性。
RAID 0:条带化(Striping),将数据分散存储在多个磁盘上,提高性能,但没有冗余。
RAID 1:镜像化(Mirroring),将数据复制到多个磁盘上,提供冗余性。
RAID 5:条带化加奇偶校验(Striping with Parity),将数据和校验信息分散存储在多个磁盘上,提供冗余性和性能。
RAID 6:类似于 RAID 5,但提供了更高的冗余性,可以容忍多个磁盘故障。
使用 RAID 技术,您可以在操作系统级别或硬件级别实现。在操作系统级别,您可以使用软件 RAID(例如 Linux 的 mdadm)配置和管理 RAID 数组。在硬件级别,您可以使用 RAID 控制器卡来管理 RAID 数组。
LVM(逻辑卷管理):LVM 是一种在物理磁盘上创建逻辑卷并提供灵活性和管理功能的技术。它允许您将多个物理磁盘组合成一个或多个卷组(Volume Group),并在卷组上创建逻辑卷(Logical Volume)。您可以根据需要调整逻辑卷的大小,添加或删除磁盘,以及进行快照和扩展等操作。
LVM扩容
使用物理卷管理工具(如pvresize)扩展 LVM 卷:
命令:pvresize /dev/sdX (将 /dev/sdX 替换为要扩展的物理卷的设备名称)
说明:这会扩展指定的物理卷以利用新增的磁盘空间。
使用逻辑卷管理工具(如lvextend)扩展 LVM 逻辑卷:
命令:lvextend -L +XG /dev/mapper/vgname-lvname (将 X 替换为要增加的容量,vgname 替换为卷组名称,lvname 替换为逻辑卷名称)
说明:这会将指定的逻辑卷增加 X GB 的容量。
使用文件系统工具(如resize2fs)扩展 ext2/ext3/ext4 文件系统:
命令:resize2fs /dev/mapper/vgname-lvname (将 vgname 替换为卷组名称,lvname 替换为逻辑卷名称)
说明:这会将文件系统扩展到逻辑卷的新容量。
使用磁盘分区工具(如fdisk、parted)调整分区大小:
命令:根据具体工具使用方式进行分区调整,一般包括删除旧分区、创建新分区并使用新的起始扇区。
说明:这种方式适用于直接调整分区大小的情况,但可能需要重新挂载文件系统或重启系统才能生效。
使用 LVM,您可以在操作系统级别进行配置和管理。在 Linux 系统中,LVM 的相关工具包括 pvcreate(创建物理卷)、vgcreate(创建卷组)、lvcreate(创建逻辑卷)等。您可以使用这些工具来创建和管理 LVM。
要使用 RAID 或 LVM 技术提供磁盘冗余和灵活性,您需要按照以下步骤进行操作:
硬件准备:确保您有足够的物理磁盘可供使用,并了解它们的属性和规格。
RAID 配置:如果选择使用 RAID 技术,确定所需的 RAID 级别,并配置 RAID 数组。这可以通过软件或硬件 RAID 实现。
LVM 配置:如果选择使用 LVM 技术,创建一个或多个卷组,并在其上创建逻辑卷。根据需要进行大小调整和其他管理操作。
文件系统:在 RAID 数组或逻辑卷上创建文件系统,使其可用于存储和访问数据。
检测和监控:定期检查 RAID 数组或 LVM 的状态,确保磁盘冗余和性能正常工作。监控磁盘健康状态和存储使用情况。
请注意,使用 RAID 和 LVM 都涉及到数据存储的重要操作,因此在操作之前,请确保您了解这些技术的工作原理和潜在的风险。此外,备份重要数据也是非常重要的,以防止意外数据丢失。
文件系统压缩:
对于支持文件系统压缩的文件系统,可以考虑使用压缩功能来减少磁盘空间的使用和提高文件访问速度。但是需要权衡压缩和解压缩的开销。
定期维护和监控:
定期进行文件系统的维护和检查,如文件系统修复、碎片整理等操作,以保持文件系统的健康状态。
监控文件系统的空间使用率、读写性能等指标,及时发现和解决问题。
内核参数调优:
调整内核参数:修改/sys或/proc文件系统中的内核参数,以优化系统性能,如调整网络参数、文件句柄限制、内存管理参数等。
/sys或/proc文件系统具体文件和参数
/proc/sys 目录:包含了各种内核参数的文件,可以通过修改这些文件来调整内核参数。例如:
/proc/sys/net/ipv4/tcp_syncookies:TCP SYN cookies的开关。
/proc/sys/net/ipv4/tcp_fin_timeout:TCP连接终止的超时时间。
/sys 目录:提供了对内核和设备驱动程序的运行时访问和控制。其中的一些文件和目录可以用于调整系统配置。例如:
/sys/kernel/sched_min_granularity_ns:调度器的最小时间片。
/sys/kernel/sched_wakeup_granularity_ns:调度器的唤醒间隔。
/proc/sys/fs 目录:包含与文件系统相关的内核参数。例如:
/proc/sys/fs/file-max:系统最大文件句柄数。
/proc/sys/fs/nr_open:每个进程可以打开的文件句柄数的限制。
/proc/sys/net 目录:包含与网络相关的内核参数。例如:
/proc/sys/net/core/somaxconn:每个套接字监听队列的最大长度。
/proc/sys/net/ipv4/tcp_max_syn_backlog:TCP SYN队列的最大长度。
/proc/sys 目录:
/proc/sys/kernel/panic:内核崩溃时的延迟时间。
/proc/sys/kernel/sem:进程间信号量的最大值。
/proc/sys/kernel/threads-max:系统支持的最大线程数。
/proc/sys/vm/swappiness:内核在进行交换(swap)前尝试使用内存的程度。
/sys 目录:
/sys/devices/system/cpu 目录:包含了与CPU相关的文件,如 CPU 频率和性能模式。
/sys/block/<device>/queue/scheduler:磁盘调度器(I/O Scheduler)的选择。
/sys/class/net/<interface>/mtu:网络接口的最大传输单元(MTU)。
/proc/sys/fs 目录:
/proc/sys/fs/file-max:系统最大文件句柄数。
/proc/sys/fs/inotify/max_user_watches:每个用户可监视的文件数。
/proc/sys/fs/nr_open:每个进程可以打开的文件句柄数的限制。
/proc/sys/net 目录:
/proc/sys/net/core/somaxconn:每个套接字监听队列的最大长度。
/proc/sys/net/ipv4/ip_forward:IPv4 转发的开关。
/proc/sys/net/ipv4/tcp_keepalive_time:TCP keepalive 的时间间隔。
内存管理:
vm.swappiness:调整内存交换行为的参数。可以设置为较低的值(如1)以减少交换分区的使用,提高性能。
vm.dirty_ratio和vm.dirty_background_ratio:控制脏页面(待写入磁盘的数据)的比例。可以适当调整这两个参数,以平衡系统性能和数据持久性之间的权衡。
文件系统:
fs.file-max:设置系统最大文件句柄数。适当增加该值可以支持更多的文件打开操作。
fs.nr_open:设置每个进程可以打开的文件句柄数的限制。
网络:
net.core.somaxconn:设置系统中每个套接字监听队列的最大长度。可以调整该值以适应高并发连接。
net.ipv4.tcp_max_syn_backlog:设置TCP SYN队列的最大长度,用于处理入站连接请求。
调度器和性能:
kernel.sched_min_granularity_ns和kernel.sched_wakeup_granularity_ns:调整调度器的最小时间片和唤醒间隔,以平衡响应性能和CPU利用率。
kernel.numa_balancing:控制NUMA架构系统中内存和进程的平衡行为。
安全和网络:
net.ipv4.tcp_syncookies:启用SYN cookies以抵御TCP SYN Flood攻击。
net.ipv4.tcp_fin_timeout:调整TCP连接终止的超时时间,以释放处于TIME_WAIT状态的连接。
提高文件描述符限制:增加文件描述符的限制,以便系统可以处理更多的并发连接和文件操作。
网络调优:
TCP参数优化:调整TCP协议的参数,以提高网络传输性能和稳定性,如修改TCP窗口大小、启用TCP快速打开等。
使用网络加速工具:使用工具如TCP BBR、Nginx、HAProxy等来优化网络传输效率和负载均衡能力。
内存管理调优:
提高文件系统缓存:通过调整内核参数,提高文件系统的缓存大小,加快文件访问速度。
使用适当的Swap分区:配置合适的Swap分区,以满足内存需求和提高系统的稳定性。
CPU调优:
设置合理的CPU调度策略:根据应用程序的特点,选择适当的CPU调度策略,如CFS、实时调度等。
禁用不必要的CPU频率调节:禁用动态频率调节,将CPU频率锁定在固定的值,以提供稳定的性能。
磁盘IO调优:
使用RAID技术:使用RAID来提高磁盘IO性能和可靠性。
使用磁盘调度器:选择合适的磁盘调度算法,以优化磁盘IO性能,如NOOP、Deadline、CFQ等。
NOOP、Deadline、CFQ算法
NOOP(No-op)算法:NOOP 算法是一种简单的磁盘调度算法,它不对磁盘访问请求进行排序或调度,按照请求的顺序进行处理。适合于低负载的系统或具有自身磁盘调度能力的设备,例如固态硬盘(SSD)。它的优点是可以最大限度地减少 CPU 的开销,并且适用于不需要复杂调度的情况。
Deadline 算法:Deadline 算法根据请求的截止时间(deadline)进行调度,将优先级较高的请求优先处理。它的目标是保证及时响应对实时性要求较高的请求。适合于对响应时间有较高要求的环境,如交互式应用和实时系统。Deadline 算法通常适用于大多数普通的桌面和服务器环境。
CFQ(Completely Fair Queuing)算法:CFQ 算法通过将请求放入多个队列,并按照权重进行调度,以实现公平的磁盘访问。它根据进程的 I/O 优先级和权重来分配磁盘时间片,并尽量平衡不同进程之间的磁盘访问。适合于多任务环境,可以提供较好的吞吐量和公平性。CFQ 算法通常适用于具有大量并发 I/O 请求的服务器环境。
使用适当的磁盘调度算法:磁盘调度算法决定了磁盘访问请求的顺序,以优化磁盘性能。常见的磁盘调度算法包括 CFQ、Deadline、NOOP 等。具体操作如下:
查看当前磁盘调度算法:cat /sys/block/sdX/queue/scheduler(将 sdX 替换为磁盘设备名称)
切换磁盘调度算法(例如切换到 Deadline 算法):echo deadline > /sys/block/sdX/queue/scheduler(将 sdX 替换为磁盘设备名称)
启用磁盘缓存:磁盘缓存可以提高磁盘 I/O 的性能。具体操作如下:
查看当前磁盘缓存设置:cat /sys/block/sdX/device/cache_mode(将 sdX 替换为磁盘设备名称)
启用磁盘缓存:echo writeback > /sys/block/sdX/device/cache_mode(将 sdX 替换为磁盘设备名称)
调整磁盘 I/O 调度参数:可以调整一些磁盘 I/O 相关的参数来优化性能。具体操作如下:
调整读写请求的批处理大小:echo X > /sys/block/sdX/queue/read_ahead_kb(将 sdX 替换为磁盘设备名称,X 替换为批处理大小的值)
进程和服务管理:
禁用不必要的服务:停止或禁用不需要的系统服务和进程,以释放系统资源并提高性能。
使用进程管理工具:使用工具如systemd、supervisord等来管理进程的启动、停止和监控,以提高进程的稳定性和可管理性。
网络优化:
使用网络加速技术:采用技术如网络加速器、网卡绑定、数据包分发等来提高网络吞吐量和传输效率。
调整网络缓冲区:根据网络流量和延迟需求,调整网络缓冲区的大小,以提高网络传输性能。
日志管理:
管理日志大小:配置日志轮转和压缩机制,限制日志文件大小,避免日志过大导致磁盘空间不足。
合理设置日志级别:根据需要,调整日志级别,避免过多的冗余日志记录,提高系统的效率。
安全性调优:
配置防火墙:使用防火墙工具如iptables、firewalld等来限制入站和出站的网络访问,提高系统的安全性和稳定性。
硬化系统设置:禁用不必要的协议和服务,限制用户权限,加强系统的安全性。
资源限制和优化:
进程资源限制:通过配置ulimit参数,限制单个进程的资源使用,以防止某个进程过度消耗系统资源。
使用资源监控工具:使用工具如top、htop、sar等来监控系统资源的使用情况,及时发现和解决资源瓶颈问题。
应用程序调优:
优化数据库配置:针对具体的数据库系统,调整数据库的缓存大小、连接池设置等,以提高数据库性能。
使用缓存技术:采用缓存技术如Redis、Memcached等来缓存热门数据,减轻后端服务器的负载。
缺失的部分交流一下。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/我家自动化/article/detail/149104
推荐阅读
article
android
environment setup
in
l
in
ux
operation...
1 简介Android(读音[ˈændrɔɪd])是Google主持开发的开源移动平台。整个平台包括操作系统、中间件、虚...
赞
踩
article
如何在
Linux
中
使用
GPG
加密和
解密
文件?_
gpg
密码
解密
命令...
GPG
(GNU Privacy Guard)是一种免费的开源加密软件,用于保护计算机数据的机密性和完整性。它
使用
非对称加...
赞
踩
article
Linux
gpg
命令(
gpg
指令、
gpg
加密
工具)(GNU Privacy Guard、GnuPG...
也会弹出消息提示输入passphrase,然后有两种解决办法,一种是把
密码
写在
文件
里,执行命令时去读,另一种是使用管道,...
赞
踩
article
手把手指导:在
Linux
上使用 GPG 加解密文件_
gpg
--
edit
-
key
...
gpg
_
gpg
--
edit
-
key
gpg
--
edit
-
key
GnuPG,俗称 GPG,是一...
赞
踩
article
[
linux
]
GPG
全面
指令
((子)
密钥
的
创建
/
删除
/
吊销
/上传/修改及基本的安全流程)_linu...
Linux环境下
GPG
的
指令
合集,基本包括
GPG
应用所有方面,包括
创建
,
删除
,
吊销
,上传,下载,修改
密钥
及子
密钥
,附带一...
赞
踩
article
linux
密码
生成
gpg
,
gpg
密钥
生成
与延期...
#
生成
gpg
密钥
gpg
--gen-key#
生成
吊销证书
gpg
--gen-revoke695C8981B2442634#列...
赞
踩
article
【
ubuntu
-18.04】
ubuntu
18.04进行Nvidia显卡配置_
ubuntu
linux
...
弄显卡驱动弄了很久,主要是因为网上的解答良莠不齐且版本并不适合。套路比较深。以下我的解答可能不具有普适性,仅供参考!本人...
赞
踩
article
linux
ubuntu
系统 集成(
intel
)
显卡
做
显示
,独立(
nvidia
)
显卡
做计算_ubun...
linux
ubuntu
系统 集成(
intel
)
显卡
做
显示
,独立(
nvidia
)
显卡
做计算 一般来说,用于机器学习的电...
赞
踩
article
ubuntu
linux
kernel
内核操作...
下载地址:http://ftp.sjtu.edu.cn/sites/ftp.
kernel
.org/pub/
linux
/k...
赞
踩
article
Linux
进程
详解...
本文主要介绍一下
进程
的基本信息
Linux
进程
详解 目录 一、
进程
创建 二、
进程
API ...
赞
踩
article
嵌入式
培训机构四个月实训课程笔记
(
完整版
)
-
Linux
ARM
驱动
编程第八天-高级
驱动
framebu...
嵌入式
物联网
ARM
LINUX培训实战笔记,欢迎点赞收藏。
嵌入式
培训机构四个月实训课程笔记
(
完整版
)
-
Linux
ARM
...
赞
踩
article
【
linux
】设置
Ubuntu
系统
内核版本_
ubuntu
kernel
-
modules
-
extra
...
设置
Ubuntu
系统
内核版本_
ubuntu
kernel
-
modules
-
extra
ubuntu
kernel
-modu...
赞
踩
article
ubuntu
linux
回退
内核
升级
内核
内核
切换_
dpkg
--
get
-
selections
|...
1.找出系统已经安装的
内核
版本,在终端里输入命令:
dpkg
--
get
-
selections
|
grep
linux
-...
赞
踩
article
Linux
(
ubuntu
)更换
内核
方法_
libncurses5
-
dev
与
build
-essentia...
简介:
Linux
搭建实时系统预备篇。一、环境硬件:x86系统:Ubuntu14.04.5初始
内核
:4.4.0-31替换内...
赞
踩
article
linux
系统
的目录结构...
在这篇文章中,让我们主要讲述一下Linux文件
系统
结构,并解释各个目录的含义。
linux
系统
的目录结构 ...
赞
踩
article
Linux
-
系统
资源管理
的命令...
目录查看CPU:more /proc/meminfo 查看内存数据:free -m / free -h查看
系统
版本:m...
赞
踩
article
ATF
Makefile
的
简介及
嵌入式应用
_atf
的
作用
linux
...
ATF
Makefile
是用于编译和构建
ATF
源代码
的
关键配置文件,在嵌入式系统中具有重要作用。通过合理地设置Makef...
赞
踩
article
powerpc
-
linux
内核
start
_
kernel
之前
启动
分析
(1)-开门见山_
powerpc
...
公司处理器换核,前期用FPGA仿真板进行了芯片验证和软件移植,借这个机会也学习了
powerpc
处理器的一些知识,对pow...
赞
踩
article
嵌入式
培训机构四个月实训课程
笔记
(
完整版
)
-
Linux
ARM
驱动编程第四天-
ARM
Linux
编程...
arm linux实战开发
笔记
,值得参考和收藏。
嵌入式
培训机构四个月实训课程
笔记
(
完整版
)
-
Linux
ARM
驱动编程第...
赞
踩
article
嵌入式
培训机构四个月实训课程
笔记
(
完整版
)-
Linux
ARM
驱动
编程
第六天-
ARM
Linux
编程
...
ARM
LINUX实战培训
笔记
干货,欢迎收藏点赞。
嵌入式
培训机构四个月实训课程
笔记
(
完整版
)-
Linux
ARM
驱动
编程
...
赞
踩
相关标签
android
linux
eclipse
java
硬件驱动
虚拟机
服务器
运维
安全
linux 密码生成 gpg
显卡驱动
ubuntu
集显显示
nvidia
独显计算
改行学it
开发语言
学习方法
笔记
arm开发