配置进程内存限制(OOM Killer)
jupyter notebook推理样例运行缓慢或跑不起来
现象描述
运行开箱推理样例时,推理执行缓慢或跑不起来。
可能原因
同时打开了多个推理样例notebook,占用了过多系统内存。
解决方案
关掉不需要用到的notebook,可以在侧边栏通过shutdown操作清理notebook,如图1和图2所示:
图1 界面图

图2 界面图

父主题: 样例运行
创建交换分区
现象描述
为解决开发者套件上,使用ATC工具转换模型时会出现转换过程很慢或卡住不动的问题。该问题可能由于内存不足,导致进程卡死。用户可通过创建交换分区的方式以分担开发者套件的内存压力,当前镜像已提前为用户创建,若用户需要关闭或关闭后重新开启可参见此章节进行操作。
解决方案
创建交换分区
-
以root用户远程登录开发者套件。
-
创建一个大小为8G的swap分区。
fallocate --length 8G /swapfile -
修改文件权限。
chmod 600 /swapfile -
创建swap分区。
mkswap /swapfile回显如下:
Setting up swapspace version 1, size = 8 GiB (8589934592 bytes)no label, UUID=2b9e68ec-e6f5-46df-bd10-8f2955026de7 -
挂载swap分区。
swapon /swapfile -
执行命令查看分区是否创建成功。
free -h-h,--human:以计算机硬盘存储容量的常用字节显示存储大小。
回显如下:
total used free shared buff/cache availableMem: 3.4Gi 795Mi 1。9Gi 33Mi 759Mi 2.4GiSwap: 8.0Gi 0B 8.0Gi
关闭交换分区
-
执行命令临时禁用交换分区。
swapoff -a -
执行命令打开文件,注释部分代码。
vi /vat/expan.sh按下i键进入编辑模式,将此行内容注释。
swap_flag=$(free -h | grep Swap | cut -d' ' -f14 | cut -d'B' -f1)if [ "$swap_flag" == "0" ]; thenmkswap /swapfileswapon /swapfilefi -
执行命令打开文件,注释部分代码。
vi /etc/fstab按下i键进入编辑模式,将此行内容注释。
/swapfile注释后,开发者套件启动时将不会自动挂载交换分区。
-
执行命令重启开发者套件,生效配置。
reboot
开启交换分区
-
执行命令打开文件,消除部分代码注释。
vi /etc/fstab按下i键进入编辑模式,将此行内容注释。
/swapfile注释后,开发者套件启动时将不会自动挂载交换分区。
-
执行命令重启开发者套件,生效配置。
reboot
父主题: 样例运行
配置进程内存限制(OOM Killer)
现象描述
开发者套件的内存资源有限,如果某个进程占用的内存超出系统限制,可能出现系统异常,无法响应命令的现象,届时需要重新上下电才能恢复正常。因此,需要限制进程的内存占用量。
解决方案
关闭内存限制
-
执行以下命令关闭OOM Killer服务。
systemctl disable oom_killer -
分别将/root/.bashrc与/home/HwHiAiUser/.bashrc文件中代码注释。
-
打开/root/.bashrc文件。
vi /root/.bashrc -
打开/home/HwHiAiUser/.bashrc
vi /home/HwHiAiUser/.bashrc
注释以下代码:
echo $$ > /sys/fs/cgroup/memory/usermemory/tasks -
-
执行命令重启开发者套件。
reboot
开启内存限制
:::note 说明 当前一键制卡工具提供的在线镜像中,root用户和HwHiAiUser用户已完成了以上操作,打开了该内存控制机制。 :::
-
执行以下命令开启OOM Killer服务。
systemctl enable oom_killer -
取消/root/.bashrc与/home/HwHiAiUser/.bashrc文件中代码注释。
-
打开/root/.bashrc文件。
vi /root/.bashrc -
打开/home/HwHiAiUser/.bashrc
vi /home/HwHiAiUser/.bashrc
取消以下代码注释:
echo $$ > /sys/fs/cgroup/memory/usermemory.tasks -
-
执行命令重启开发者套件。
reboot
父主题: 样例运行
jupyter notebook运行多个推理样例后提示Kernel Restarting
现象描述
启动jupyter notebook运行多个推理样例后提示Kernel Restarting。
图1 错误提示

可能原因
同时打开了多个推理样例notebook,占用了过多系统内存。
解决方案
关掉不需要用到的notebook,可以在侧边栏通过shutdown操作清理notebook,如图1和图2所示:
图2 界面图

图3 界面图

父主题: 样例运行
运行DVPP样例时出现fail to send frame问题
现象描述
在开发者套件上运行DVPP(数字视觉预处理)样例时, 出现fail to send frame问题,导致样例无法运行。
图1 报错信息

可能原因
运行样例时内存不足。
解决方案
执行以下命令清除缓存。
echo 1 > /proc/sys/vm/drop_caches
父主题: 样例运行
开发者套件支持使用QT(Python/C++)
现象描述
QT是一款跨平台的图形用户界面应用程序开发框架,支持C++及python接口。开发者套件支持通过远程登录工具或使用图形化桌面运行QT及项目,进行界面的查看。
解决方案
C++方式
-
远程登录开发者套件并配置网络。
-
执行以下命令安装QT及必要组件。
sudo apt install --no-install-recommends \qtbase5-dev qtbase5-dev-tools qtdeclarative5-dev libqt5svg5-dev qttools5-dev libgnutls28-dev \qml-module-qtquick2 qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtgraphicaleffects qtcreator -
执行命令运行QT。
qtcreator或
designer图1 qtcreator界面

图2 qtdesigner界面

-
打开已有或自编项目进行验证。
图3 验证使用

Python方式
-
远程登录开发者套件并配置网络。
-
执行以下命令安装PyQt。
conda install -c conda-forge pyqt -
编写PyQt样例。
import sysfrom PyQt5.QtWidgets import QApplication, QWidget, QLabelif __name__ == '__main__':app = QApplication(sys.argv)w = QWidget()# 设置窗口标题w.setWindowTitle('小藤的PyQt!')label = QLabel('Welcome to Ascend Devkit!', parent=w)label.move(200, 200)w.setStyleSheet("background-color:yellow;")# 展示窗口w.show()# 程序进行循环等待状态app.exec_() -
运行样例查看结果。
python pyqt_demo.py图4 运行结果

父主题: 样例运行
在线提单