分享FreeBSD 8.0的十四条优化策略

【51CTO独家特稿】笔者目前是一位外企linux/unix系统工程师与项目实施工程师,而FreeBSD一直作为我们企业内部的开发服务器,具有稳定和高效的特点。本文根据笔者经验总结了十四条FreeBSD的优化策略。如无其它,以下所指FreeBSD均指FreeBSD 8.0_release。

一、提高ports安装速度

FreeBSD中的ports安装工具默认工具是用fetch,下载时经常出现龟速现象。为了提高ports安装速度,我推荐axel工具。相关make.conf文件配置步骤如下:

  1. cd /usr/ports/ftp/axel
  2. make install Continue reading

基于LVS的Linux负载均衡技术实现

最近在网络上看到不少人热衷于Linux集群的部署和配置。但是配置的思路和具体的步骤实在不敢恭维。
为了解决一些新手在这方面存在的问题,特将本人原创的几个文档贡献出来。希望高手指正,也希望给新手一些帮助。

在调度器的实现技术中,IP负载均衡技术效率最高。在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation),大多数商品化的IP负载均衡调度器产品都是使用此方法,如Cisco的LocalDirector、F5的Big/IP和Alteon的ACEDirector。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出通过IP隧道实现虚拟服务器的方法VS/TUN(Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。所以,IPVS软件实现了这三种IP负载均衡技术,它们的大致原理如下:

Virtual Server via Network Address Translation(VS/NAT)
通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端真实服务器;真实服务器的响应报文通过调度器时,报文源地址被重写再返回给客户,完成整个负载调度过程。 Continue reading

LVS集群系统网络核心原理分析

Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来讲,CPU、I/O处理能力很快会成为瓶颈。由于单台服务器的性能总是有限的,简单的提高硬件性能并不能真正解 决这个问题。为此,必须采用多服务器和负载均衡技术才能满足大量并发访问的需要。Linux 虚拟服务器(Linux Virtual Servers,LVS) 使用负载均衡技术将多台服务器组成一个虚拟服务器。它为适应快速增长的网络访问需求提供了一个负载能力易于扩展,而价格低廉的解决方案。

1、LVS结构与工作原理

LVS由前端的负载均衡器(Load Balancer,LB)和后端的真实服务器(Real Server,RS)群组成。RS间可通过局域网或广域网连接。LVS的这种结构对用户是透明的,用户只能看见一台作为LB的虚拟服务器(Virtual Server),而看不到提供服务的RS群。

当用户的请求发往虚拟服务器,LB根据设定的包转发策略和负载均衡调度算法将用户请求转发给RS。RS再将用户请求结果返回给用户。同请求包一样,应答包的返回方式也与包转发策略有关。 Continue reading

MySQL性能优化的最佳20+条经验

今天,数据库的操作越来越成 为整个应用的性能瓶颈了,这点对于 Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事 情。当我们去设计数据库表结构,对 操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的 性能。这里,我们不会 讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。
1. 为查询缓存优化你的查询
大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时 候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。 Continue reading

图解LAMP开发的乱码问题

作为LAMP的开发人员,估计或多或少都遇到过MySQL的 乱码问题。就算是老鸟,有时候也会被它给郁闷。这篇文章,将从底层机制解释乱码出现的原因,并给出解决方案。(如果你只想知道,怎么解决问题,只用看完前 两端就可以了)。

解决方案:

  1. 确定出现乱码的列(数据表中的字段)的 编码,记为X
  2. 在你每次连接数据库的时候使用:”SET NAMES `X`”
  3. 确保你的写入页面和显示页面(通常是php script )有相同的编码。

比较典型的情况是:

数据库中列字段的编码是`latin1`(或者是utf8、GBK),那么在你连接数据库的地方加上”SET NAMES `latin1`” (或者是utf8、GBK)。然后保证你的写入页面add.php, list.php编 码一致(比如都是GB2312、utf8)。 Continue reading

MySQL 备份(推荐方法)

一般来说,你有两种可供选择的备份MySQL的方式—-mysqldump 或者mysqlhotcopy。

mysqldump可以备份各种类型的数据表,但是mysqlhotcopy只适合备份MyISAM和ISAM的数据表。所以使用mysqlhotcopy之前,你必须确认你的数据表是不 是有其他的存储引擎(storage engines)的。

How To:

  1. mysqldump -u root -p*** DBNAME | gzip -f>/backup/dbname.’date +%w’.dump.gz
  2. mysqlhotcopy DBNAME -u root -p *** /backup

两者速度:因为 mysqlhotcopy会直接拷贝存储数据的文件,所以其速度是依赖于磁盘操作的速度,较之mysqldump要快些。下面是两种方式备份同一个数据的 时候的时间消耗比较:

  1. mysqldump  耗时22分39秒(gzip 压缩后文件大小为747M.)
  2. mysqlhotcopy  耗时6分07秒(tar gzip打包压缩后文件大小为1014M.) Continue reading

What’s the Right Thing to Do

一次偶然看到这个视频课程的第一集,被里面的话题、辩论深深的吸引。后来得知视频共有十二集,当时虽在网上找到了全部视频,但只有第一集是有中文字幕的,所以一直没看完。过不久,shooter上终于出了英文字幕,再过一周Youku上有达人发布了前五集的中文字幕的版本。这才完整的看完前五集。期待后续中文字幕版本能够慢慢出来。另外,全12集的英文版在Youtube上很容找到

视频是哈佛大学的一门哲学课程:《Justice (Harvard University)》。据说这是“每一届的哈佛本科新生选的最多的公共课”。

课程从几个案例出发,案例都需要你做一些很“残酷”的决定并思考、辩论为什么认为这样做是正确的。课程并没有最终告诉你,什么是正义,也无法决定怎样做是正义的,它给出的是我们应该怎样思考这些问题,每一种思考逻辑背后可能有哪些合理处或漏洞。课程介绍了历史上很多著名的哲学家的观点和一些历史上的真实案例,最后逐步引申出了很多现代社会基本行为(自由、税收、基本权利、法律等)背后的逻辑和最基本的出发点。

每看完一集,思维就像打开了一扇门

精彩程度:fivestar

深刻程度:fivestar

以下是第一集:(前五集中字版 全十二集

Continue reading

关于MySql explain 中的ID

root@test 10:56:20>explain SELECT T0.*
->   FROM
-> PRODUCT_0000 T0,
-> PRODUCT_0003 T3
->  WHERE T0.ID = T3.id
->    AND T0.AUC_ID =5120001280;
+----+-------------+-------+--------+-------------------------+-----------------+---------+--------------------+------+-------------+
| id | select_type | table | type   | possible_keys           | key             | key_len | ref                | rows | Extra       |
+----+-------------+-------+--------+-------------------------+-----------------+---------+--------------------+------+-------------+
|  1 | SIMPLE      | T0    | ref    | PRIMARY,idx_aa_0000_aid | idx_aa_0000_aid | 9       | const              |    1 | Using where |
|  1 | SIMPLE      | T3    | eq_ref | PRIMARY                 | PRIMARY         | 8       | test.T0.id |    1 | Using index |
+----+-------------+-------+--------+-------------------------+-----------------+---------+--------------------+------+-------------+
2 rows in set (0.00 sec) Continue reading

ubuntu 10.04 键盘无法识别

使用的是Vmware 7.0.0, 安装Ubuntu10.04镜像却无法识别键盘。在登录画面时,不能输入密码,插外接键盘也不行。 在Ubuntu10.04下键盘的NUMLOCK指示灯不亮 切换到windows下后就亮了, 虚拟机的另一个系统的键盘也可以正常使用。请问有什么解决方法?

解决办法:

1、在登录界面中调出Universal Access Preferences面板,勾选第一个选项“Use on-screen keyboard”,此时会弹出一个软键盘,将面板关闭,直接用软键盘输入密码即可。

2、通过屏幕键盘输入密码登入系统,这时键盘就可以使用了。

3、编辑配置文件/etc /default/console-setup

把最后四行改为:

XKBMODEL="SKIP"

XKBLAYOUT="us"

XKBVARIANT="U.S. English"

XKBOPTIONS=""

修改为:

XKBMODEL="pc105"

XKBLAYOUT="us"

XKBVARIANT=""

XKBOPTIONS=""

4、重新启动,在图形登录界面中就能使用键盘了。