于吉吉的技术博客

建造高性能门户网

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  65 随笔 :: 6 文章 :: 149 评论 :: 0 Trackbacks

#

     摘要: 上个月参加的网易游戏部QA组的黑盒测试培训,觉得挺有意思的,不过最让我感兴趣的是,能和真正专业的测试人员做了一点讨论,发现站在开发人员的角度看待测试和站在测试人员看待测试时完全不同的一种东西.

程序员和测试人员的心理差别
程序员和测试人员的心理差别可以简单的归纳为以下几种

成功 / 不成功
什么才是一次成功的测试,大多数的开发人员对自己的程序测试完没发现错误,就会说"这是一个成功的测试",如果发现某些新的错误则称"这是不成功的测试";而测试人员刚好相反,当然这也是因为双方的职责不同而引起的

维护 / 破坏,施虐
开发人员对测试往往是一种维护性的测试,目标在于证明自己开发的程序没有错误,可能跟我们开发人员经常做建设性工作,更倾向创造事物,而不是将事物破坏有关;而测试人员在测试更多是一种破坏的过程,甚至是一种施虐,摆出一种把鸡蛋打碎搅黄来挑骨头的姿态  阅读全文
posted @ 2010-12-03 16:00 陈于喆 阅读(1712) | 评论 (3)编辑 收藏

     摘要: PHP-FPM 是 一个PHP FastCGI进程管理器

FastCGI是一个可伸缩的,高速地在web server和脚本语言间交互的接口。FastCGI的主要优点是把动态语言和web server分离开来。这种技术允许把web server和动态语言运行在不同的主机上,以大规模扩展和改进安全性而不损失生产效率。

php-fpm可以和任何支持远端FastCGI的web server工作

安装
php-5.2.13.tar.gz
php-5.2.13-fpm-0.5.14.diff.gz

tar zxvf php-5.2.13.tar.gz
gunzip php-5.2.13-fpm-0.5.14.diff.gz

patch -d php-5.2.13 -p1 < php-5.2.13-fpm-0.5.14.diff (给php源码打fpm补丁)

cd php-5.2.13

./configure --prefix=/usr/local/p  阅读全文
posted @ 2010-11-30 18:44 陈于喆 阅读(2797) | 评论 (0)编辑 收藏

     摘要: mysql的官方网站是 http://www.mysql.com

tar zxvf mysql-5.1.50.tar.gz

cd mysql-5.1.50

./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client
--enable-local-infile --with-low-memory

make && make install

chmod +w /usr/local/mysql

chown -R mysql:mysql /usr/local/mysql

cp support-files/my-medium.cnf /etc/my.cnf  阅读全文
posted @ 2010-11-30 15:21 陈于喆 阅读(389) | 评论 (0)编辑 收藏

     摘要: nginx的官方网站是:http://www.nginx.org

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

nginx的特性
1.目前官方 Nginx 并不支持Windows,您只能在包括Linux,UNIX,BSD系统下安装和使用
2.Nginx 本身只是一个HTTP和反向代理服务器,它无法像Apache一样通过安装各种模块来支持不同的页面脚本,例如PHP、CGI等
3.Nginx 支持简单的负载均衡和容错
4.支持作为基本 HTTP 服务器的功能,例如日志、压缩、Byte ranges、Chunked responses、SSL、虚拟主机  阅读全文
posted @ 2010-11-30 12:45 陈于喆 阅读(2615) | 评论 (0)编辑 收藏

     摘要: 1.卸载rpm包
通过 rpm -qa | grep httpd 搜索出

httpd-2.2.3-43.el5.centos.3



rpm -e httpd-2.2.3-43.el5.centos.3

如果出现提示有其他相关包依赖此rpm,可以选择强制卸载

2.yum 或 apt-get 卸载

yum -y remove httpd
yum -y remove httpd* 卸载多个相识的软件

3.卸载自编译包
make uninstall 或 手动删除  阅读全文
posted @ 2010-11-29 15:14 陈于喆 阅读(261) | 评论 (0)编辑 收藏

     摘要: NET-SNMP的官方网站是:http://www.net-snmp.org
先阅读一下官网的一点说明(详细见官网)
Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment (eg.routers), computer equipment and even devices like UPSs. Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6
...
  阅读全文
