性能测试

摘要: 转载自:http://www.708luo.com/?p=34分类:性能测试:系统常规状态运行时,关注机器资源耗用、响应时间等指标。(可能需要长时间保持系统这个状态,观察是否会有资源泄漏)容量测试:关注系统单位时间内能够处理的最大请求数过载测试:关注系统过载时系统能够提供的服务。理想的情况是系统仍然可以提供自身容量的服务。峰谷测试:关注系统从高负载恢复、转为几乎空闲、然后再攀升到高负载、再降低的能力。比如可以观察第二个高负载和第一个高负载时期系统性能指标是否有差异、在负载强烈波动的情况下是或否会有资源泄漏等。类似的场景还有很多,个人觉得具体还要看被测系统在实际的业务中是否会出现这些场景,不一定 阅读全文
posted @ 2012-11-13 21:12 悟空不悟空 阅读(476) 评论(0) 推荐(1) 编辑

查看运行中的python脚本的堆栈

摘要: 转载自:http://www.708luo.com/?p=32对于c/c++程序,我们可以在运行过程中通过pstack来查看程序当前的执行堆栈。那么对于python脚本呢?方法一:如果脚本是前台运行,可以直接Ctrl+c中止该脚本,即可查看当前的执行堆栈。如果脚本是后台运行的,可以先fg jobid,然后直接Ctrl+c中止脚本。当前的执行堆栈会被打印到脚本后台运行时的输出中(如果是./test.py &运行则是输出到前台;如果是nohup ./test.py &运行则是输出到nohup.out;如果加了输出重定向,则是打印到重定向的输出文件中)方法二:通过pdb完成,主要是为 阅读全文
posted @ 2012-11-06 16:26 悟空不悟空 阅读(7335) 评论(0) 推荐(0) 编辑

crontab的一些问题

摘要: 原文链接crontab格式:minute hour day-of-month month-of-year day-of-week [username] command如果某用户使用crontab -e增加了定时任务,那么系统会使用该用户身份执行该任务。所以username不需要填,填了会被认为是command。附几个常用用法,有助于理解定时任务的配置:01 * * * * run_hourly*/5 * * * * run_every_5mins02 4 * * * run_daily22 4 * * 0 run_weekly42 4 1 * * run_monthly另外:/etc/cron 阅读全文
posted @ 2012-10-08 17:04 悟空不悟空 阅读(161) 评论(0) 推荐(0) 编辑

非root使用源代码安装MySQL server

摘要: 原文地址:http://www.708luo.com/?p=16从mysql官网下载源码。5.5.24源码地址下载并安装cmake,用来生成makefile。2.8.9地址。解压mysql-5.5.24.tar.gz,进入解压后的目录运行cmake -i,设置三个变量:CMAKE_INSTALL_PREFIX,MYSQL_DATADIR,SYSCONFDIR,其他默认即可。这三个值默认是/usr/local/mysql作为根目录,可以设置为/home/$USER/mysql或者其他地址。或者直接运行cmake -D CMAKE_INSTALL_PREFIX=/home/$USER/mysql 阅读全文
posted @ 2012-09-27 20:02 悟空不悟空 阅读(360) 评论(0) 推荐(0) 编辑

python MySQLdb的初步使用

摘要: 转载自:http://www.708luo.com/?p=31MySQLdb库使用还是比较简单的,了解了几个API就可以开始捣腾了。这里有一些API的说明:http://mysql-python.sourceforge.net/MySQLdb.html#connection-objects常见的使用步骤:1. 导入MySQLdb库:import MySQLdb2. 建立一个DB连接:db_con = MySQLdb.connect(DB_host,DB_user,DB_password,DB_database)3. 执行命令:db_con.query(sql_cmd) 或者 cursor = 阅读全文
posted @ 2012-09-03 20:51 悟空不悟空 阅读(383) 评论(0) 推荐(0) 编辑

linux cp过程中ignore部分文件

摘要: 原文链接遇到一个需求,在cp的过程中需要ignore掉部分文件,发现cp没有自带ignore之类的选项。比较容易的方式是使用rsync,但是折腾的过程中发现,使用find+cp也是可以达到ignore的目的的:cd src && find ./ -type f -not -name '12' -not -name '13' -exec cp --parents '{}' './dst/' \;记录一下,免得需要时又到处找。 阅读全文
posted @ 2012-09-03 20:31 悟空不悟空 阅读(1187) 评论(0) 推荐(0) 编辑

使用git合并多个提交

摘要: 原文地址:http://www.708luo.com/?p=17假设要合并最后的2个提交,可以按如下命令进行:1. git rebase –i HEAD~2运行完该命令,会出现如下所示内容:2. 将第二个pick修改为squash或者s,然后输入":wq”退出。3. 这时git会自动第二个提交合并到第一个中去。并提示输入新的message(就是我们常说的comments),如下:4. 编辑输入新的message,然后输入":wq"退出5. 此时本地的(HEAD中)最后两次提交已经被合并为一个。git log可以查看。6. 如果需要提交到远端,运行git push 阅读全文
posted @ 2012-07-30 21:07 悟空不悟空 阅读(13104) 评论(2) 推荐(2) 编辑

linux会话中将前台任务转入后台

摘要: 原文链接有时会遇到这样一种情况:在没有使用screen之类的管理会话的软件的时候,需要退出当前运行会话,但会话中有个任务运行了很久了,退出的话这个任务会被kill掉(其实是收到SIGHUP的信号)。下面的方法可以将这个前台进程转入后台,并指定这个任务不被发送SIGHUP信号:1. ctrl+z将任务暂停,这时屏幕会打印这样一句“[1]+ Stopped ./myserver”2. 使用"bg 1"将这个任务转入后台运行(1是刚才暂停任务的job号,步骤1中屏幕提示方括号里面的内容,如果忘了也可以用jobs命令查看)3. 使用"disown –h %1"指 阅读全文
posted @ 2012-07-26 20:34 悟空不悟空 阅读(842) 评论(0) 推荐(0) 编辑

C++编码优化之减少冗余拷贝或赋值

摘要: 转载自:http://www.708luo.com/?p=33临时变量目前遇到的一些产生临时变量的情况:函数实参、函数返回值、隐式类型转换、多余的拷贝1. 函数实参这点应该比较容易理解,函数参数,如果是实参传递的话,函数体里的修改并不会影响调用时传入的参数的值。那么函数体里操作的对象肯定是函数调用的过程中产生出来的。那么这种情况我们该怎么办呢?如果callee中确实要修改这个对象,但是caller又不想callee的修改影响到原来的值,那么这个临时变量就是必须的了,不需要也没办法避免。如果callee中根本没有修改这个对象,或者callee中这个参数本身就是const型的,那么将实参传递改为引 阅读全文
posted @ 2012-07-06 13:31 悟空不悟空 阅读(4242) 评论(0) 推荐(2) 编辑

返回值优化和noncopyable class

摘要: 转载自:http://www.708luo.com/?p=22今天上班,遇到件比较有意思的事情。有同事叫我看一段代码,这段代码在gcc上可以编译通过,但是用bullseye cover编译用于统计覆盖率的时候,链接阶段报错了。我简化一下这段代码如下:class Integer {public: Integer(int x=0):_x(x){} Integer operator+(const Integer& rhs) { Integer tmp; tmp._x += rhs._x; return tmp; } ~Inte... 阅读全文
posted @ 2012-06-21 18:17 悟空不悟空 阅读(536) 评论(0) 推荐(0) 编辑