存档在 2014年12月

怎样在CentOS下安装KDE/GNOME+VNC实现远程图形界面管理

2014年12月30日

我们一般用在shell下使用SSH命令行来管理Linux服务器。但有时候需要像Windows下的远程桌面这样的图形远程程序来管理服务器。

我们可以安装KDE或Gnome桌面环境后,配合VNC(Virtual Network Computing)来实现远程图形管理!具体步骤如下:

1. 安装KDE

yum install kdepim

或安装Gnome

yum groupinstall gnome-desktop
yum install gnome-session

内存大的建议用GNOME!256M以上内存可两个都安装。

再运行:

yum groupinstall "X Window System" "GNOME Desktop Environment" "KDE (K Desktop Environment)"

2. 安装VNC

yum -y install vnc vnc-server firefox x11-xorg
yum -y install fonts-chinese

3. 配置

运行如下代码

vncserver

运行完后会提示你设置密码,需要输两遍。设好你的密码后,然后程序会建立一个.vnc的目录,一般情况下是/root/.vnc

杀掉VNC的进程并删除临时sockets。

pkill -9 vnc
rm -rf /tmp/.X1*

编辑/root/.vnc/xstartup

vi /root/.vnc/xstartup

在最后一行将twm修改为:
a. KDE则改成startkde
b. GNOME则改成gnome-session

4. 重新开启vncserver

vncserver

到此,安装结束。现在可以使用VNC客户端远程图形化管理服务器了。

VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的。

下载网址:http://www.cr173.com/soft/14314

CentOS 远程管理图形界面设置

XManager是一个简单易用的高性能的运行在Windows平台上的X Server软件。它能把远端Unix/Linux的桌面无缝地带到你的Windows上,甚至当你的电脑是在内网或防火墙后,你也能通过SSH协议安全的运行远端的X应用程序。特点包括: 可通过Xcongfig工具设置多个Xmanager设置; 支持多用户的Windows终端环境; 支持多个IP地址; 支持本地资源数据库; 通过热键转换键盘映射; 支持多窗口下的Windows打印功能等。

这里我使用的是centos5.5,其他版本的配置基本一样。要使用xmanager连接图形界面首先要保证centos系统本身是有图形界面的,且图形界面处于使用状态,我这里安装的是gnome桌面。下面开始配置。

一、 Linux服务器端设置:

我们在知道windows有远程桌面连接功能,主要开启远程桌面连接服务就可以在其他主机上远程管理自己的服务器,在Linux平台上这个功能是通过GDM实现的。GDM是GNOME的图形桌面登陆器,GDM是GNOME项目的一个子程序,作用就是管理图形界面的用户登录。

GDM的配置文件放在/usr/share/gdm/defaults.conf

1. 下面我们来配置GDM开启远程连接功能。

cp defaults.conf defaults.conf.bak //为了防止配置过程中出现错误建议在修改之前备份一份原始文件。

在/usr/share/gdm/defaults.conf里确保有以下几句且是唯一的

AllowRoot=true //允许root帐号登录
AllowRemoteRoot=true //允许root帐号远程连接
Enable=true //该项默认是false,这里改为true或者1都可以
DisplaysPerHost=10 //表示显示主机的数量
Port=177 //开启端口,该项默认是注释掉的,启用即可

2. 开启Linux防火墙的177 UDP端口。

Xmanager连接GDM用的是UDP的177端口,所以防火墙上一定要打开这个端口:

iptables -I INPUT -p tcp --dport 177 -j ACCEPT

3.

4.

最后重启一下GDM服务

# gdm-restart
#p#副标题#e#

二、Xmanager客户端的设置:

在Windows系统上运行xmanager里的Xbrowser程序,在里面新建一个Xmanager Session,在Host这里输入ip地址,其它配置都不要改变(包括端口号),确定退出。

然后双击这个New Xmanager Session,进入登录界面,输入用户名和密码以后就可以登录到Linux的远程桌面了。

#p#副标题#e#

这样就实现了在Windows上通过Xmanager远程CentOS。

如果想直接采用Xstart连接须要注意的选项如下:

CentOS下快速配置VNC Server

一、启动VNC Server服务

使用vncserver命令(会在当前用户主目录下生成.vnc文件夹)

vncserver
You will require a password to access your desktops.
Password:<输入密码>
Verify:<输入密码>
xauth: creating new authority file /root/.Xauthority

New 'CPAYNET005:1 (root)' desktop is CPAYNET005:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/CPAYNET005:1.log

