java有一个jstat 可以查看gc的情况等数据。可以看一下如何注入python进程获取gc每一代的次数。主要使用gdb
首先ps找一个python进程的pid。
ps aux| grep python
1264
 
然后执行
gdb -p 1264 -batch -eval-command='call PyGILState_Ensure()' -eval-command='call PyRun_SimpleString("exec(\"import gc\\nprint(gc.get_count())\")")' -eval-command='call PyGILState_Release($1)'
你会发现 1264启动日志输出一个元祖(492, 8, 0),分别代表每一代gc的次数。
同样也可以进行手动gc,或者查看线程数等操作。或者执行任意代码。
 
              
                Read more...
            Spark入门学习(一) 分析nginx log文件
                Spark也是一个集群计算系统,提供Python,Java,Scala,R语言的高级API进行数据操作。Spark有各种优点,请自行搜索。
一、下载安装spark
下载编译好的二进制版本,目前还用不到hadoop选择第一个安装。
wget http://mirrors.cnnic.cn/apache/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz
解压
tar zxvf spark-1.5.2-bin-hadoop2.6.tgz
使用默认参数进入python交互模式。启动参数可以指定Spark集群的地址,处理的线程数等值。
park-1.5.2-bin-hadoop2.6/bin/pyspark
交互模式下,Spark会默认给你启动一个SparkContext,名字为sc。你可以执行以下命令查看版本和应用名字。
>>> sc.version
u'1.5.2'
>>> sc.appName
u'PySparkShell'
二、分析nginx log文件
在交互模式下输入,创建一个RDD,textFile会按行读入一个文件,这种方式读入的文件,不会随文件的更新数据进行更新。
第二篇将进行脚本的编写和使用Stream进行实时数据的统计。
>>>log=sc.textFile('./app_access.log')
查看文档有多少行,对应nginx收到多少请求。count是一个action,返回值。
>>> log.count()
2186762
返回文档第一行
>>> log.first()
u'117.136.40.185 [11/Nov/2015:06:25:52 +0800] "POST /zmw/v2/favorite_status HTTP/1.1" 200 0.013 61 "-" "%E6%B2%B3%E7%8B%B8%E5%AE%B6/2891 CFNetwork/758.1.6 Darwin/15.0.0" "-" 0.013 Upstream:"10.0.10.135:8700"'
查看IP为"117.136.40.185"的访问次数。filter是一个transformations,返回一个新的RDD,然后对这个新的rdd进行count求值
>>> log.filter(lambda line: "117.136.40.185" == line.split()[0]).count()
637
可以使用cache操作将经常使用RDD尽可能的存放在内存中,加快计算速度。
>>> log.cache()
统计每个ip的访问次数,还可以统计每个url的访问次数,HTTP status code分别的访问次数等相关类似统计
>>> ips = log.map(lambda line: (line.split()[0], 1)).reduceByKey(lambda a, b: a + b)
>>> ips
PythonRDD[16] at RDD at PythonRDD.scala:43
>>> ips.collect()
验证之前统计过的,数据是否一致
>>> b=ips.filter(lambda a: a[0]=="117.136.40.185")
>>> b.collect()
[(u'117.136.40.185', 637)]
三、监控
可以从WEB访问,查看job执行情况和统计数据
http://172.16.117.0:4040/jobs/
              
                Read more...
            svn添加忽略提交文件ignore
                查了两三遍了,整理一下记录着。svn好像不能统一记录,因为有的文件夹不一样,不能统一写匹配模式。现在只是每个文件夹添加
设置使用的编辑器:
export SVN_EDITOR=/usr/bin/vim
 
忽略的文件必须不在版本控制里,add上的还要reset掉才行
svn propedit svn:ignore 文件夹名
svn propget svn:ignore .
              
                Read more...
            mac安装node js
                从官网下载了一个mac下的二进制,解压,然后把目录添加到path里边,搞定
node -v查看版本v0.12.7
npm  -v
2.11.3
可以直接输入node进入交互模式,按两次ctrl-c退出
 