posted @ 2010-11-29 11:34 陈于喆 阅读(2425) | 评论 (0)编辑 收藏

     摘要: 刚在一台新安装ubuntu的机器上进行vi,出现
-bash: vi: command not found
使用vim则可以正常的操作,当然这个应该是vi/vim没安装好的原因,重新执行命令
yun -y install vim*
完整的安装完毕后则可以正常使用vi/vim

以前只知道vim是vi的升级版,大部分时候也只使用vi,至于vim和vi的一些区别上还真的不知道,以下为在网上查找整理的内容

vim,意为VI iMproved,主要的优势体现在以下几个方面:  阅读全文
posted @ 2010-11-22 14:57 陈于喆 阅读(239) | 评论 (0)编辑 收藏

     摘要: 把我上次的工程所用到的jar包做了一个整理,也加了一些简单的描述,下面图是上次工程用到的所有jar吧



JAR包与描述对照表 注:jar包尾后的版本号不代表当前最高版本
activation-1.1.jar Sun的JavaBeans Activation Framework(JAF),JavaMail要运行必须依赖于它的支持
asm-3.0.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
asm是一个轻量级字节码处理和分析框架
alveole-struts2.jar
alveole-tools.jar

aspectjtools-1.5.3.jar
Aspect提供的注释类库和相应的解析类库
atomikos-util.jar
数据库提供分布式事务支持
  阅读全文
posted @ 2010-11-03 14:59 陈于喆 阅读(3250) | 评论 (1)编辑 收藏

     摘要: 上周给同事讲解了cacti的安装及其使用时做了一份ppt,在这里将这份ppt简单梳理一下介绍一下cacti在我们日常工作中的监控使用

cacti的结构
在广义上来说cacti是一套网络流量监测图形分析工具,但从狭义来说cacti只是由php语言实现的一个软件,

它需要PHP,apache,Mysql,SNMP,RRDTool等工具的支持  阅读全文
posted @ 2010-11-02 17:28 陈于喆 阅读(3255) | 评论 (0)编辑 收藏

     摘要: 上次写的中提到了openVPN,也做了一点点简单的介绍,有朋友也问了一些关于vpn的问题
首先,我所购买的vps是基于OpenVZ类型,无法配置标准的VPN(无测试过),部分手机可能无法支持,但OpenVZ支持pptp和openVPN

请登录OPENVPN官网查阅最新资料

ok!在安装之前请确认一下你购买的vps是否开启了tun/tap的支持,burst vps默认是不开启tun/tap的,可以使用cat /dev/net/tun 进行检查

如果是没有权限的话可以发个ticket要求客服为你开启tun/tap

出现File descriptor in bad state说明tun/tap已经开启,可以开始进行openVPN的安装配置

我的vps安装的系统为CentOS release 5.5 (Final),下面一系列安装和配置都在此vps上进行,根据 配置

一.服务端安装  阅读全文
posted @ 2010-11-01 17:35 陈于喆 阅读(8922) | 评论 (2)编辑 收藏

     摘要: 先感谢同事梁员外在去年就给我们介绍了VPS,前段时间也购买了一个VPS,使用了一段时间感觉还不错
先介绍一下VPS,下面是一些讲座的笔记,部分内容直接摘自梁员外的ppt

What is VPS

VPS是Virtual Private Servers的简称,也就是我们说的虚拟专用服务器,在一台物理服务器上创建多个相互隔离的虚拟专用服务器。这些虚拟服务器以最大化的效率共享硬件、软件许可证以及管理资源。对其用户和应用程序来讲,每一个VPS平台的运行和管理都与一台独立主机完全相 同,因为每一个VPS均可独立进行重启并拥有自己的root访问权限、用户、IP地址、内存、过程、文件、应用程序、系统函数库以及配置文件。

国外的主流VPS类型

国外的主流VPS类型主要是OpenVZ和XEN,先介绍一下OpenVZ

OpenVZ(Virtuozzo)
SWsoft公司的商用版虚拟化技术,而OpenVZ 则是基于Virtuozzo的开源项目。多个虚拟服务器在一个内核上运行,具有高性能和出色管理等优点.   阅读全文
posted @ 2010-10-12 15:17 陈于喆 阅读(7735) | 评论 (4)编辑 收藏

     摘要: 听DBA的人说,相比oracle,MySQL就是一个玩具级别的数据库,在网易门户中,DBA基本很少去管理到MySQL的东西,所以我们产品使用到的MySQL的一些配置和优化还是需要我们开发人员自己动手,下面就简单介绍一下实用的定期优化方法

