<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[FreeBSD出 众之处：网络和内存管理]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Wed, 07 Apr 2010 05:26:17 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	出 众之处：<br/><br/>网络：<br/>FreeBSD 的网络性能非常好，可以同时处理海量的网络请求，这使 BSD 非常适合作为防火墙的环境。另外，在网络聊天服务器，如 IM 这种应用上，FreeBSD 也是很合适的选择。网易的 POPO 聊天软件服务器端就是在 FreeBSD 下开发并投入到实际环境中使用的，通过对内核的修改，可以轻松支持数以万计的用户连接，要注意，是永久性的连接，除非用户点击注销按钮。<br/><br/>内 存：<br/>你 会发现你服务器上的内存会被 FreeBSD 很好地利用，以使你的服务达至最佳的状态。FreeBSD 不会因为将过多的内存用于磁盘 CACHE 而使更重要的程序获取不到物理内存而让系统使用 Swap。在实际的环境中，我就遇到过 LINUX 为保持磁盘的 CACHE，而让新任务使用 SWAP，导致新任务执行时间大大拉长。在执行 swapoff -a 操作后，运行同样的新任务只需要原来时间的一半。而系统并没有因为关闭 SWAP 而停机，表示物理内存并没有因为新任务而被耗尽。<br/><br/>一 个例子：<br/><br/>Memcached 是一个非常出众的基于内存的缓存服务器。它可以为被其支持的程序语言提供串行化数据保存的功能，这样可以让同一份数据被多台服务器共享，而更重要的是，它 的速度非常快。<br/><br/>我 可以利用 PHP 或 JAVA 从数据库中获取数据结果集，然后将结果集的内容保存进 Memcached，其他服务器上的程序同样可以相应的 key 从 Memcached 中获得相同的拷贝。在分布式的环境，这种需求非常明显。我自己也尝试当 SESSION 数据保存至 Memcached 而无需为共享 SESSION 数据而专门架设一台 MYSQL 数据库。<br/><br/>在利用 Memcached 作为数据的中心点，网络的流量会非常大，内存的使用会非常频繁，基本上不与磁盘打交道，而且整个系统的稳健性要求非常高。在这种应用需求下，FreeBSD 自然地成为首选。因为它为高效的网络性能，更合理的内存利用率，和稳健的系统基础。<br/><br/><br/><br/><br/><br/><br/><br/><br/>不足之处：<br/><br/>文件系统：<br/>FreeBSD 的文件系统属于中上水平，但未达至企业级的应用需求。主要体现于文件系统本身存在的脆弱性。在高负载的情况下，文件系统存在有崩溃的可能性。需要注意的是，导致这样的结果，也有可能由于磁盘控制器（SCSI, RAID 等等）驱动程序本身导致的。没有原厂设备驱动程序是个比较大的问题。<br/><br/>网 络：<br/>FreeBSD 的网络性能是无用置疑的！但是网卡驱动（是的，设备驱动是个很重要的因素）不完善会导致性能和稳定性大打节扣。虽然这与 FreeBSD 的核心没有关系，但对于一个可提供服务的整体来说，驱动程序却是一个很重要的组成部份。<br/><br/>另外，由于一个网卡接口上的线的 松动，有可能导致网络中断。而一些商业化的 UNIX 操作系统可以在当主网卡不可用时将该网卡上的 IP 转移至可提供正确连接的网卡上。<br/><br/>多 处理器（超线程）支持：<br/>在 6.0 出版之前，FreeBSD 对多处理器支持是不尽人意的。INTEL CPU 提供有 HT（超线程）功能。FreeBSD 在 HT 开启的状态下会比在关闭的状态下差。我忘记了超线程的原理，只记得拥有超线程功能的 CPU 在过多的切换情况下性能就会降低，不过在什么时候切换和切换些什么我忘记了。FreeBSD 在开启 HT 后性能会变差，可能与这个有关。<br/><br/><br/>bsd呀bsd<br/><br/>FreeBSD 文件系统，也会让人联想到它的 BSD UNIX 过去：它受 Fast File System (FFS) 和 UNIX File System (UFS) 名称的支配。用户更多时候像是在与文件系统的 FFS 部分进行交互，后者控制着文件和目录的访问。2003 年发布的 UFS 系统的第 2 版设置了文件系统限制和组织原始磁盘访问的基本数据结构。UFS 和 FFS 在 NetBSD 和 OpenBSD 上也可以使用。当前 Linux 上更著名的日志文件系统在 FreeBSD 上是不可用的，这些系统中包括 Reiser File System (Reiser FS) 和 Journaling File System (JFS)，这主要是出于安全方面的考虑。UFS 具有稳定性和可伸缩性等其他优点，因为其行为和性能依赖于长达二十多年的研究。<br/><br/><br/>Linux与FreeBSD的对比<br/><br/>我就说我用的两个例子：<br/>1、数据库应用，MYSQL，海量数据，一个库至少30G（还是压缩以后），一个表400M条记录左右，但是负载不大，而且现有硬件是有关2个 CPU的PII Xeon+512M内存。很显然，用linux，对SMP支持好，对thread支持好，文件系统的IO一流，而且如果使用xfs，也不用担心掉电或者系统崩溃对文件系统的影响。而且这种东西的流量也不会大，应用写死了，不会传整个表给客户端。<br/>2、WEB SERVER，负载重，流量大，php+apache+mysql，用Freebsd。我还把mysql放到另外一台机器上，用linux，同时优化程序，防止由于Web server的负载传递到linux上，也顶不主了。<br/><br/><br/>主要还是对硬件支持问题，FreeBSD对硬件的支持太有限了。同时应用也跟不上。<br/>不能简单说FreeBSD做Server好，Linux做Desktop好。说实在的FreeBSD只适合做部分比较纯粹的Internet server. <br/><br/><br/><br/><br/><br/>从网络方面，如IPv6,IPX等常用协议的支持，稳定性、吞吐量（效率）、防火墙（如NAT等技术），是不是FreeBSD更具优势？<br/><br/>作为WebServer,缺少Java支持的FreeBSD是不是处于劣势？<br/><br/><br/><br/>我觉得这位兄弟说得很有道理。<br/><br/>从安全性考虑，FreeBSD比Linux更好一些，系统漏洞明显比Linux少，而且有一个好处是FreeBSD最小安装后只有一百多M，再装上你的应用服务，比如DNS，Apache，MySQL，等等，也就不超过200M，真是感觉很干净，很清爽。软件少，出现漏洞的几率也就很小了。 Linux的发行版，安装后总是很庞大，时间久了，难免会有一堆本地溢出漏洞，你总得打补丁。所以，做服务器应用，我会优先考虑FreeBSD。<br/><br/>不过Linux的SMP性能比较好，如果跑多处理器还是应该用Linux。 <br/><br/><br/>IPX，说是在的有人在FreeBSD上跑这个吗？我从来没有，IPV6当然不错，不过现在是在还不能大规模应用。<br/>Java等等，已经有jdk 1.3的版本，不过据说不大稳定，使用的是IBM的JDK。很快会有SUN的，可惜JAVA的多线程不知道在FREEBSD下表现如何。<br/><br/><br/><br/>我觉得ports还是很方便好用的<br/>package倒是一般<br/>好像linux下也没有类似ports这种机制吧～<br/><br/>自由软件的坚定拥护者 <br/><br/>我觉得wolfop应用比较合理。Linux得到了比较大的数据库厂商的支持，如ORACLE,SYBASE等，所以跑数据库，用linux可以选择的软件比较多，性能也不错。如果是其他的入Apache、DNS,Mail等，用FreeBSD,稳定性好，网络性能优秀。而且这种配置也与现在流行的3层架构思想符合。<br/><br/>经历这么多年以后,可以让我信任的除了父母、兄弟外，就是电脑、金钱！ <br/><br/><br/><br/>体的东西我也不太懂<br/>但是我也曾经用过一小段linux<br/>直观上<br/>freebsd即使在桌面应用上<br/>也要比linux快很多。<br/>我现在用的一台pII 333 160M内存<br/>4200转的笔记本硬盘<br/>我在updatadb，同时使用mozilla浏览网页<br/>用xmms放着fat32分区上的mp3<br/>自始至终mp3没有间断过<br/>linux能不能达到我不清楚<br/>反正windows系统是肯定不用指望了<br/><br/><br/>的确，FreeBSD 在重负荷下工作的很好，但是，你有没有发现 FreeBSD 进入桌面环境比 Linux 要慢，Mozilla 响应也要比 Linux 下慢？还有用 xmms 听 MP3 的 CPU 占用率比 Linux 高出 5 倍以上…<br/><br/><br/>网络处理部分，Linux的处理性能要比FreeBSD高，但FreeBSD的相对比较稳定，尤其在负荷较高的情况下。<br/>Linux的网络处理部分在Kernel 2.4做过大的修改，采用了一些比较先进的设计思想，例如slab等，而FreeBSD则延续原来的核心，4.5好像在TCP处理上做过一些小的修改，其中的nbuf没有sk_buff好。<br/>我以前做过一个发包的程序，在Linux下的发包速度大约要比FreeBSD快1倍，但有时没有发送出去，而在FreeBSD则可以出错后重试。<br/><br/>Linux的文档、资源要比FreeBSD多，学习起来要比FreeBSD快。对Linux内核的定制和修改要比FreeBSD容易。<br/><br/>企业应用freebsd实在是没办法，我觉得有数据库的时候用linux比较好，或者前台用freebsd,需要用的数据库放在另一台linux上，这是比较理想的状态。<br/>freebsd的ports非常好，用起来非常方便，很容易就能升级系统。想比之下linux只有rpm机制，系统升级只能手工去做。<br/>安全性上freebsd也胜出linux好多，不过linux只要经过精心调配，安全性也不差。<br/>文件系统的I/O当然是linux强于freebsd，但是freebsd牺牲一点速度而得到了更高的稳定性，这又有何不可呢？<br/>目录结构来看freebsd比rh更清晰，更合理。<br/>freebsd更专注于做自己的事，走自己的路<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>FreeBSD，实实在在的选择<br/><br/><br/><br/><br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] FreeBSD出 众之处：网络和内存管理]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>