169it科技资讯


当前位置:  建站>运营/SEO
本页文章导读:
    ▪tsm ANS0326E问题处理      备份tsm备份oracle 报错 ANS0326E This node has exceeded its maximum number of mount points. q node f=d q node node_NAME f=d tsm: TSMSERVER>update node CWORACLE maxnummp=2 ANR2150E UPDATE NODE: Node CWORACLE is currently accessing the server. AN.........
    ▪Windows SVN变化邮件通知(Python2.7实现)      1,新增文件post-commit.bat 内容: rem REPOS-PATH (the path to this repository) set REPOS=%1 rem REV (the number of the revision just committed) set REV=%2 set HOOK_DIR=F:/Repositories/版本库名/hooks set PYTHON_BIN=C:/Python27/python.exe %.........
    ▪linux下的内核测试工具——perf使用简介      摘要:Perf是Linux kernel自带的系统性能优化工具。Perf的优势在于与Linux Kernel的紧密结合,它可以最先应用到加入Kernel的new feature。pef可以用于查看热点函数,查看cashe miss的比率,从而帮助开发.........

[1]tsm ANS0326E问题处理
    来源: 互联网  发布时间: 2013-11-01

备份tsm备份oracle 报错
ANS0326E This node has exceeded its maximum number of mount points.

q node f=d

q node node_NAME f=d

tsm: TSMSERVER>update node CWORACLE maxnummp=2
ANR2150E UPDATE NODE: Node CWORACLE is currently accessing the server.
ANS8001I Return code 12.
 
q session

cancel sess all

tsm: TSMSERVER>update node QBYPDB maxnummp=2
ANR2063I Node QBYPDB updated.

作者:yujin2010good 发表于2013-8-26 11:26:19 原文链接
阅读:12 评论:0 查看评论

    
[2]Windows SVN变化邮件通知(Python2.7实现)
    来源: 互联网  发布时间: 2013-11-01

1,新增文件post-commit.bat

内容:

rem REPOS-PATH (the path to this repository)
set REPOS=%1
rem REV (the number of the revision just committed)
set REV=%2

set HOOK_DIR=F:/Repositories/版本库名/hooks
set PYTHON_BIN=C:/Python27/python.exe
%PYTHON_BIN% %HOOK_DIR%/sendEmail.py %REPOS% %REV%


放在F:/Repositories/版本库名/hooks下

2,安装python2.7(已安装则跳过)

去官网下地2.7的版本http://www.python.org/getit/

3,新增sendEmail.py

#coding: utf-8
import sys
import os
import smtplib
from email.mime.text import MIMEText
from email.header import Header

mail_host = 'smtp.qq.com' #发送邮件的smtp地址
mail_user = '****@qq.com' # 发送通知邮件的用户名
mail_pass = '****' # 用户的密码
me = 'SVN Service' + '<' + '****' + '@' + 'qq.com' + '>' #发送邮件人的地址标识
to_list = ['****@qq.com'] # 收件人

html_template = """
<html>
        <h2 style="color:#FFFFFF; background: #008040;">基本信息</h2>
        <div> <b>版本库:</b>
                <a href="svn:%s">%s</a>
        </div>
        <div> <b>版本号:</b>%s
        </div>
        <div>
                <b>提交者:</b>%s
        </div>
        <div>
                <b>提交时间:</b>%s
        </div>
        <h2 style="color:#FFFFFF; background: #4682B4;">提交说明</h2> <font size="4" color="#BF6000"><xmp>%s</xmp></font>
        <h2 style="color:#FFFFFF; background: #5353A8;">文件清单</h2>
        <xmp>%s</xmp>
        <hr>
        <center>
                ☆ Powered by
                <a href="http://garyelephant.me">Gary</a>
        </center>
        <center>
                ☆ Inspired by
                <a href="http://crearo-sw.blogspot.com">CREARO-SW</a>
        </center>
</html>
"""

def get_repo_name(repo):
        return os.path.basename(repo)

def get_author(repo, rev):
        """svnlook author -r REV REPOS 获得提交者
        """
        cmd = '%s author -r %s %s' % (svnlook_bin_path, rev, repo)
        output = os.popen(cmd).read()
        return output

def get_date(repo, rev):
        """svnlook date -r REV REPOS 获得提交时间
        """
        cmd = '%s date -r %s %s' % (svnlook_bin_path, rev, repo)
        output = os.popen(cmd).read()
        return output

def get_log(repo, rev):
        """svnlook log -r REV REPOS 获得提交日志
        """
        cmd = '%s log -r %s %s' % (svnlook_bin_path, rev, repo)
        output = os.popen(cmd).read()
        return output

def get_file_list(repo, rev):
        """svnlook changed -r REV REPOS 获得发生变更的文件
        """
        cmd = '%s changed -r %s %s' % (svnlook_bin_path, rev, repo)
        output = os.popen(cmd).read()
        return output

def send_mail(msg, sender, to_list):
        try:
                s = smtplib.SMTP()
                s.connect(mail_host)
                s.login(mail_user,mail_pass)
                s.sendmail(sender, to_list, msg.as_string())
                s.close()
                return True
        except Exception, e:
                print str(e)
                return False