二、配置VNC Server启动文件

首次创建 ~HOME/.vnc/xstartup 时,指定的窗口管理器是 twm ,它是一个极小的窗口管理器,几乎每台 X Window 系统机器上都有 twm。twm 不具备完整“桌面管理器”(象 KDE、GNOME 或 WindowMaker)的大部分花哨功能。下面是修改过的示例:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &

在文件中,将倒数第二、三行注销掉,增加倒数第一行,表示启动GNOME桌面系统。

当然,倒数第一行也可以改为startkde &,表示启动KDE桌面系统。

三、关闭VNC Server服务

vncserver -kill :桌面号

例如:关闭上面的vnc连接

vncserver -kill :1

四、VNC Server 高级设置

1.设置vncserver启动脚本(/etc/init.d/vncserver)实现系统自启动时启动vncserver.

在/etc/rc.d/rc.local文件中加入下面行

/etc/init.d/vncserver start

也可以用chkconfig命令实现系统自启动时启动vncserver

chkconfig --level 2345 vncserver on

2、编辑/etc/sysconfig/vncservers

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768"

在ARGS 中修改”1024×768″来适应自己的X桌面实际参数配置。可以在这里添加任何其他VNC服务器参数配置。在VNCSERVERS中修改 root 为你希望运行VNC桌面的用户。VNCSERVERS中的1表示VNC以桌面1运行,如果希望添加其他的桌面,可以修改配置如下:

VNCSERVERS="1:user1 2:user2 3:user3"

3.设置vnc server的访问密码

使用vncpasswd命令

4、在RedHat系统上,使用以下命令启动VNC:

/etc/init.d/vncserver start

5、查看VNC Server启动情况

netstat -tulnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:5801 0.0.0.0:* LISTEN 5248/Xvnc
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 5248/Xvnc
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 5248/Xvnc
tcp 0 0 :::6001 :::* LISTEN 5248/Xvnc

注:如果在浏览器中通过web方式访问VNC则 端口为:5801,如果通过VNC客户端(比如VNC Viewer)来访问VNC则端口为:5901

参考资料:

处理海量数据的经验和技巧

2014年12月29日

海量数据的特点:

一、数据量过大,数据中什么情况都可能存在。

如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量的数据中,什么情况都可能存在,例如,数据中某处格式出了问题,尤其在程序处理时,前面还能正常处理,突然到了某个地方问题出现了,程序终止了。

二、软硬件要求高,系统资源占用率高。

对海量的数据进行处理,除了好的方法,最重要的就是合理使用工具,合理分配系统资源。一般情况,如果处理的数据过TB级,小型机是要考虑的,普通的机子如果有好的方法可以考虑,不过也必须加大CPU和内存,就象面对着千军万马,光有勇气没有一兵一卒是很难取胜的。

三、要求很高的处理方法和技巧。

这也是本文的写作目的所在,好的处理方法是一位工程师长期工作经验的积累,也是个人的经验的总结。没有通用的处理方法,但有通用的原理和规则。

处理海量数据的经验和技巧:

一、选用优秀的数据库工具

现在的数据库工具厂家比较多,对海量数据的处理对所使用的数据库工具要求比较高,一般使用Oracle或者DB2,微软公司最近发布的SQL Server 2005性能也不错。另外在BI领域:数据库,数据仓库,多维数据库,数据挖掘等相关工具也要进行选择,象好的ETL工具和好的OLAP工具都十分必要,例如Informatic,Eassbase等。笔者在实际数据分析项目中,对每天6000万条的日志数据进行处理,使用SQL Server 2000需要花费6小时,而使用SQL Server 2005则只需要花费3小时。

二、编写优良的程序代码

处理数据离不开优秀的程序代码,尤其在进行复杂数据处理时,必须使用程序。好的程序代码对数据的处理至关重要,这不仅仅是数据处理准确度的问题,更是数据处理效率的问题。良好的程序代码应该包含好的算法,包含好的处理流程,包含好的效率,包含好的异常处理机制等。

三、对海量数据进行分区操作

对海量数据进行分区操作十分必要,例如针对按年份存取的数据,我们可以按年进行分区,不同的数据库有不同的分区方式,不过处理机制大体相同。例如SQL Server的数据库分区是将不同的数据存于不同的文件组下,而不同的文件组存于不同的磁盘分区下,这样将数据分散开,减小磁盘I/O,减小了系统负荷,而且还可以将日志,索引等放于不同的分区下。

