Monday, March 12, 2012

chrome浏览器占据cpu资源,标签页很卡的解决办法

    最近在实验室也同时用chrome同步每次收藏的书签,因为每次查找的资料都很多,所以同步数据量也相对大一些,可是每次回到宿舍用同样用户登录chrome时候发现特别的卡,现在已经是接近无法使用了,浏览器标签页之间无法切换,cpu占用率50%基本上,而且内存也高的很,IO操作更是普通程序的将近100倍了!!!其他的应用程序也卡的不行,根本无法操作,让我极其不爽,一直觉得可能是笔记本的硬盘5400转的,大二大三传bt速度太快,会不会硬盘损坏严重?这样同步书签的时候就占资源?然后我就想下狠心去买个ssd,128G的应该就够了,估计要1000+,但是这样至少能保证我不卡啊,不然严重影响了工作效率和心情,差点都要把本扔了再买一个的冲动了…………


    抱怨一下写了半天废话背景,就在这个前提下,今天来实验室居然发现实验室机器也卡的不行了,不应该啊,这台式机配置还是不错的,关键是新机器啊,怎么能这么快就跑不动chrome???!!


    后来赶紧google,原来发现这个问题非常普遍,具体的解决办法如下:


很简单

清除谷歌浏览器缓存cache。按下Ctrl + Shift + Delete 组合键,调出“清除浏览数据”的对话框,选中“清空缓存”,

在“清除这段时间的数据”后面的下拉列表中选择“所有内容”,然后点击“清除浏览数据”按钮。 如果“清空缓存”后问题仍然存在,可以尝试清除其它数据,比如,清除浏览历史记录和下载历史记录。

当然或者也可以找到如下地址,手工清除。 username 是你的用户名

win 7:  C:\Users\username\AppData\Local\Google\Chrome\User Data\Default

XP:    C:\Documents and Settings\<username>\Local Settings\Application Data\Google\Chrome\User Data\Default

删除 以History开头的所有文件,把的Cache 文件夹里东西删除下。


问题原因:
1. 不是flash版本的问题。
2. 是chrome 浏览历史indexing 的问题。

chrome会保留用户的浏览信息,而且会使用自己的算法进行索引,当使用时间一长,自然会使得内部数据过大,检索起来速度会大幅下降,而且增大系统的负担,建议定时的清除缓存。







Thursday, March 8, 2012

SecureCRT 常用命令(linux命令)


SecureCRT 常用命令(linux命令)

常用命令:
一、ls 只列出文件名 (相当于dir,dir也可以使用) 

