This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/processor-SDK-AM335X:无法在 Linux 内核3.12上使用 swapfile

Guru**** 2542040 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/604902/linux-processor-sdk-am335x-unable-to-use-swapfile-on-linux-kernel-3-12

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

各位专家、您好!

我们使用基于 Beaglbone Black 的定制板、具有256MB RAM 和4GB eMMC 以及3.12内核

我想在电路板上测试 swapfile、我按照以下步骤创建 swap 文件并将其安装为 swap 分区。

在/etc/fstab 中添加了以下行

/var/eventlog/swap/swapfile 无交换软件,pri=32767 0 

然后、按照步骤操作。

mkdir -p /var/eventlog/swap
dd if=/dev/zero of=/var/eventlog/swap/swapfile bs=1M count=256
chmod 0600 /var/eventlog/swap/swapfile
mkswap /var/eventlog/swap/swapfile
swapon /var/eventlog/swap/swapfile 

之后、我在自由命令中看到以下输出

#免费
共计 已使用 免费 共享 缓冲
器存储器: 251324. 132244 119080 0 5668
–/+缓冲器: 126576. 124748
交换: 262140 0 262140

以下是/proc/swaps 的输出

# cat /proc/swaps
文件名类型大小已使用优先
级/var/eventlog/swap/swapfile 文件2621400-1 

因此、似乎启用了 SWaP、

然后、我在系统中运行内存密集型任务(tar 提取)、我看到可用内存会降低、但页面不会交换到 swapfile

我不知道会发生什么错误、

有什么建议,指针?

谢谢、

此致、

Ankur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Anhur、

    您是否正在使用官方的 TI'A Linux 版本?
    您是否具有写入权限?

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复 Tsvetolin Shulev、

    是的、我具有写入权限、

    # ls -lRT /var/eventlog/swap/swapfile
    
    -rw-rw-rw- 1根 根 268435456 Jun 22 07:43 /var/eventlog/swap/swapfile 

    它来自 Timesys、基于 TI SDK  

    http://software-dl.ti.com/sitara_linux/esd/AM335xSDK/07_00_00_00/index_FDS.html

    即使是肿胀也会设置为60

    # cat /proc/sys/vm/swappiness
    60.
    

    谢谢、

    此致、

    Ankur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ankur、

    尝试通过"swapon"命令启用交换文件使用、如中所述:
    processors.wiki.ti.com/.../Talk:Creating_a_Root_File_System_for_Linux_on_OMAP35x
    有关"swapon"命令的更多详细信息、请访问:
    man7.org/.../swapon.8.html
    www.computerhope.com/.../swapon.htm

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tsvetolin:

    我遵循了这些步骤、现在似乎可以正常工作。

    我认为问题出现在/etc/fsctab 条目中。

    我运行以下命令时、内核开始使用交换空间。

    swapon /var/eventlog/swap/swapfile 

    我看到正在使用 swapfile、但是它不是很有效、因为内核移动的数据非常少、可能是因为 swapfile 在 eMMC 上、与 RAM 相比、它可能很慢。

    然后在类似的行上、我使用以下命令启用了 ZRAM 上的 SWaP、

    # echo 64M >/sys/block/zram0/disksize
    
    # mkswap /dev/zram0 65536
    设置 swapspace 版本1,size = 67104768字节
    UUUUID=b0db8b82-214f-45bd-8783-8525fb0ddbe6
    
    # swapon /dev/zram0
    #
    
    # free
    共计 已使用 免费 共享 缓冲
    器存储器: 251324. 157044. 94280 0 5784
    –/+缓冲器: 151260 100064
    交换: 65532 0 65532 

    我再次看到基于 ZRAM 的交换被启用、但是当我运行内存密集型任务时、我看到自由运行低电平、但内核不会将页面交换为 ZRAM 交换。

    有没有解决这个问题的建议?

    我的支持是、如果 ZRAM 交换工作正常、内核会将更多页面移动(压缩)到基于 ZRAM 的交换、因为 RAM 速度更快、我们可以在系统中利用它。

    谢谢、

    此致、

    Ankur