四、建立广泛的索引

对海量的数据处理,对大表建立索引是必行的,建立索引要考虑到具体情况,例如针对大表的分组、排序等字段,都要建立相应索引,一般还可以建立复合索引,对经常插入的表则建立索引时要小心,笔者在处理数据时,曾经在一个ETL流程中,当插入表时,首先删除索引,然后插入完毕,建立索引,并实施聚合操作,聚合完成后,再次插入前还是删除索引,所以索引要用到好的时机,索引的填充因子和聚集、非聚集索引都要考虑。

五、建立缓存机制

当数据量增加时,一般的处理工具都要考虑到缓存问题。缓存大小设置的好差也关系到数据处理的成败,例如,笔者在处理2亿条数据聚合操作时,缓存设置为100000条/Buffer,这对于这个级别的数据量是可行的。

六、加大虚拟内存

如果系统资源有限,内存提示不足,则可以靠增加虚拟内存来解决。笔者在实际项目中曾经遇到针对18亿条的数据进行处理,内存为1GB,1个P4 2.4G的CPU,对这么大的数据量进行聚合操作是有问题的,提示内存不足,那么采用了加大虚拟内存的方法来解决,在6块磁盘分区上分别建立了6个4096M的磁盘分区,用于虚拟内存,这样虚拟的内存则增加为 4096*6 + 1024 = 25600 M,解决了数据处理中的内存不足问题。

七、分批处理

海量数据处理难因为数据量大,那么解决海量数据处理难的问题其中一个技巧是减少数据量。可以对海量数据分批处理,然后处理后的数据再进行合并操作,这样逐个击破,有利于小数据量的处理,不至于面对大数据量带来的问题,不过这种方法也要因时因势进行,如果不允许拆分数据,还需要另想办法。不过一般的数据按天、按月、按年等存储的,都可以采用先分后合的方法,对数据进行分开处理。

八、使用临时表和中间表

数据量增加时,处理中要考虑提前汇总。这样做的目的是化整为零,大表变小表,分块处理完成后,再利用一定的规则进行合并,处理过程中的临时表的使用和中间结果的保存都非常重要,如果对于超海量的数据,大表处理不了,只能拆分为多个小表。如果处理过程中需要多步汇总操作,可按汇总步骤一步步来,不要一条语句完成,一口气吃掉一个胖子。

九、优化查询SQL语句

在对海量数据进行查询处理过程中,查询的SQL语句的性能对查询效率的影响是非常大的,编写高效优良的SQL脚本和存储过程是数据库工作人员的职责,也是检验数据库工作人员水平的一个标准,在对SQL语句的编写过程中,例如减少关联,少用或不用游标,设计好高效的数据库表结构等都十分必要。笔者在工作中试着对1亿行的数据使用游标,运行3个小时没有出结果,这是一定要改用程序处理了。

十、使用文本格式进行处理

对一般的数据处理可以使用数据库,如果对复杂的数据处理,必须借助程序,那么在程序操作数据库和程序操作文本之间选择,是一定要选择程序操作文本的,原因为:程序操作文本速度快;对文本进行处理不容易出错;文本的存储不受限制等。例如一般的海量的网络日志都是文本格式或者csv格式(文本格式),对它进行处理牵扯到数据清洗,是要利用程序进行处理的,而不建议导入数据库再做清洗。

十一、定制强大的清洗规则和出错处理机制

海量数据中存在着不一致性,极有可能出现某处的瑕疵。例如,同样的数据中的时间字段,有的可能为非标准的时间,出现的原因可能为应用程序的错误,系统的错误等,这是在进行数据处理时,必须制定强大的数据清洗规则和出错处理机制。

十二、建立视图或者物化视图

视图中的数据来源于基表,对海量数据的处理,可以将数据按一定的规则分散到各个基表中,查询或处理过程中可以基于视图进行,这样分散了磁盘I/O,正如10根绳子吊着一根柱子和一根吊着一根柱子的区别。

十三、避免使用32位机子(极端情况)

目前的计算机很多都是32位的,那么编写的程序对内存的需要便受限制,而很多的海量数据处理是必须大量消耗内存的,这便要求更好性能的机子,其中对位数的限制也十分重要。

十四、考虑操作系统问题

海量数据处理过程中,除了对数据库,处理程序等要求比较高以外,对操作系统的要求也放到了重要的位置,一般是必须使用服务器的,而且对系统的安全性和稳定性等要求也比较高。尤其对操作系统自身的缓存机制,临时空间的处理等问题都需要综合考虑。