定期分析表

ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name]

本语句用于分析和存储表的关键字分布。在分析期间,使用一个读取锁定对表进行锁定。这对于MyISAM, BDB和InnoDB表有作用。对于MyISAM表,本语句与使用myisamchk -a相当。

MySQL使用已存储的关键字分布来决定,当您对除常数以外的对象执行联合时,表按什么顺序进行联合。

mysql> analyze table a;
+--------+---------+----------+-----------------------------+
| Table | Op | Msg_  阅读全文
posted @ 2010-10-10 14:55 陈于喆 阅读(5615) | 评论 (2)编辑 收藏

     摘要: 如果你的MyIsam表存在大量高并发的读写,那么就可能出现坏表的现象,这是因为MyIsam存储引擎所决定的,一张损坏的表的症状可能是以前某些错误

*.frm 被锁定不能更改
找不到*.MYI
文件意外结束
记录文件损坏

处理1
使用MySQL自带的myisamchk的工具进行修复,myisamchk不仅可以检查和修复MyIsam表,还可以进行优化和分析表,实际上,它集成了mysql中的check,repair,analyze,optimize的功能,下面是用myisamchk进行修复

myisamchk -r tablename

其中-r参数的含义是recover,在以往的应用,这语句几乎可以解决上面所述碰到的问题,如果还不行,可以使用

myisamchk -o tablename

其中-o参数的含义是--safe-recover,可以进行更安全的修复

处理2
使用MySql的CHECK TABLE和REPAIR TABL  阅读全文
posted @ 2010-10-10 14:11 陈于喆 阅读(1976) | 评论 (0)编辑 收藏

     摘要: 先感谢同事renial的<解析xml时遇到的一些问题>技术分享,下面是一些记录和实际操作

1.使用Dom4j解析大文件时内存溢出的问题

问题是这样的,当我用dom4j去解析一个几十M的xml时,就出现out of memory.当然了,这也是根据你的机器性能而定的,我们都知道dom4j在各种DOM解析器中应该算是性能最好的,连大名鼎鼎的Hibernate都是用dom4j来解析XML配置文件的
问题出在于使用dom4j的SAXReader是会把整个XML文件一次性读入,如果XML文件过大就会抛出out of memory,但即使是使用SAXParser批量读入解析,但它也是一次解析完,假设XML文件有几万条数据,那么解析后就必须在内存放入这几万条对象.

常用的Dom4j文件解析方式:

InputStream is = new FileInputStream(filePath);
SAXReader reader = new SAXReader(); //将整个XML构建为一个Document 阅读全文
posted @ 2010-09-28 17:10 陈于喆 阅读(14998) | 评论 (2)编辑 收藏

     摘要: 对于的用户输入搜索出现XSS漏洞的问题,主要是由于开发人员对XSS了解不足,安全的意识不够造成的。现在让我们来普及一下XSS的一些常识,以后在开发的时候,每当有用户输入的内容时,都要加倍小心。

一、什么是XSS
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性
在WEB2。0时代,强调的是互动,使得用户输入信息的机会大增,在这个情况下,我们作为开发者,在开发的时候,要提高警惕。

二、XSS攻击的主要途径
方法只是利用HTML的属性,作各种的尝试,找出注入的方法。现在对三种主要方式进行分析。

第一种:对普通的用户输入,页面原样内容输出。
打开http://go.ent.163.com/goproducttest/test.jsp(限公司IP),  阅读全文
posted @ 2010-09-26 19:21 陈于喆 阅读(3181) | 评论 (5)编辑 收藏

     摘要: 先感谢同事梁员外的技术分享,下面是一些相关的笔记,当然啦,在应用Morphia之前需要有MongoDB的使用经验.

What is Morphia?

Morphia is a lightweight type-safe library for mapping your Java objects to/from MongoDB

简单的来说Morphia与MongoDB的关系就如Hibernate与关系数据库的关系, 是一个实现Java对象到MongoDB双向映射的类库。

