代码编织梦想

版本说明:

Raspberry Pi 3B+

Ubuntu 20.04 server本文参考翻译自这篇文章

SWAP文件的设置

      Swap是硬盘存储的一部分,它被预留给操作系统。当RAM中不再有足够的空间来保存正在运行的应用程序数据的时候,硬盘中的Swap空间可以用来临时存储那些无法再在RAM中保存的数据,这可以增加服务器在其工作内存中保存的信息量。

先看看操作系统是不是已经预留了swap空间:

swapon –show

如果没有任何输出,说明没有swap空间。

再用free -h命令看看:

没想到,我的Raspberry Pi 3B+根本没有预留swap空间,这就是为什么系统经常会出现out of memory的原因。

一般来说,等于或是系统内存量的两倍是一个很好的起点。另一个很好的经验法则是,如果您只是将4G以上的交换用作RAM备用(fallback),那么它可能是不必要的。

查Raspberry Pi 3B+的RAM是多少,从free -h(或则cat /proc/meminfo)中看,RAM是1G。所以,按上述原则,设置1G或2G的SWAP比较合适。

建立一个叫swapfile的swap文件,尺寸是1G:

sudo fallocate -l 1G /swapfile

看一下情况:

ls -lh /swapfile

 为这个文件限制特权:

sudo chmod 600 /swapfile

 让swapfile变成swap空间:

sudo mkswap /swapfile

 开启这个swap文件:

sudo swapon /swapfile

然后看一下是不是起作用了:

 重启后上述关于swap的设置会失效,所以需要永久保存所有有关swap的设置。

先备份fstab文件:

sudo cp /etc/fstab /etc/fstab.bak

然后把swap的设置信息放到fstab的后面:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

关于swap的设置完毕。

有关swap文件的两种性能调整参数

swappiness

      swappiness参数是将数据从RAM交换到swap空间的频率。这是一个介于0和100之间的值,代表一个百分比。如果值接近零,除非绝对必要,否则内核不会将数据交换到硬盘。记住,与swap文件的交互是“昂贵的”,因为它们比与RAM的交互花费的时间要长得多,并且会导致性能显著降低。告诉系统不要太依赖swap通常会使系统更快。

     接近100的值将尝试将更多数据放入swap,以保持更多的RAM空间。根据应用程序的内存配置文件或服务器的用途,在某些情况下这可能会更好。

查看当前的swappiness:

cat /proc/sys/vm/swappiness

输出:60

对桌面系统来说60不是个坏的数字,但是对于服务器,应该接近0.

可以用sysctl改变swappiness的值:

sudo sysctl vm.swappiness=10

这是临时设置,如果需要将设置变成永久的,在etc/sysctl.conf中增加这项:

sudo nano /etc/sysctl.conf

在最底下增加:

vm.swappiness=10

vfs_cache_pressure

   此参数可以让系统选择在多大程度上缓存inodedentry信息,而不是其他数据。基本上,这是访问有关文件系统的数据,而访问这些数据通常会出现非常昂贵的查找和非常频繁的请求,所以系统缓存这些数据可以显著提高性能。

cat /proc/sys/vm/vfs_cache_pressure

输出:100

     由于当前的配置,我们的系统从缓存中删除inode信息的速度太快。我们可以设置为更保守的数字,如50:

sudo sysctl vm.vfs_cache_pressure=50

输出:vm.vfs_cache_pressure = 50

以上也是一个临时设置,永久保存的方法是把设置加到/etc/sysctl.conf中,如下:

sudo nano /etc/sysctl.conf

在最下面,输入:

vm.vfs_cache_pressure=50
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39472686/article/details/124707607

vmware workstation安装arch linux和xfce桌面教程-爱代码爱编程

为什么80%的码农都做不了架构师?>>>    本文永久地址:https://my.oschina.net/bysu/blog/1577013 参考: https://blog.mrx.one/2017/03/20/How-to-install-Arch-Linux-with-Cinnamon-des

Linux学习笔记-爱代码爱编程

19.vim可视模式 :s /old/new 替换光标所在行 old替换为new :%s /old/new 替换当前文件中的old为new,只替换一个 :%s /old/new/g  替换当前文件中的old为new,替换所有 :set nonu 不显示行号 vim etc/vimrc 修改vi

树莓派4b编译安装OpenCV4和opencv_contrib4-爱代码爱编程

由于近期4b的发布,我在树莓派的交流群和网上看到有很多买了4b的小伙伴发现4b编译不了OpenCV,其实不是编译不了,而是我们执行 git clone 克隆OpenCV时克隆了最新的(主/Master)分支版本,主分支版本下可能有些不同于旧版本的编译配置,对于小白来说操作起来还是有些难度的,这里我就分享一下我编译 4.1.0 版本的OpenCV和op

usage.txt-1-爱代码爱编程

系统迁移,虚拟机系统向host机迁移的实现如下: 虚拟机迁移到实体机工具准备: usb 3.0硬盘盒 x1 2T 128 cache x1 usb 3.0 接口 x1 虚拟机迁移到虚拟磁盘的工具准备: 2T vmdk分割 x1 第一部分 制作引导分区 1.grub-install /dev/

Opencvsharp移植到Arm64(rk3399pro)-爱代码爱编程

        最近公司要做一个火灾图像识别程序,要在板子上跑。板子是firefly3399pro,这板子性能比较好,带gpu,但是这次时间的关系就选择opencv来做图像识别,gpu性能就无法发挥了,但cpu也是6核。由于用的netcore,在nuget上用了opencvsharp库,使用还是很方便,对opencv封装比较好,函数名基本一致,但是有个最大

