【日常】百元捡个10年前的文石纸墨屏阅读器
2024-07-17
这是一款100元的安卓纸墨屏阅读器boox文石C67ML,虽然性能一般,但适合专注阅读。它支持多种阅读格式,字体清晰,电池耐用。整体上,这款设备在沉浸式阅读方面表现不错,性价比高。
1047 字
|
5 分钟
Linux的虚拟内存与缓存
2024-05-24
虚拟内存
什么是虚拟内存?
虚拟内存是一种系统机制,通过将硬盘空间与实际内存结合起来,为进程提供比实际内存更大的虚拟地址空间。在程序运行时,系统只需将虚拟地址空间的一小部分映射到内存中,而将其余部分存储在硬盘上(更简单的说法就是程序的虚拟空间相当于实际物理内存再加上一部分硬盘空间)。当访问的虚拟地址不在内存中时,说明该地址未映射到内存,而是存储在硬盘上。因此,需要的虚拟存储地址会被动态调入内存。同时,当系统内存紧张时,不使用的虚拟存储空间可以被交换到硬盘上,以释放物理内存空间。系统通过不断进行这种换入和换出的操作,用户几乎感觉不到,这都是虚拟内存机制的巧妙之处。
简单理解,虚拟内存就是系统利用 硬盘空间与实际内存结合 ,为进程提供比内存更大的虚拟空间,通过动态映射和交换,实现对内存资源的高效利用。
不过万事皆有利弊,由于开启swap分区读取硬盘,会导致硬盘IO性能下降,因此譬如很多云服务器初始状态都不会配置swap,如果某些程序恰好需要大内存,可以采用下面方法学习
怎么看我的虚拟内存?
在Linux中,swap分区是专门为虚拟存储空间预留的硬盘空间。通常建议将其大小设置为内存大小的两倍左右。可以使用命令 “swapon -s” 来查看交换分区的大小。
root@admin:~# swapon -s
Filename Type Size Used Priority
/mnt/swap file 4194300 0 -1
上面的前三个分别是目录,类别(虚拟内存文件)和大小(4gb) ,
最后两个指标的含义:
• 已使用(Used)列显示已经使用的交换空间大小,这里是0 KB。也就是并没使用虚拟内存,内存比较充足。
• 优先级(Priority)指定了多个交换空间时的优先级。
这个优先级就是使用的优先程度,假如你有n个虚拟内存分区,可以通过改变优先级改变调动顺序。数值越大优先越高,最大为-1表示无限优先。
如何创建虚拟内存?
在Ubuntu下,创建 1G 的 swap,可以根据你的服务器来调整大小
其中of=/mnt/swap: 这个部分指定了dd命令的输出文件(of 表示 output file)。在这里,指定了输出文件的路径为/mnt/swap,表示在/mnt目录下创建一个名为swap的文件。
dd if=/dev/zero of=/mnt/swap bs=1M count=1024设置交换分区文件位置 也就是上面我们设置的那个
mkswap /mnt/swap启动 swap
swapon /mnt/swap设置开机时自启用虚拟内存?
需要修改文件 /etc/fstab 中的 swap 行
vim /etc/fstab在结尾添加
/mnt/swap swap swap defaults 0 0之后我们就已经开启虚拟内存 用刚才的命令可以验证
设置虚拟内存使用频率?
sysctl vm.swappiness=40可以通过swappiness值进行管理,swappiness表示系统对Swap分区的依赖程度, 数值越大,依赖程度越高,最大是100,越高越频繁。
但是对于硬盘速度比较慢的朋友,设置特别大就很难受了
当你设置为0时候会完全使用物理内存,那就没有用了
1529 字
|
8 分钟
Expressive Code Example
2024-04-10
How code blocks look in Markdown using Expressive Code.
737 字
|
4 分钟