-A:列出所有文件,包含隐藏文件。 
-l:列表形式,包含文件的绝大部分属性。 
-R:递归显示。 
--help:此命令的帮助。
二、cd 改变目录 
cd /:进入根目录 
cd :回到自己的目录(用户不同则目录也不同,root为/root,xxt为/home/xxt 
cd ..:回到上级目录 
pwd:显示当前所在的目录
三.less 文件名:查看文件内容。
四.q 退出打开的文件。
五.上传文件: rz 选择要传送的文件,确定。
六.下载文件: sz 指定文件名,enter敲,即下载到了secureCRT/download目录下。
七:删除文件: rm 删除文件 ,rmdir 删除空目录。
 
八.显示 最近输入的20条命令:history 20 
 
九.获得帮助命令 --help查看命令下详细参数:  如:rz --help   , sz --help  。
十.cd 进入某个文件夹的命令:
mkdir+文件夹名 创建某个文件夹的命令
sz+文件名 从服务器端向本机发送文件的命令
rz 从本机向服务器端传送文件的命令
ll 列出当前目录下的所有文件,包括每个文件的详细信息
dir 对当前文件夹
vi 打开当前文件
十一.在编辑某个文件的时候:
a 切换到编辑模式
ctrl+c 退出编辑模式
dd 删除整行
:q 退出当前文件
:w 写入并保存当前文件
-f 强行xx的参数。。。

其它命令:
1.ps -ef  //查看server的进程,以列表形式显示的server进程。
 ps 显示当前在系统运行的进程 /usr/bin/ps [选项] -e 显示每个现在运行的进程 -f 生成一个完全的列表
实际操作:
--------------------------------------
1 SSH客户端连接到10.5.1.55系统(参见《启动远程客户端说明SecureCRT.doc》)
$ cd /home/bea2/user_projects/csdomain/bin
查看weblogic92服务进程
$ ps -eaf | grep weblogic
    bea2 327926 331940   0 13:08:45 pts/4 0:00 grep weblogic
webadmin 421908 368956   0   Sep 24      - 4:13 /usr/java5_64/bin/java -Xms256m -Xmx512m -da -Dplatform.home=/home/weblogic/bea/weblogic92 -Dwls.home=/home/weblogic/bea/weblogic92/server -Dwli.home=/home/weblogic/bea/weblogic92/integration -Dweblogic.management.discover=true -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/home/weblogic/bea/patch_weblogic923/profiles/default/sysext_manifest_classpath -Dweblogic.Name=AdminServer -Djava.security.policy=/home/weblogic/bea/weblogic92/server/lib/weblogic.policy weblogic.Server
bea2 491796 385044 17 00:12:50 pts/6 182:55 /usr/java5_64/bin/java -Xms6g -Xmx8g -javaagent:/home/bea2/user_projects/csdomain/Introscope/wily/Agent.jar -Dcom.wily.introscope.agentProfile=/home/bea2/user_projects/csdomain/Introscope/wily/IntroscopeAgent.profile -Dcom.wily.introscope.agent.agentName=AdminServer -da -Dplatform.home=/home/weblogic/bea/weblogic92 -Dwls.home=/home/weblogic/bea/weblogic92/server -Dwli.home=/home/weblogic/bea/weblogic92/integration -Dweblogic.management.discover=true -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dfile.encoding=GBK -Dibm.stream.nio=true -Dweblogic.ext.dirs=/home/weblogic/bea/patch_weblogic923/profiles/default/sysext_manifest_classpath -Dweblogic.Name=AdminServer -Djava.security.policy=/home/weblogic/bea/weblogic92/server/lib/weblogic.policy weblogic.Server
说明:根据以上提示查看登陆用户bea2启动的进程,注意标红的bea2为进程拥有着, 491796为进程号 
执行如下命令杀掉进程
$ kill -9 491796(根据2操做查找到得系统进程号)
说明:执行后再执行$ ps -eaf | grep weblogic命令将不会看到该进程号的weblogic进程
启动服务
$ ./quickRun.sh
-------------------------------------------------------------------
2.ant -buildfile CMS_MainTrunk.xml  //build 包
3.vi test.txt  //浏览文件内容
i {insert写输入}
esc  退出insert
:wq! write 保存并退出vi模式   
:q!  不保存退出vi模式
4.我一般习惯用ps –ef命令,这样看到以列表形式显示的server进程;用命令pstree来查看server的进程,这样看到以树的形式显示的server进程。
Pstree命令的优点在于可以立即找出某进程的父进程。您可能会需要使用 -p 选项显示每个进程的 PID,以及 -u 选项来显示启动该进程的用户名。
一般来说,这一树结构比较长,您就需要这么执行 pstree –up | less 这将让您纵览整个进程树结构。
5.secureCRT中乱码解决:Options->SessionOptions->Appearance->font把default改成UTF-8,就可以显示中文字体了。
 
6.hostname:查hostname
7.ifconfig 查询主机IP
8.在S-CRT下用ctrl+c 和ctrl+v:
Options---Global Options---Edit default Settings进去后点Terminal---Emulation然后点Mapped Keys,点中低部的,use windows copy and paste key,点确认。

9.进入vi的命令: 
vi filename :打开或新建文件,并将光标置于第一行首 
vi +n filename :打开文件,并将光标置于第n行首 
vi + filename :打开文件,并将光标置于最后一行首 
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
10.移动光标类命令:
}:光标移至段落开头 
{:光标移至段落结尾 
nG:光标移至第n行首 
n+:光标下移n行 
n-:光标上移n行 
n$:光标移至第n行尾 
H :光标移至屏幕顶行 
M :光标移至屏幕中间行 
L :光标移至屏幕最后行 
0:(注意是数字零)光标移至当前行首 
$:光标移至当前行尾
11.屏幕翻滚类命令: 
Ctrl+u:向文件首翻半屏 
Ctrl+d:向文件尾翻半屏 
Ctrl+f:向文件尾翻一屏  //好像是 r
Ctrl+b;向文件首翻一屏 
 
12.搜索命令: 
/pattern:从光标开始处向文件尾搜索pattern 
?pattern:从光标开始处向文件首搜索pattern 
n:在同一方向重复上一次搜索命令 
N:在反方向上重复上一次搜索命令

postgres使用:
1.进入sql运行环境。
[test@test bin]$ ./psql -n dbname -U usrname
stay81=# select count(*) from table1;
 count 
-------
  5986
(1 row)
2. 退出,使用结束后退出,不然连接一直被挂起。
stay81=# \q 
3.postgres 数据导出。
[postgres@test bin]$ ./pg_dump -U postgres -t testTable -d testDB > testTable.dump
或[postgres@test bin]$ ./pg_dump -U postgres -d testDB -t testTable -F c -v > testTable.dump
4. postgres 数据导入。
[postgres@test bin]$ ./psql -U postgres -d testDB < testTable.dump
或[postgres@test bin]$ ./pg_restore -U postgres -d testDB < testTable.dump
5.一台主机上将数据库目录转储到另一台主机上。
pg_dump -h host1 -p 5432 dbname | psql -h host2 -p post1 dbname
或./pg_dump -U postgres -d testDB1 -t testTable | ./psql -U postgres -d testDB2
-U 为用户名 ,-d 为DB名,-t 为表名称,如果整个数据库导出,不需此项。
6.php执行。
[test@test bin]$ /usr/bin/php -q ./batchstart.php

实战操作:

/home/absys6$ ls
dvlp              dvlp_bak20090413  personal          tmp
/home/absys6$ cd dvlp
/home/absys6/dvlp$ ls
/home/absys6/dvlp$ cd SV_POLICY
/home/absys6/dvlp/SV_POLICY$ ls
include  src
/home/absys6/dvlp/SV_POLICY$ cd src
/home/absys6/dvlp/SV_POLICY/src$ ls
/home/absys6/dvlp/SV_POLICY/src$ ls *pc    //对文件进行筛选
/home/absys6/dvlp/SV_POLICY/src$ grep VIP *pc //列出包含VIP的所有.pc的文件的代码的一部分。
/home/absys6/dvlp/SV_POLICY/src$ vi PlyPrmCnt.pc  //查看整个文件。

Monday, March 5, 2012

只有一个ip的vps使用openvz 开小vps时如何共享主机IP

我们都知道,在配置OpenVZ时需要打开核心的路由转换支持,并且通常设置Hardware Node和VPS使用相同网段的地址,以便外面的机器可以直接访问到VPS上。但在某些情况下,例如托管服务器中,通常只提供一个互联网IP地址,再购买 一个IP地址是比较贵的。这时,我们可以把VPS设置为内网地址,然后通过iptables的NAT转换,让VPS与外界可以互相联通。


一、网络架构
当前IP配置是:
引用
HW:121.12.172.184/255.255.255.0
VPS:192.168.100.112/24
这样,VPS处在HW里面,使用私有网段地址,HW相当于网关的作用。
首先,需确认HW上已经打开路由转发,并关闭防火墙:
引用
# cat /proc/sys/net/ipv4/ip_forward
1
# service iptables stop
如果没有的话,请打开/etc/sysctl.conf的支持,并使用sysctl -p生效:
引用
net.ipv4.ip_forward = 1

※ 初次使用,请务必关闭防火墙设定,否则,可能会带来很多意想不到的事情。
然后,确认HW和VPS之间可以互通:
引用
# ping 192.168.100.112 -c 1
PING 192.168.100.112 (192.168.100.112) 56(84) bytes of data.
64 bytes from 192.168.100.112: icmp_seq=1 ttl=64 time=0.044 ms

--- 192.168.100.112 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.044/0.044/0.044/0.000 ms
# vzctl exec 112 ping 121.12.172.184 -c 1
PING 121.12.172.184 (121.12.172.184) 56(84) bytes of data.
64 bytes from 121.12.172.184: icmp_seq=1 ttl=64 time=0.046 ms

--- 121.12.172.184 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.046/0.046/0.046/0.000 ms

二、查看VPS状态
以我使用的模板centos-5-x86_64-default-5.2-20081210.tar.gz为例,VPS中的网络状态:
引用
# vzctl enter 112
entered into CT 112
# ifconfig venet0:0
venet0:0   Link encap:UNSPEC   HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
           inet addr:192.168.100.112   P-t-P:192.168.100.112   Bcast:192.168.100.112   Mask:255.255.255.255
           UP BROADCAST POINTOPOINT RUNNING NOARP   MTU:1500   Metric:1

[root@112 /]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref     Use Iface
192.0.2.0       *               255.255.255.0   U     0       0         0 venet0
169.254.0.0     *               255.255.0.0     U     0       0         0 venet0
default         192.0.2.1       0.0.0.0         UG     0       0         0 venet0
# cat /etc/sysconfig/network
NETWORKING="yes"
GATEWAY="192.0.2.1"
HOSTNAME="112.linuxfly.org"
[root@112 /]# ping 192.0.2.1
connect: Invalid argument
可见,VPS通过venet0与HW互相访问。但网关192.0.2.1是一个虚拟出来的IP地址,VPS在启动时自动设定该值,不能直接修改。
(若使用route add/del命令修改VPS的默认网关,VPS和HW将中断网络连接)

三、使用HW iptables的NAT转发
在HW上执行(121.12.172.184为HW上eth0的对外IP地址):
# iptables -F -t nat
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 121.12.172.184
若HW使用浮动IP地址,请使用:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
然后设定VPS的DNS地址:
引用
# vzctl set 112 --nameserver 202.96.128.86 --save
File resolv.conf was modified
Saved parameters for CT 112
测试VPS能否出去:
引用
# vzctl exec 112 ping www.163.com -c 1
PING www.cache.idns.yeah.net (220.181.28.50) 56(84) bytes of data.
64 bytes from 220.181.28.50: icmp_seq=1 ttl=55 time=42.7 ms

--- www.cache.idns.yeah.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 42.757/42.757/42.757/0.000 ms
这时,VPS处在HW的后面,若需要从互联网访问VPS,则还需要根据应用转发端口。例如22服务,在HW上设置:
# iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 8022 -j DNAT --to-destination 192.168.100.112:22
同样的道理,想利用VPS提供http服务的话,可以在HW上设置iptables或squid反向代理实现转发。

四、NAT inside VE
实际上这不属于本次内容的话题,但由于概念有点相似,觉得有必要说说。
NAT inside VE,也就是在VPS中使用iptables的NAT功能。VPS作为一个相对独立的虚拟系统环境,是支持iptables防火墙设置的。但VPS可使用的iptables模块受限与HW环境,并由/etc/vz/vz.conf决定:
引用
## IPv4 iptables kernel modules
IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length iptable_nat ip_nat_ftp"
其中,默认没有加入iptable_nat模块的。添加后,即可在VPS中使用了。


Sunday, March 4, 2012

Subversive和Subclipse比较



     Eclipse 是否是你操作 SVN 的唯一途径?如果是,偏向于选择 Subversive;如果不是,比如说像我,还要经常使用 TortoiseSVN ,则偏向与选择 Subclipse 。

     Subclipse 的操作更倾向于与 TortoiseSVN 习惯,而 Subversive 的操作更倾向于 Eclipse 习惯操作。

     SVN是否是你的唯一版本管理系统(或最重要的管理系统),你是否对 SVN 的新功能、新特性比较感兴趣?如果是,偏向于选择 Subclipse ;否则,偏向于选择 Subversive。

     你的 SVN 操作是否会比较简单?比如你是否仅仅使用的仅仅是简单的检出/提交,等等操作,也不愿意把时间花费在研究 SVN 的高级特性上。如果是,偏向于选择 Subversive,如果否,则建议选择 Subclipse 。

     以上几点是否可以对你选择那个插件有所帮助呢?其实这两个插件都很不错,对于我们日常使用来说,哪个都能很好完成我们的任务,如果你还是不能确定, 就别再费神在这上面花工夫了,也不用再在网上寻找两者比较了,随便选一个就行了。

Thursday, March 1, 2012

Android开发,The connection to adb is down, and a severe error has occurred.


有时候运行Android项目的时候会出现以下的问题:



[2011-11-22 15:17:07 - HelloWorld] ------------------------------
[2011-11-22 15:17:07 - HelloWorld] Android Launch! 
[2011-11-22 15:17:07 - HelloWorld] The connection to adb is down, and a severe error has occured. 
[2011-11-22 15:17:07 - HelloWorld] You must restart adb and Eclipse. 
[2011-11-22 15:17:07 - HelloWorld] Please ensure that adb is correctly located at 'C:\Android\android-sdk\platform-tools\adb.exe' and can be executed.



出现以上这种情况,是因为某些时候,android项目被强制关闭或者崩溃了,导致adb.exe运行不正常,这时候只重启eclipse还不行,应该直接把adb.exe进程重启,在任务管理器找到adb.exe,并且结束之!,然后再重启eclipse,然后再运行就好了