让kaldi在Linux开发板上运行起来~ (测试运行篇)-爱代码爱编程

【kaldi各文件解释】 /egs:不同语料例子的执行脚本文件 /tools:存放asr过程中用到的库 /src:存放实际执行的c++算法 解码工具(src/onlinebin中): online-gmm-decode-faster:识别从麦克风输入的语音 online-wav-gmm-decode-faster:识别指定的wav文件 【分析ch

树莓派4+TensorFlow+OpenCV+英特尔加速棒环境搭建-爱代码爱编程

文章目录 一、树莓派系统烧录二、更换源2.1、设置root登录密码2.2、更换apt 源2.2.1、先备份源文件2.2.2、编辑系统源文件2.2.3、更改系统源2.2.4、更新索引2.3、更换pip源2.4、参考文章三、树莓派设置3.1、设置静态IP地址3.2、开启ssh远程登录3.3、修改原始pi账号、密码3.4、配置无线网络3.5、设置时区3.

OpenEuler-爱代码爱编程

目录   实验一:操作系统简介 实验二:内存管理 实验三:进程管理 实验四:中断和异常管理 实验五:内核时间管理 实验六:设备管理 实验七:文件系统 实验八:网络管理 实验九:内核虚拟化 实验一:操作系统简介 配置yum更新源 cd /etc/yum.repos.d/ [base] name=EulerOS-2.0SP8 b

jetson nano上手记录-爱代码爱编程

英伟达Jetson nano A02上手记录 记录本人在使用nano中遇到的问题及解决硬件介绍上手开始使用opencv测试安装pipcsi摄像头驱动来一断实时视频检测部署深度学习下面开始来跑通darknet从git上获取代码:修改Makefile文件:编译:下载训练所需要的权重图片检测视频检测csi摄像头检测usb摄像头检测下面开始来跑tensor

Oracle VM VirtualBox 使用教程,说实话也就那样吧-爱代码爱编程

一、准备工作 1.1 VirtualBox 介绍   为大家介绍一款免费的虚拟机软件——Oracle VM VirtualBox,一个跨平台的虚拟化应用程序。它可以安装在您现有的基于 Intel 或 AMD 的计算机上,无论它们运行的是 Windows、Mac OS X、Linux 等操作系统。其次,它扩展了现有计算机的功能,使其可以同时在多个虚拟

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag-爱代码爱编程

简介 靶机地址:EnuBox: Mattermost ~ VulnHub Name:EnuBox:Mattermost 靶机介绍:The Mattermost chatting system may or may not hold sensitive information. Can you find your way in? 信息搜集 拿到靶机 I

关于Linux的shell里面正常的小数点会显示成逗号这件事。-爱代码爱编程

问题 正常使用Linux系统里面的命令,比如查磁盘空间大小的命令,或是用top命令看系统资源等等,会出现其中的小数点会变成逗号这种情况。比如:我用top查看,然后出现了下图的情况。 我们可以看到一般来说,上面红圈的位置应该是小数点的,而现在则是逗号。 解决 这是由于shell系统语言的原因所导致的。 首先输入 locale 得到如下的图:

ping丢包故障处理-爱代码爱编程

1、Ping丢包故障定位思路故障分析 Ping丢包是指Ping报文在网络中传输,由于各种原因(如线路过长、网络拥塞等)而产生部分Ping报文丢弃的现象。在使用Ping命令,出现Ping丢包的现象时,第一步需要确定Ping丢包的网络位置,其次是确定Ping丢包的故障原因,然后依据定位的故障原因再进行解决。 确认Ping丢包的网络位置时一般采用逐段Ping

linux 使用 nginx 搭建 zookeeper 集群-爱代码爱编程

搭建 zookeeper 集群,笔者这里使用3台 centos7 服务器,它们 ip 分别是 192.168.0.125;192.168.0.123;192.168.0.117,后面简称 125,123,117 然后为3台服务器配置 java 环境,笔者这里的3台服务器已经成功安装 java 环境,没有安装 java 环境的朋友可以参考:https:

nginx1.17.5版本升级到1.20.2-爱代码爱编程

nginx安装版本为1.17.5,在一次漏洞中扫描出漏洞,需要升级版本。 升级nginx可以使用源码编译 由于nginx是用yum安装,此处升级使用yum方式 升级方式一(在线): 添加nginx repo vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://

k8s pod被驱逐时间问题-爱代码爱编程

在默认配置下,k8s节点故障时,工作负载的调度周期约为6分钟, 参数概念: node-monitor-period 节点控制器(node controller) 检查每个节点的间隔,默认5秒。node-monitor-grace-period 节点控制器判断节点故障的时间窗口, 默认40秒。即40 秒没有收到节点消息则判断节点为故障。pod-evict

什么是mmc和emmc(mmcblkxxx、sdxx的关系)_mmcblk是什么芯片-爱代码爱编程

----------------------------------------------------------- root@ubuntu-arm:/dev# ls mmc* -l //emmc芯片(mmcblk0) brw-rw---- 1 root disk 179,  0 Feb 12  2016 mmcblk0 brw-rw---- 1 ro

git使用的小技巧_git pull head-爱代码爱编程

在日常工作中,经常会用到Git操作。但是对于新人来讲,刚上来对Git很陌生,操作起来也很懵逼,下面为大家详细讲解一下git使用的小技巧。 一、Configuration:配置 列举所有的别名与配置 git config --list Git 别名配置 git config --global alias.  git config --glob