十五、使用数据仓库和多维数据库存储

数据量加大是一定要考虑OLAP的,传统的报表可能5、6个小时出来结果,而基于Cube的查询可能只需要几分钟,因此处理海量数据的利器是OLAP多维分析,即建立数据仓库,建立多维数据集,基于多维数据集进行报表展现和数据挖掘等。

十六、使用采样数据,进行数据挖掘

基于海量数据的数据挖掘正在逐步兴起,面对着超海量的数据,一般的挖掘软件或算法往往采用数据抽样的方式进行处理,这样的误差不会很高,大大提高了处理效率和处理的成功率。一般采样时要注意数据的完整性和,防止过大的偏差。笔者曾经对1亿2千万行的表数据进行采样,抽取出400万行,经测试软件测试处理的误差为千分之五,客户可以接受。

还有一些方法,需要在不同的情况和场合下运用,例如使用代理键等操作,这样的好处是加快了聚合时间,因为对数值型的聚合比对字符型的聚合快得多。类似的情况需要针对不同的需求进行处理。

海量数据是发展趋势,对数据分析和挖掘也越来越重要,从海量数据中提取有用信息重要而紧迫,这便要求处理要准确,精度要高,而且处理时间要短,得到有价值信息要快,所以,对海量数据的研究很有前途,也很值得进行广泛深入的研究!

原文网址:http://blog.csdn.net/yongsheng0550/article/details/6592750

怎样为DeDeCMS配置memcache

2014年12月25日

参考:http://jingyan.baidu.com/article/a681b0dec5cf793b19434673.html

部署memcached:

参考:https://amon.org/memcached

WordPress插件: Memcached 启用Memcached内存缓存

2014年12月24日

参考Portablesoft.org站长的经验:“使用 Memcached + Batcache 内存缓存,另外也配置 eAccelerator 使用内存存储缓存的 PHP 脚本。这样基于内存的缓存架构,速度和效率都非常好,之前 W3 Total Cache 使用文件缓存的话,很容易出现问题。”

Memcached 是一种高性能的分布式内存对象缓存系统。在动态应用,Memcached 既能提高访问的速度,同时还减低了数据库的负载。

Danga Interactive 为提升 LiveJournal.com 的速度研发了 Memcached。目前,LiveJournal.com 每天已经在向一百万用户提供多达两千万次的页面访问。而这些,是由一个由 Web 服务器和数据库服务器组成的集群完成的。Memcached 几乎完全放弃了任何数据都从数据库读取的方式,同时,它还缩短了用户查看页面的速度、更好的资源分配方式,以及 Memcache 失效时对数据库的访问速度。

由于 WordPress 默认支持 Object Cache,所以在 WordPress 实现 Memcached 就是使用 Memcached 把 WordPress 的 Object Cache 写到内存中去,下次直接从内存中读取。相比直接从数据库去读取数据,或者从 Object Cache 数据存到文件,然后从硬盘中读取,Memcached 有很大的速度优势。

我爱水煮鱼使用 Memcached 之后数据显示:缓存对象的命中率接近 97%,基本上可以保证所有数据都是从能内存中取,所以使用 Memcached 进行缓存是非常有效的。

WordPress 如何启用 Memcached 缓存

1. 为 PHP 需要安装上 Memcached 扩展。可以通过 phpinfo() 这个 PHP 函数来检测。

2. 下载 WordPress Memcached 插件:http://wordpress.org/extend/plugins/memcached/

3. 把下载的:object-cache.php 复制到 wp-content,注意不是 wp-content/plugins/。

4. WordPress 会自动检查在 wp-content 目录下是否有 object-cache.php 文件,如果有,直接调用它作为 WordPress 对象缓存机制。

参考资料:

怎样编译安装aspell/pspell

2014年12月23日

官网:http://aspell.net

编译安装:

wget ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.6.1.tar.gz && tar -xf aspell-0.60.6.1.tar.gz && cd aspell-0.60.6.1
./configure --prefix=/usr
make && make install

安装字典:

wget ftp://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-2017.01.22-0.tar.bz2 && tar -xf aspell6-en-2017.01.22-0.tar.bz2 && cd aspell6-en-2017.01.22-0
./configure
make && make install

在编译PHP时就可以加上:

./configure –with-pspell=/usr

参考:http://www.zahei.com/2010/10/206