Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >全志V853芯片swap功能简介与tina上swap分区使用方法

全志V853芯片swap功能简介与tina上swap分区使用方法

作者头像
阿志小管家
发布于 2024-02-02 08:31:23
发布于 2024-02-02 08:31:23
17700
代码可运行
举报
运行总次数:0
代码可运行
swap功能简介

1、概念介绍

swap:系统内存紧张时进行的内存回收操作。

swap分区:在swap内存回收操作中,被回收的匿名页会回写到swap分区。

系统没有swap分区的时候,依旧会进行swap操作,swap操作不一定会操作到swap分区。

2、swap分区介绍

linux系统支持各种块设备、文件作为swap分区,且容量可以叠加。比如同时使用spinor上的swap裸分区和TF卡上的文件叠加作为swap分区。申请成功的swap容量可以通过free命令查看.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
​             total       used       free     shared    buffers     cached
Mem:        511776     506952       4824          0        512        836
-/+ buffers/cache:     505604       6172
Swap:         1020         44        976
各存储基于TINA SDK使用swap的方法

1、swap分区使用方法

swap分区的使能依赖mkswap命令和swapon命令。对于TINA SDK大部分存储来说。只需要make menuconfig选中mkswap、swapon命令,且在sys_partition(_nor).fex分区表中分配一个作为swap分区的裸分区即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@(none):/# free
             total       used       free     shared    buffers     cached
Mem:        511776      16820     494956          0       1260       2068
-/+ buffers/cache:      13492     498284
Swap:            0          0          0

root@(none):/# mkswap /dev/by-name/swap
Setting up swapspace version 1, size = 1020 KiB
no label, UUID=c714a274-5c8b-44e9-87f0-e6ce39226621

root@(none):/# swapon /dev/by-name/swap
[  223.756712] Adding 1020k swap on /dev/by-name/swap.  Priority:-1 extents:1 across:1020k SS
root@(none):/# free
             total       used       free     shared    buffers     cached
Mem:        511776      16820     494956          0       1356       2128
-/+ buffers/cache:      13336     498440
Swap:         1020          0       1020

2、存储使用差异

大部分存储都可以使用上文介绍的方式来使能swap分区,mkswap的前提是你可以获得一个可读可写的块设备/文件,比如mtdblockn、mmcblk0pn、nandn。

对于ubi nand来说,tina系统默认使用squashfs+ubifs来获得一个可读写的overlay,其中squashfs就依赖于块设备,但对于ubi nand来说,提供给squashfs的ubiblock必须是只读的,只读的ubiblock+只读文件系统squashfs的搭配。所以尽管在用户态可以创建出ubiblock,创建出来的ubiblock也是只读的,不满足mkswap的需求。此时尝试基于可读写的overlay创建文件,利用ubifs上的文件来作为swap,测试发现mkswap可以成功,但是并不能swapon。

基于以上,提出了两种方法:

(1)直接不使用ubi nand的逻辑分区,即不使用mtdblock上的ubiblock,直接使用mtdblock,操作底层的物理块设备,pstore/blk在ubi nand上也是此种做法,但是这种做法的风险点在于,mtdblock并没有磨损平衡,只有坏块处理。所以对应的swap分区寿命不长。

(2)不使用tina squashfs+overlay的做法,直接使用mkfs.ubifs制作一个可读可写的rootfs,内核关闭readonly-ubi块的配置,让系统可以顺利创建出可读可写的ubiblock。但是需要牺牲根文件系统只读的功能,在掉电等存储不稳定的场景下,根文件系统有可能被损坏。在保证存储稳定性的情况下,这种方法应该是优选。

小知识

1、swap分区没有被用完,为什么依旧会oom

内核触发kswapd进行内存回收时,会对匿名页和文件页进行回收(有更多仲裁方法,不展开叙述),其中文件页的回收方法是清除缓存的文件内容,并不需要回写flash,因为文件页的实际文件一直保存在flash中,下一次读文件时,需要重新从flash中读回文件,无法直接从缓存中获取文件内容;匿名页的回收方法是写到swap分区(当存在swap分区的时候)。所以当你内存临界,且在系统仲裁下已经没有可以回收的匿名页时,尽管swap分区没有用完,依旧会触发oom。

2、CPU占用率和内存的取舍

/proc/sys/vm/swappiness节点描述系统对swap分区的使用原则,0表示最大限度使用物理内存,100表示最大限度使用swap分区。在内存紧张的情况下,可以使用swap分区,但是频繁使用swap分区必然导致CPU占用率的升高,此时可以通过调节swappiness节点来对CPU占用率和内存进行平衡。