def write_mail(sender, to_list, sub, content):
        msg = MIMEText(content, _subtype = 'html', _charset='utf-8')
        msg['Subject'] = sub
        msg['From'] = sender
        msg['To'] = ';'.join(to_list)
        msg["Accept-Language"]="zh-CN"
        msg["Accept-Charset"]="ISO-8859-1,utf-8"
        return msg

global svnlook_bin_path

def write_mail_content(repo, rev):
        """
        repo: repository
        rev: revision
        """
        repo_name = get_repo_name(repo)
        author = get_author(repo, rev)
        date = get_date(repo, rev)
        log = get_log(repo, rev)
        file_list = get_file_list(repo, rev)
        content = html_template % (repo, repo_name, rev, author, date, log.decode("GBK").encode('UTF-8'), file_list.decode("GBK").encode('UTF-8'))
        return content
if __name__ == '__main__':
        svnlook_bin_path = '"C:/Program Files/VisualSVN Server/bin/svnlook.exe"'

        subject = 'SVN Commit Notification'
        content = write_mail_content(sys.argv[1], sys.argv[2])
        msg = write_mail(me, to_list, subject, content)
        send_mail(msg, me, to_list)
同样放在F:/Repositories/版本库名/hooks

可以测试提交一个文件。效果如下:


鸣谢:http://blog.csdn.net/gaoyingju/article/details/8884276




作者:yangwei19680827 发表于2013-8-26 12:27:02 原文链接
阅读:0 评论:0 查看评论

    
[3]linux下的内核测试工具——perf使用简介
    来源: 互联网  发布时间: 2013-11-01

摘要:Perf是Linux kernel自带的系统性能优化工具。Perf的优势在于与Linux Kernel的紧密结合,它可以最先应用到加入Kernel的new feature。pef可以用于查看热点函数,查看cashe miss的比率,从而帮助开发者来优化程序性能。


本文来源:http://blog.csdn.net/trochiluses/article/details/10261339

1.perf的安装


        由于我们经常是在自己编译的内核上进行开发工作,这里需要有包含调式信息的内核启动镜像文件vmlinux,在自定义内核的基础之上,进入linux内核源码,linux/tools/perf

make

make install

提示:

1)可能在编译的时候,有报错大概是由于平台问题,数据类型不匹配,导致所有的warning都被当作error对待:出现这问题的原因是-Werror这个gcc编译选项。只要在makefile中找到包含这个-Werror选项的句子,将-Werror删除,或是注释掉就行了

2)安装完毕,perf可执行程序往往位于当前目录,可能不在系统的PATH路径中,此时需要改变环境变量PATH


2.perf的运行原理


        性能调优工具如 perf,Oprofile 等的基本原理都是对被监测对象进行采样,最简单的情形是根据 tick 中断进行采样,即在 tick 中断内触发采样点,在采样点里判断程序当时的上下文。假如一个程序 90% 的时间都花费在函数 foo() 上,那么 90% 的采样点都应该落在函数 foo() 的上下文中。运气不可捉摸,但我想只要采样频率足够高,采样时间足够长,那么以上推论就比较可靠。因此,通过 tick 触发采样,我们便可以了解程序中哪些地方最耗时间,从而重点分析。

        稍微扩展一下思路,就可以发现改变采样的触发条件使得我们可以获得不同的统计数据:

       以时间点 ( 如 tick) 作为事件触发采样便可以获知程序运行时间的分布。

        以 cache miss 事件触发采样便可以知道 cache miss 的分布,即 cache 失效经常发生在哪些程序代码中。如此等等。

        因此让我们先来了解一下 perf 中能够触发采样的事件有哪些。

         使用perf list(在root权限下运行),可以列出所有的采样事件



事件分为以下三种:

1)Hardware Event 是由 PMU 硬件产生的事件,比如 cache 命中,当您需要了解程序对硬件特性的使用情况时,便需要对这些事件进行采样;

2)Software Event 是内核软件产生的事件,比如进程切换,tick 数等 ;

3)Tracepoint event 是内核中的静态 tracepoint 所触发的事件,这些 tracepoint 用来判断程序运行期间内核的行为细节,比如 slab 分配器的分配次数等。

上述每一个事件都可以用于采样,并生成一项统计数据,时至今日,尚没有文档对每一个 event 的含义进行详细解释。


3. perf stat——概览程序的运行情况


        面对一个问题程序,最好采用自顶向下的策略。先整体看看该程序运行时各种统计事件的大概,再针对某些方向深入细节。而不要一下子扎进琐碎细节,会一叶障目的。

        有些程序慢是因为计算量太大,其多数时间都应该在使用 CPU 进行计算,这叫做 CPU bound 型;有些程序慢是因为过多的 IO,这种时候其 CPU 利用率应该不高,这叫做 IO bound 型;对于 CPU bound 程序的调优和 IO bound 的调优是不同的。

        如果您认同这些说法的话,Perf stat 应该是您最先使用的一个工具。它通过概括精简的方式提供被调试程序运行的整体情况和汇总数据。   

