当前位置: 首页> 教育> 锐评 > 手机2345网址大全_动漫制作专业有哪些学校_it教育培训机构_淮安百度推广公司

手机2345网址大全_动漫制作专业有哪些学校_it教育培训机构_淮安百度推广公司

时间:2025/7/18 14:43:35来源:https://blog.csdn.net/davenian/article/details/144623475 浏览次数:0次
手机2345网址大全_动漫制作专业有哪些学校_it教育培训机构_淮安百度推广公司

起因

几个月前,开始重学编程,往 NAS 的 docker 里放了些 containers ,每一个用来跑练习的 App。为了放更多的app,上个月加了 4GB 内存。最近只放了两个,NAS 就会时不时的闪断。codes 全存在网络驱动器上,当存盘存时报错,浏览器显示网络断开,烦!登录 NAS QTS 会提示 swap 使用过高,内存用尽之类的。今天闲,调优顺手写个水文。 10年前 IT 是本行。

原有配置

  • 硬件是 QNAP TS-453D 2020年买的低配空壳,但送了 4GB 内存
  • 添了 2 块 4TB HHD 硬盘, RAID 1 运行,读出性提高。
  • 扩展卡,为使用 SSD 当缓存,提高性能。(还有一个 TS-210 特别慢)
  • 插了一片 256GB SSD  (Laptop 换下来的,可以说为这一片,买的上面这些...)
  • 上个月买了一条 4GB 内存



当前配置

初步性能提升

从上图,可以看到新加的 4GB 内存,在 NAS 中已经识别,虽然工厂不同,但兼容性是正常的。因为这是一个封闭的 Linux 系统,能做的不太多,只能在 OS 设置上找办法。

以下操作要使用 管理员 admin root 操作

1.预防网络服务的中断,减少 swap 使用

a. 调整 VM swappiness 去减少 swap 使用

文件:/proc/sys/vm/swappiness

VM Swappiness 是一个内核参数,控制 OS 使用交换内存(swap)的积极程度。值越高,系统越倾向于将内存中的数据放到硬盘;值越低,尽量保留数据在物理的内存中。

QNAP QTS 默认:25

[admin@davens templates]# cat /proc/sys/vm/swappiness
25

其实满低的,但我给它改为:10

[admin@davens templates]# echo 10 > /proc/sys/vm/swappiness
[admin@davens templates]# cat /proc/sys/vm/swappiness
10

b. 什么是 swap 虚拟内存 ( VM ) 技术

在 Linux 中,swap 是一种虚拟内存 ( VM ) 技术,它让系统使用硬盘空间来扩展物理内存(RAM)。当物理内存不够用时,系统会将一部分不常用的内存数据移到硬盘上的专用空间或文件,之后释放物理内存,把内存空间让给其它程序使用。

Linux Unix Windows 都用了这项技术

补充1: swap 会经常在硬盘的固定位置上 读写 操作, 如果你的物理内存足够大,比如我在用的老笔记本 32GB 内存,只是看网剧用。32GB 内存应该不会用满,可以在 Windows 11 中,把虚拟内存调为 0。还能保护 SSD。 

截屏这台 Laptop 是我儿子的,给个参考示范。在哪里设置 虚拟内存(Windows 里叫 Paging file),你需要以 系统管理员 身份运行才能修改:

c. 继续优化 修改 /etc/sysctl.conf

原文件内容:
[admin@davens templates]# cat /etc/sysctl.conf
vm.swappiness=10

有点儿奇怪,QNAP QTS 系统只有一行。淫吹斯丁。 /etc/sysctl.conf 是 Linux 系统中一个重要的内核参数配置文件。可以调整网络、内存管理、文件系统。

修改后内容:
[admin@davens templates]# sysctl -p
vm.swappiness = 10
vm.oom_kill_allocating_task = 1
vm.min_free_kbytes = 65536
vm.vfs_cache_pressure = 50
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.core.netdev_max_backlog = 2500
kernel.panic = 20
kernel.panic_on_oops = 1
[admin@davens templates]#
解释各个参数作用:

