oVirt安装体验(CentOS 7.2)

ovirt是redhat支持的QEMU管理UI,本次安装主要是想体验不同的管理软件。 主要根据文章http://jensd.be/550/linux/install-ovirt-on-centos-7来安装,安装结果基本能用,但是错误比较多。

安装软件

本机节点IP是200.200.103.61,我设置本机的hostname为cent7。

然后安装软件

继续阅读

自制Office Web插件导出BLOG

写文章还是WORD比较适合,但是发布到BLOG网站却是HTML,每次转换格式都是件麻烦的事情,于是写了个简单的转换插件,能自动将部分内容按BLOG格式转换,减少人为参与。

Office的WEB插件非常简单,就是简单的js和html即可,工程名字取名为CleanHtmlExport,于是先写入口配置文件CleanHtmlExport.xml:

其中最重要的一条就是SourceLocation用于指定了入口html,这里的位置选择网络位置,例如我的是共享本地目录。 入口html就是普通的html,唯一需要的是引入office的辅助脚本:https://appsforoffice.microsoft.com/lib/1/hosted/office.js 继续阅读

Redis做内容缓存改善大集群性能问题

启动虚拟机前,需要选择运行节点,运行节点的选择主要是评估每个节点的内存和CPU使用,之前的PERL端是通过datareport向所有节点发送请求,走NFS通道,收集结果后打包回复PERL,大集群是48个节点,最开始尝试批量启动1000台虚拟机一天都没能启动完成。

评估每个节点的内存和CPU很必要,但是过中消耗时间太久,平均每台机器启动消耗2分钟,1000台需要33小时。

小打小闹优化效果并不明显,对比了几种优化手段,最后选择了使用Redis内存数据做缓存。

为什么选择Redis?

首先,不用引入新组件,因为我们的系统一直有它,但被忽视了很久。

其次,Redis的代码写的不错,短小精悍,运行稳定,效率非常高。
我测试从48个节点并发1600个链接不停读写主控的数据库,消耗资源为4.7% CPU, RSS内存消耗22MB,读写时间在毫秒级别:

继续阅读

Perl运行时调试工具

Perl这个语言没有现成的运行时调试工具,网上罗列的办法有:
1. strace只能看系统调用的函数,而且是perl解释器执行的流程。
2. gdb,只能调试perl解释器。
3. gdbperl,bulkdbg,没有用过。
4. perl-stacktrace,inspect-perl-proc两款在我们的虚拟化平台都没能正确运行。

13年的时候,写过一个运行时给Perl注入Enbugger库,使其能调试的脚本,为运行时调试而生。今天想查看某些阻塞进程究竟在做啥,于是加一个新技能,打印运行时的Perl脚本堆栈,是Perl脚本堆栈,不是Perl解释器堆栈。
注意:如果Perl处于阻塞状态,是无法interrupt的,例如下面进程处于等待锁状态,无法插入代码:

处于加锁等待,不返回无法注入代码。
继续阅读

Cookies之SSH命令

免密登录

内网机器,想要免密码登陆mnstory.net,需要将自己的公钥COPY到mnstory.net上。

首先,生成公钥:

使用ssh-copy-id或者直接将公钥id_ras.pub追加到目标主机的~/.ssh/authorized_keys里:

现在就可以免密码登陆mnstory.net了。
继续阅读

RabbitMQ实践场景示例

基本配置

RabbitMQ是一个成熟稳定的消息队列,对比过几款主流MessageQueue框架,以此框架最为成熟,OpenStack和VMWare这类的虚拟化和云平台都使用此软件作为消息通信,实际测试一个月,相当稳定。
利用MessageQueue可以实现,不同地方,不同时间,不同语言间的通信。

  1. 不同地方,容易理解,通过网络实现,网络可达的地方都能通信。
  2. 不同时间,是因为MQ本身是有缓存机制,包括内存缓存、文件缓存、数据库缓存等,假设Server端向Client发送消息,但是Client并没有启动,没有关系,等到Client启动的时候,从MQ里面取队列或交换里的消息即可,这种方式能很好地实现异步框架。
  3. 不同语言,所有终端只需要通过网络与MQ交互,换言之,只需要使用本语言的网络API实现Client端封装,即可与MQ交互,所以,使用MessageQueue,可以跨语言。

安装方法不再赘述,网上很多,最新版本下载:
https://www.rabbitmq.com/download.html
继续阅读

aSV WEBUI响应速度优化

现象

前端UI卡,卡到什么程度,基本上,在线用户一多,会10s以上没有反应,说10s是比较客气的,毕竟也是我们自己部门做的软件,不能自责太多,如果看我们的公网演示环境,现象可能是直接打不开,我优化性能的环境是测试中心真实设备,该设备一共6台主机组成集群,有315台虚拟机,其中运行的虚拟机为81台。
 
我们用CHROME看看,在没有优化的情况下,主要请求所耗时间,容许我贴一张48台主机的VMP集群,在开了10个页面后然后关闭其他9个的效果(看Time列):

我们先看下获取序列号的API /cluster/sn,这个API稳定,不会因为CPU,虚拟机数量等有太大的变化,但是和主机数量有关。
 
用CHROME看一下数据请求,发现TTFB(time to first byte)耗时5.11s:

这时我们登陆后端,用命令行工具请求API:
time vtpsh get /cluster/sn
结果是耗时2s。
 
这说明:
     
前端请求比后端耗时,说明vtpsh与前端的差异路径上有瓶颈。
     
后端耗时2s,说明这个API真的有点慢。 继续阅读

Laravel系列一:WINDOWS下安装

WINDOWS下,我使用PHP是XAMPP里面自带的,XAMPP可以从 http://www.xampps.com/ 下载。

Composer安装

本来是应该从官网 https://getcomposer.org/download/下载安装的,但是被墙,中国人做了个镜像:http://packagist.cn/ 我自己用这个镜像安装后还是有问题:

没有深究是什么原因,很有可能是下面介绍的PHP SSL证书问题。

如果从官网下载https://getcomposer.org/Composer-Setup.exe安装不成功,原因是主要是PHP的SSL证书问题,用:

方式也一样下载不了。
继续阅读

改正绝对定位导致jsPlumb偏移问题

最近用jsPlumb-2.0.5这个插件画点前端UI,总的来说,这个库的功能还是不错,唯API设计不够优雅,还有一些细节问题,例如坐标定位,如所示结构:

继续阅读

网站被挂马

现象

打开网站发现很慢。

发现是加载一个JS文件 http://x6q.org/p.js ,我先在GOOGLE里面搜索了一遍,并未发现此域名的信息,然后我有在后台grep了一下,没有发现这个URL,看这个域名和名称,感觉像是被挂马了。这种小网站也会有人盯上,没什么内容啊亲。

看了下页面,这一堆代码确非本人代码:

继续阅读