本篇中,我们将在以后使用这个例子test1.c:

测试用例:test1

 //test.c 
 void longa() 
 { 
   int i,j; 
   for(i = 0; i < 1000000; i++) 
   j=i; //am I silly or crazy? I feel boring and desperate. 
 } 

 void foo2() 
 { 
   int i; 
   for(i=0 ; i < 10; i++) 
        longa(); 
 } 

 void foo1() 
 { 
   int i; 
   for(i = 0; i< 100; i++) 
      longa(); 
 } 

 int main(void) 
 { 
   foo1(); 
   foo2(); 
 } 

将它编译为可执行文件 test1

 gcc – o test1 – g test.c 
注意:此处一定要加-g选项,加入调试和符号表信
    
最新技术文章:
▪SQVI和SAP查询QUERY的区别和使用注意事项    ▪彻底理解Cisco/Linux/Windows的IP路由    ▪Exchange 2010 处于禁止发送用户自动收到来自IT...
▪MB_CHANGE_DOCUMENT使用方法    ▪ALV的html表头    ▪【译】如何精确判断最终用户响应时间过长的...
▪apache2.4.4启用deflate压缩    ▪使用vmware 配置centos 6.0+ 网络出现的各种问题...    ▪十句话教你学会Linux数据流重定向
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允...
▪Dynamics CRM 2013 初体验(4):不再被支持的功...    ▪win7下制作ubuntu系统安装启动盘和U盘安装ubuntu...    ▪Linux cp -a用法
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法
▪Citrix 服务器虚拟化之二十七 XenApp6.5发布服务...    ▪搭建本地Ubuntu 镜像服务器    ▪Create local metadata resource of yum
▪tsm ANS0326E问题处理    ▪Windows SVN变化邮件通知(Python2.7实现)    ▪linux下的内核测试工具——perf使用简介
▪Nginx TCP Proxy模块的编译安装    ▪OSX: SSH密钥使用日记(2)    ▪OSX: SSH密钥使用日记(1)
▪Manually start and stop Oracle XE in Ubuntu    ▪Disable autostart of Oracle-xe in Ubuntu    ▪tar命令-linux
▪xtrabackup-2.1.2-611安装    ▪无废话ubuntu 13.4文件共享配置    ▪Unix文本处理工具之sed
▪hpux 操作系统 磁带备份与恢复    ▪HP DL360 G7通过iLO部署系统    ▪Redhat 6.0中VNC Server的配置方法
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪BIND9私有DNS服务器小环境搭建实验    ▪Exchange2013增量备份    ▪OSSEC Monitor your App log file
▪《深入理解Nginx》阅读与实践(三):使用upstre...    ▪如何给Fedora 15创建磁盘分区    ▪Packet Sniffer Code in C using sockets
▪Error, some other host already uses address    ▪修改uCOS_II以实现“优先级+时间片”联合调度    ▪weblogic开发模式与生产模式介绍
▪Wireshark 高级特性    ▪ubuntu13.04版本下安装RabbitVCS,类似windows的Tortoi...    ▪Apache 一台主机绑定多个域名及虚拟主机
▪linux安全设置    ▪RHEL双网卡绑定    ▪Linux shell if参数
▪Windows配置路由时可以指定源地址啦    ▪centos安装vim7.4    ▪S3C2410 实验三——块拷贝、字拷贝(寄存器的...
▪系统运维——日志处理    ▪ip_conntrack缓存neighbour    ▪关键在封装并发出了帧-IP冲突也无所谓
▪weblogic11g 安装——linux 无图形界面    ▪《数据通信与网络》笔记--SCTP    ▪《数据通信与网络》笔记--TCP中的拥塞控制
▪weblogic11g 安装集群 —— win2003 系统、单台主...    ▪weblogic11g 节点管理器 nodemanager    ▪Citrix 服务器虚拟化之二十六 应用程序虚拟化...
▪如何将windows下的文件夹挂载到linux虚拟机下    ▪在64位AIX6.1下安装SAP JCo    ▪Outlook启动时提示“找不到文件Outlook.pst文件”...
▪weblogic8.1 登陆5 ip 限制    ▪weblogic 内存 及 内存溢出    ▪手把手教你在Windows端搭建Redmine项目管理软件
▪启动及重新启动nginx,重启nginx后丢失nginx.pid问...    ▪Win7实现快速启动栏并实现靠左边的终极操作...    ▪《深入理解Nginx》阅读与实践(二):配置项...
▪显示grub引导菜单    ▪nagios监控主机    ▪linux各种数据流重定向
▪centOS安装chrome浏览器    ▪Slackware 14 安装完全指南    ▪SharePoint 2013的100个新功能之内容管理(三)
▪Citrix 服务器虚拟化之二十一 桌面虚拟化之部...    ▪[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显...    ▪Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的...
▪CentOS快速安装最新版本的SaltStack    ▪CentOS 6.4 快速安装Nginx笔记    ▪磁盘管理——RAID 0
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号