原贴链接:https://bbs.aw-ol.com/topic/1626/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Tina Linux 存储开发指南
介绍TinaLinux Flash,分区,文件系统等存储相关信息,指导方案的开发定制。
韦东山
2023/02/25
3.1K0
性能之内存篇
最近笔者在看性能分析相关的是知识,就特意针对内存整理了这一篇文章,在这里笔者主要从下面三个方面来介绍这方面的知识: 1.内存的作用是什么,他在操作系统中的基础知识都有哪一些? 2.查看内存和内存相关问题涉及到的工具都有哪一些,他们的使用方式是什么样子的? 3.碰到内存问题的时候,我们需要怎么去定位呢?
灰子学技术
2022/06/25
1.2K0
性能之内存篇
linux 的swap、swappiness及kswapd原理【转】
本文讨论的 swap基于Linux4.4内核代码 。Linux内存管理是一套非常复杂的系统,而swap只是其中一个很小的处理逻辑。
233333
2019/09/25
3.2K0
运行时间越长,Linux系统可用内存越小的问题分析
问题:系统运行时间越长,会出现偶发重启的现象,通过查看系统可用内存,发现非常少,几乎内存被用光了。
呱牛笔记
2024/02/07
4180
运行时间越长,Linux系统可用内存越小的问题分析
全志平台Tina系统Procps工具使用方法介绍
客户经常会要求功能更复杂的系统监视软件,通常procps下的软件完全够用,加上cpu_monitor,可以实现绝大多数系统状况监视工作。
阿志小管家
2024/02/02
1890
全志平台Tina系统Procps工具使用方法介绍
嵌入式linux综合性能评估
干货福利,第一时间送达! 在嵌入式项目预研前期阶段,我们常常需要对某个平台进行资源和性能方面的评估,以下是最常见的一些评估指标:
杨源鑫
2023/02/16
9830
嵌入式linux综合性能评估
【NAND文件系统】UBI介绍
UBI全称Unsorted Block Images,是一种原始flash设备的卷管理系统。这个系统能在一个物理的flash设备上管理多个卷并且能在整个flash芯片上实现损耗均衡。
知否知否应是绿肥红瘦
2025/02/19
1350
【NAND文件系统】UBI介绍
Linux服务器性能评估与优化(二)--内存
之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文:
黄规速
2022/04/14
9.4K0
Linux服务器性能评估与优化(二)--内存
Tina_Linux_OTA_开发指南
OTA 是Over The Air 的简称,顾名思义就是通过无线网络从服务器上下载更新文件对本地系统或文件进行升级,便于客户为其用户及时更新系统和应用以提供更
韦东山
2023/02/25
4.5K0
全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等
启动速度是嵌入式产品一个重要的性能指标,更快的启动速度会让客户有更好的使用体验,在某
韦东山
2022/12/28
4.1K0
全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等
Tina_Linux_内存优化_开发指南
硬件平台: 全志R/V/F/MR/H 系列芯片。软件平台: Tina v3.5 及后续版本。
韦东山
2023/02/25
6680
Linux - Linux内存管理
内存管理是Linux系统重要的组成部分。为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。
小小工匠
2023/03/11
53.1K0
Linux - Linux内存管理
Linux环境下Swap配置方法
Linux环境下Swap配置方法 场景: 今天下午安装一个CentOS6.5操作系统,忘记配置swap分区。看看如何安装系统之后,增加和删除swap分区。 方法如下: 1.内存占用情况 [root@joshua ~]# free -m total used free shared buffers cached Mem: 2006 1886 119 31
joshua317
2018/04/16
3.6K0
CentOS 配置swap交换区的方法
CentOS 作为linux世界里最稳定的服务器版本,rhas5一直有很大的应用面,之前一直关注的是freebsd,因为应用的需要,特别在配合mysql和oracle上red hat有着太多优势。
阳光岛主
2019/02/18
2K0
CentOS 配置swap交换区的方法
深入理解Linux 的Page Cache
大家好,我是 Peter,昨天群里有小伙伴咨询page cache的问题,看到网上有篇不错的文章,分享给大家。如果大家有想看的内容,欢迎给我留言。
刘盼
2021/08/25
4K0
深入理解Linux 的Page Cache
Kubernetes 之 Swap 浅析
在进行部署 Kubernetes 时,我们往往会发现这样一种场景:官方强烈建议在环境初始化时关闭 Swap 空间 。比如在进行 K8S 相关操作时,给予如下提示:
Luga Lee
2021/12/09
3.7K0
Kubernetes 之 Swap 浅析
全志 Tina Linux 系统软件 开发指南 sdk源码编译操作 深入理解Tina-sdk编译框架 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板
编写目的:本文档作为Allwinner Tina Linux系统平台开发指南,旨在帮助软件开发工程师、技术支持工程师快速上手,熟悉Tina Linux系统的开发及调试流程。
韦东山
2022/12/28
5.2K0
全志 Tina Linux 系统软件 开发指南 sdk源码编译操作 深入理解Tina-sdk编译框架 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板
Linux性能调优之内存负载调优的一些笔记
「 原谅和忘记就意味着扔掉了我们获得的最贵经验 -------《人生的智慧》叔本华」
山河已无恙
2023/01/30
2.6K0
Linux性能调优之内存负载调优的一些笔记
Linux内存占用常用的几个分析方法,你确定都知道?
系统内存是硬件系统中必不可少的部分,定时查看系统内存资源运行情况,可以帮助我们及时发现内存资源是否存在异常占用,确保业务的稳定运行。
lyb-geek
2022/11/18
3.8K0
Linux内存占用常用的几个分析方法,你确定都知道?
聊聊 Linux 的内存统计
本文主要分析 Linux 系统内存统计的一些指标以及进程角度内存使用监控的一些方法。
程序员小强
2020/01/17
6.6K1
聊聊 Linux 的内存统计
相关推荐
Tina Linux 存储开发指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验