然后复制官方example,保存为main.js。node main.js成功
              
                Read more...
            使用txt文本导出excel
                每一列数据使用'\t'分隔,每一行用'\r'分隔。纯数字的太长或零开头,使用引号引起来并使用单引号开头。导出的excel文件后缀为'.xls'。
              
                Read more...
            mac系统下让firefox页面a标签等获取tab焦点
                之前就发现mac下没这功能,一直没找问题,现在面板用起来不方便。找了一下解决问题。
方法:
进入about:config
右键新建整数键
                Read more...
            accessibility.tabfocus,输入值7.然后就行了
 
不知道为什么只有mac下没有这个功能。
1是文本编辑框
2是除了文本编辑框其他的表单
3是a标签和img标签
其他是上边几个功能的组合之和
              postgresql VACUUM优化数据库
                 
主要用了俩命令:
vacuum full  tablename; 能释放表空间
VACUUM ANALYZE search_history; 根据统计信息优化sql执行
              
                Read more...
            freenas 配置共享目录
                有折腾了一下,之前没有总结,这次大体总结一下。
后台配置的时候,创建了一个用户组 home 创建了该组下的一个成员a0x55aa,只有我自己用。
开始的时候,好像是配置向导简历了win unix mac 分别对应cifs, nfs, afp服务。然后都是不同目录。按照默认的不使用匿名登录。
在mac下 可以在finder中直接看见freenas的标志。可以直接点连接身份进行登录,也可以使用 前往 连接服务器 添上afp://192.168.0.88。或者使用mount_afp命令行来连接
直接mount nfs没成功,不知道什么原因,可能系统不支持
读写文件的时候开始默认配置,其他组是不允许写的,而root用户不能登录,需要点击高级设置里边勾选other的写权限。然后就可以写了
              
                Read more...
            freebsd使用smartctl下查看硬盘使用时间
                为了看一下硬盘是否是翻新硬盘,找了一下命令有个smartctl命令,可以查看硬盘使用时间,不过怎么感觉有些数据不太对,,
命令 smartctl -A /dev/ada0 |grep Power_On_Hours
              
                Read more...
            在hp n54l上安装freenas
                这个机器是hp n54l的升级版proliant,主要内存和自带的硬盘容量变大。
准备工作,买的日货,淘宝代购,省了1000块钱,邮费ems300,总共1300。期间“离开处理中心,发往留存(待验)”的快递状态搜了一下以为要悲剧,没想到几个小时就放行了,网上有说是ems的制度问题,来不及处理的货物就这样了。
系统安装到u盘中,翻了一下有金士顿俩个u盘 一个16g 一个8g。8g的里边应该是ubuntu64位的启动安装盘,不动了。正好准备用16g的, 防止容量不够。
下载了FreeNAS-9.3-STABLE-201506042008.iso官方镜像,搜了一下发现mac上没有啥好的制作U盘启动盘的工具,放到windows虚拟机里边制作吧。
哈哈 不是太顺利,wind我说下的以前用的刻盘工具不好用,然后用官网的dd操作。。然后mac识别不出U盘来了。
退出u盘 ,插入启动。然后一个U盘不行,说没有权限安装失败。看来幸好两个u盘了,把那个小的做成启动盘,装到这个大的里边。try
安装成功了,还是官网文档好。
下边重启配置,配置ip.选网卡,重置网络配置,no;dhcp, no; ipv4 yes 输入ip地址 192.168.0.88/24; ipv6 no; 
route yes, 192.168.0.1;  ipv6 no;
dns  yes; 用的阿里的dns,没用本地网的,不然以后还要改
然后重启
然后就能192.168.0.88访问系统了,嘎嘎。卧槽 默认用户名密码还不知道。吐血,系统root+root密码
选键盘 语言 时区,时区没找到北京 选上海  键盘没选
配置raid的时候,只能选默认了,看容量是raid1,
我去配置好麻烦不记了,配置向导发送邮件还没配置好,跳过了
              
                Read more...