注:做这些前,不要完全参考我的参数,要以你的 NAS/Linux 系统来做相应调整

第一部分 内存管理

vm.swappiness = 10让系统更倾向使用物理内存
vm.oom_kill_allocating_task = 1OOM killer(Out-Of-Memory killer)当系统内存耗尽时,会选择并杀死 1 个进程,来释放内存
vm.min_free_kbytes = 65536系统必须保留 64 MB 内存  (通常是物理内存的 1% - 5%,因为我把 swap 放在 SSD,用 7 GB 的 1%,取最近 8 的倍数。)
vm.vfs_cache_pressure = 50控制内核,回收文件系统缓存(值:1-100), 50 内核减少回收缓存,提高文件系统性能。
第二部分 网络性能
net.core.rmem_max = 16777216设置接收的网络缓冲区:16MB 提高在高带宽、高延迟或高并发网络环境下的性能
net.core.wmem_max = 16777216设置发关的网络缓冲区:16MB 提高在高带宽、高延迟或高并发网络环境下的性能
net.ipv4.tcp_rmem = 4096 87380 16777216单独优化 Tcp 缓冲区的接收值大小。最小 4096 bytes,Linux默认值 87380, 最大值 16MB。
net.ipv4.tcp_wmem = 4096 65536 16777216单独优化 Tcp 缓冲区的发送值大小。最小 4096 bytes,Linux默认值 65536, 最大值 16MB。
net.core.netdev_max_backlog = 2500数据包队列的最大长度,在高负载时减少数据包丢失。
第三部分 系统稳定性
kernel.panic = 20内核崩溃后 20 秒自动重启
kernel.panic_on_oops = 1内核发生 Oops,系统会立即进入 panic,20秒后重启

注:Oops 当 Linux 内核检测到一些不一致或异常情况时,会生成 Oops 信息,但通常不会导致系统立即能崩溃。

2. 找出 swap 配置

a. CMD: free -g
[admin@davens ~]# free -gtotal       used       free     shared    buffers     cached
Mem:             7          4          3          0          0          0
-/+ buffers/cache:          3          4
Swap:           30          5         24

可以看到内存状态:

  • 总共:7GB (可能系统占用1GB没显示)
  • 使用:4GB
  • 可用:3GB
  • 缓存:0GB
  • 实际空闲:4GB (含缓存)
  • 实际使用:3GB (含缓存)

可以了解交换内存 swap 状态:

  • 总共:30GB
  • 使用:5GB
  • 空闲:24GB  

以前没留意过,没想到 QNAP 默认在系统里,分给这么大的交换内存,我的知识里,交换内存最大是物理内存的 2 倍。 现在技术是进步,还是逻辑不同了吗?

建议1:以下操作,先备份数据,再执行后面的命令。(我没有备份数据,以前是做 IT 的,就算 OS 起不来,也容易搞定。)

建议2:如果你的 NAS 是 RAID 1, 可以摘下一块儿硬盘或同组硬盘,幸运的话重建用1-2天,万一系统毁了,用这块/组盘来启动,能恢复之前的配置。

b. swaps 交换文件
原配置:/proc/swaps 用于存储 swaps 信息的
[admin@davens templates]# cat /proc/swaps
Filename                                Type            Size            Used            Priority
/dev/md321                              partition       7751228         6026840         -2
/dev/md256                              partition       530108          0               -3
/dev/md322                              partition       6702652         0               -4
/share/CACHEDEV1_DATA/.swap/qnap_swap   file            16777212        0               -5

从上面可以了解到:QNAP NAS 的交换内存(文件)的具体配置(文件名,交换内存的类型,大小,使用情况,优先级),TMD 我说 NAS 硬盘总是响,原来是 swap 害的。

QNAP QTS 把交换内存 swap 文件分为三份: /dev/md321  /dev/md256/ dev/md322 ,现在内存不够用,要经常读写 swap 这部分,草得雷。

而且它已经用了 CACHEDDEV1_DATA 这是 SSD 设备,优先级是 -5。竟然是最后,合着一只没用上。. 