下面是摘自Morphia官方的简介,带有一定的广告性,呵呵

Easy to use, and very lightweight; reflection is used once per type and cached.

Annotations describe mapping behavior; there are no XML files.

Provi  阅读全文
posted @ 2010-09-16 17:41 陈于喆 阅读(13117) | 评论 (3)编辑 收藏

     摘要: 自从dropbox被墙了之后就一直在寻找更好的同步工具,毕竟使用同步工具比什么google doc和网易网盘要爽的多,起码不用上传下载,用了什么PathSync和DBSync都觉得不如dropbox的爽(纯属个人感觉哈).
其实我的需求倒是挺简单的,就是要同步家里和公司两台电脑的一些指定的文件夹,突然想到每天都在使用的rsync,自己配一个吧,反正服务器是现有的,只不过是linux,两台需要同步的电脑都是windows,下面就分享一个rsync如何在windows和linux两个系统中进行文件同步.

linux服务端
按照rsync工具
建议采用yum install rsync 或 apt-get install rsync安装,因为方便嘛
安装完毕后

vi /etc/rsyncd.conf

pid file = /var/run/rsyncd.pid
uid = nobody
gid = nobody
max connections = 36000
log file  阅读全文
posted @ 2010-09-06 18:44 陈于喆 阅读(8583) | 评论 (1)编辑 收藏

     摘要: mysql有4种不同的日志,分别是二进制日志,查询日志,慢查询日志和错误日志,这些日记记录着数据库工作的方方面面,可以帮助我们了解数据库的不同方面的踪迹,下面先介绍二进制日志的作用和使用方法,并利用二进制日志对数据库进行各种维护和优化,其他日志也会在后面陆续会做详细的介绍。

二进制日志(bin-log日志)
在上一篇介绍mysql主从配置的blog中,已经提过bin-log日志的作用和使用,bin-log日志记录了所有的DDL和DML的语句,但不包括查询的语句,语句以事件的方式保存,描述了数据的更改过程,此日志对发生灾难时数据恢复起到了极为重要的作用。

开启
mysql默认是没有开发bin-log日志,首先我们需要开启bin-log日志,在my.cnf中修改



指定了bin-log日志的路径,开启日志后需要myssqladmin flush log才生效,重启后我们发现在刚才设定的路径新增了log文件,这就是我们需要的二进制日志



由于日志是以二进制方式存储的,不  阅读全文
posted @ 2010-09-04 18:55 陈于喆 阅读(17054) | 评论 (1)编辑 收藏

     摘要: 记得问过身边的一些开发工程师(非前端)缓存要分几个层次,从哪里做起,答案很多,比如反向代理缓存,DNS缓存,memcached,数据库缓存等等,确实很完整,不过好像漏掉了我们用户跟我们联通的最根本的工具浏览器,确实好似很少有人把用户的浏览器当作是web站点的组成部分来看待

缓存协商
现在我们需要将用户的浏览器也纳入我们构建网站各个缓存层次中的其中一个重要层次,网站信息和内容在由web服务器生成,而将这些信息和内容作为一段二进制的文件作为本地缓存文件存放在用户的浏览器,是两个独立个体共同完成的任务,所以两者之间需要一种沟通的机制,也就是HTTP的缓存协商

Last-Modified和If-Modified-Since协商
Last-Modified和If-Modified-Since分别位于响应头信息和请求头信息中,都是记录请求的页面最后的修改时间
在第一次访问web服务器会返回200状态,并在浏览器的响应头Last-Modified上写上此页面最后修改的时间戳
使用firebug进行查看


  阅读全文
posted @ 2010-08-25 00:03 陈于喆 阅读(6425) | 评论 (0)编辑 收藏

     摘要: 检查从服务器一般使用show slave status命令来检查

mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.100
Master_User: root
Master_Port: 3306
Connect_Retry: 3
Master_Log_File: mysql-bin.003
Read_Master_Log_Pos: 79
Relay_Log_File: mysql -relay-bin. 003
Relay_Log_Pos: 548
Relay_Master_Log_File: mysql -bin. 003
Slave_IO_Running: Yes
Slave_SQL_Ru  阅读全文
posted @ 2010-08-23 21:35 陈于喆 阅读(4073) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4 下一页