用tmpfs加速mysql_使用Python设置tmpfs来加速项目的教程

本文介绍了如何通过将测试环境设置在tmpfs文件系统中,利用空闲内存提高Python测试的执行效率。作者分享了一个bash脚本,该脚本通过rsync同步磁盘上的workspace和tmpfs,创建虚拟环境并运行测试,从而实现性能提升。这种方法避免了复杂的脚本同步问题,简化了流程,使得测试速度提升了5倍。
摘要由CSDN通过智能技术生成

对我当前工程进行全部测试需要花费不少时间。既然有 26 GB 空闲内存,为何不让其发挥余热呢? tmpfs 可以通过把文件系统保存在大内存中来加速测试的执行效率。

但优点也是缺点,tmpfs 只把结果保存在内存中,所以你必须自己编写脚本来把结果回写到磁盘上进行保留。而且这些脚本必须良好书写和执行,否则就要失去部分或全部的工作成果了。

一种常见的方法是直接在tmpfs文件夹中工作,然后把工作成果备份到磁盘上的一个文件夹中。当您的机器启动时你从那个备份文件夹恢复tmpfs文件夹。启动之后用cron同步tmpfs文件夹和磁盘文件夹。

我发现这个设置有点复杂容易出错。在启动的时候,或者对于crom,我从没有真正的相信。现在我用一种简单得多的设置,根本不用cron。

在我的机器上运行一个单项测试,使用IDE并发布于web服务器,其性能通常是合理的,只有运行全部测试需要许多时间。

我发现最佳之处是在磁盘上设置一个workspace,与/dev/shmand目录下运行所有测试的tmpfs同步。这或多或少使我的设置无需改变,并消除了可能松散的工作,这些仅仅是因为我在正确设置方面太垃圾了。

性能提升的结果是合理的:

$ nosetests && run_tests.py

........................................................................................................................................................................................................................................................

----------------------------------------------------------------------

Ran 248 tests in 107.070s

OK

........................................................................................................................................................................................................................................................

----------------------------------------------------------------------

Ran 248 tests in 19.423s

OK

现在比原来提高了 5 倍速度。

使用 python 来进行设置非常简单:

#!/bin/bash -e

WORK=src/py

LOG=$(pwd)/test.log

TARGET=$(hg root)

SHADOW=/dev/shm/shadow/$TARGET

date > $LOG

mkdir -p $SHADOW

cd $SHADOW

rsync --update --delete --exclude=".*" --exclude=ENV --archive $TARGET ./..

if [ ! -d ENV ]

then

virtualenv ENV

fi

. ENV/bin/activate

cd $WORK

python setup.py develop >> $LOG

nosetests $* | tee -a $LOG

exit ${PIPESTATUS[0]}

我只要重复同步到/dev/shm目录,设置测试环境(virtualenv and python setup.PY)和运行测试(nosetests)。

在tmpfs文件夹里仍可用命令行运行单个测试。也可以把这个从你的IDE中踢走,但你会失去你的测试运行和调试的能力。如我之前所说,我现在不需要这些。

我希望我对tmpfs的这个变通使用能帮助你建立一个更快速的开发环境,而无须遭受所有的脚本麻烦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值