c. 在 SSD 上创建一个新的 8GB swap 
[admin@davens templates]# dd if=/dev/zero of=/share/CACHEDEV1_DATA/.swap/ssd_swap bs=1M count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.0GB) copied, 39.890566 seconds, 205.4MB/s
[admin@davens templates]#

写的速度是 205.4MB/s ,现在可以确定 CACHEDDEV1_DATA 是 SSD,就用它做 swap。

这是 NAS 上的 SSD 缓存配置,就不分析上面的内容。 看到是健康的就行。

继添加 “ssd_swap” 到 swap 中,还要用以下的命令:

  • 分配权限 600:chmod 600 /share/CACHEDEV1_DATA/.swap/ssd_swap
  • 格式化新的swap:mkswap /share/CACHEDEV1_DATA/.swap/ssd_swap
  • 分配优先级:swapon -p -1 /share/CACHEDEV1_DATA/.swap/ssd_swap (但 QNAP 不支持 -1)
[admin@davens templates]# chmod 600 /share/CACHEDEV1_DATA/.swap/ssd_swap
[admin@davens templates]# mkswap /share/CACHEDEV1_DATA/.swap/ssd_swap
Setting up swapspace version 1, size = 8589930 kB
[admin@davens templates]# swapon -p -1 /share/CACHEDEV1_DATA/.swap/ssd_swap
[admin@davens templates]# cat /proc/swaps
Filename                                Type            Size            Used            Priority
/dev/md321                              partition       7751228         5995864         -2
/dev/md256                              partition       530108          0               -3
/dev/md322                              partition       6702652         0               -4
/share/CACHEDEV1_DATA/.swap/qnap_swap   file            16777212        0               -5
/share/CACHEDEV1_DATA/.swap/ssd_swap    file            8388604         0               -6

执行完以上命令后,竟然是 -6 ,新做的 swap 现在是最后一个使用的。

d. 重新分析 swaps 优先级
原来的:
[admin@davens templates]# cat /proc/swaps
Filename                                Type            Size            Used            Priority
/dev/md321                              partition       7751228         5995864         -2
/dev/md256                              partition       530108          0               -3
/dev/md322                              partition       6702652         0               -4
/share/CACHEDEV1_DATA/.swap/qnap_swap   file            16777212        0               -5
/share/CACHEDEV1_DATA/.swap/ssd_swap    file            8388604         0               -6
把每一个 swap 从系统中脱离:
[admin@davens templates]# swapoff /share/CACHEDEV1_DATA/.swap/ssd_swap
[admin@davens templates]# swapoff /share/CACHEDEV1_DATA/.swap/qnap_swap
[admin@davens templates]# swapoff /dev/md322
[admin@davens templates]# swapoff /dev/md256
[admin@davens templates]# swapoff /dev/md321
重新分配优先级:
[admin@davens templates]# swapon -p 1 /share/CACHEDEV1_DATA/.swap/ssd_swap
[admin@davens templates]# swapon -p 2 /share/CACHEDEV1_DATA/.swap/qnap_swap
[admin@davens templates]# swapon -p 3 /dev/md321
[admin@davens templates]# swapon -p 4 /dev/md256
[admin@davens templates]# swapon -p 5 /dev/md322
修改之后:
[admin@davens templates]# cat /proc/swaps
Filename                                Type            Size            Used            Priority
/share/CACHEDEV1_DATA/.swap/ssd_swap    file            8388604         23872           1
/share/CACHEDEV1_DATA/.swap/qnap_swap   file            16777212        0               2
/dev/md321                              partition       7751228         0               3
/dev/md256                              partition       530108          0               4
/dev/md322                              partition       6702652         0               5
[admin@davens templates]#

现在 VM 使用了 SDD。正因为交换内存 swap 从 HHD 换到了 SSD, NAS 安静多了。希望这个 3星 SSD 有长寿。 

关键字:手机2345网址大全_动漫制作专业有哪些学校_it教育培训机构_淮安百度推广公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: