阿瓜: linux小组的讨论http://www.aggua.com/group/36/posts/feed/阿瓜: linux小组的最新讨论话题zh-cnLinux发布版本选择 - 春http://www.aggua.com/group/post/461/回答一些问题,程序会推荐合适的发布版本给用户 http://www.zegeniestudios.net/ldc/index.php?firsttime=true致命的linux命令 - 小亨http://www.aggua.com/group/post/445/http://linuxtoy.org/archives/the-7-deadly-linux-commands.htmldebian下apt-get update 出错 - 春http://www.aggua.com/group/post/441/sources.list deb cdrom:[Debian GNU/Linux 4.0 r4a _Etch_ - Official i386 NETINST Binary-1 20080804-15:10]/ etch contrib main deb http://debian.cn99.com/debian/ etch main deb-src http://debian.cn99.com/debian/ etch main deb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib apt-get update Ign cdrom://[Debian GNU/Linux 4.0 r4a _Etch_ - Official i386 NETINST Binary-1 20080804-15:10] etch Release.gpg Ign cdrom://[Debian GNU/Linux 4.0 r4a _Etch_ - Official i386 NETINST Binary-1 20080804-15:10] etch Release Ign cdrom://[Debian GNU/Linux 4.0 r4a _Etch_ - Official i386 NETINST Binary-1 20080804-15:10] etch/contrib Packages/DiffIndex Ign cdrom://[Debian GNU/Linux 4.0 r4a _Etch_ - Official i386 NETINST Binary-1 20080804-15:10] etch/main Packages/DiffIndex Get:1 http://security.debian.org etch/updates Release.gpg [189B] Get:2 http://security.debian.org etch/updates Release [37.6kB] Ign http://security.debian.org etch/updates/main Packages/DiffIndex Ign http://security.debian.org etch/updates/contrib Packages/DiffIndex Ign http://security.debian.org etch/updates/main Sources/DiffIndex Ign http://security.debian.org etch/updates/contrib Sources/DiffIndex Get:3 http://security.debian.org etch/updates/main Packages [374kB] Hit http://security.debian.org etch/updates/contrib Packages Get:4 http://security.debian.org etch/updates/main Sources [56.5kB] Hit http://security.debian.org etch/updates/contrib Sources Err http://debian.cn99.com etch Release.gpg Could not connect to debian.cn99.com:80 (222.185.245.42), connection timed out Fetched 469kB in 2m0s (3901B/s) Failed to fetch http://debian.cn99.com/debian/dists/etch/Release.gpg Could not connect to debian.cn99.com:80 (222.185.245.42), connection timed out Reading package lists... Done E: Some index files failed to download, they have been ignored, or old ones used instead. 是不是debian.cn99.com 有问题?apt-cache - 小亨http://www.aggua.com/group/post/381/ubuntu的兄弟们,好好用apt-cache search吧。学习了fstab - 小亨http://www.aggua.com/group/post/359/就是记录自动mount信息的。 参考资料 http://forum.ubuntu.org.cn/about58468.html原来ubuntu就支持xfs - 小亨http://www.aggua.com/group/post/358/需要安装xfsprogs,来进行格式化。Linux I/O scheduler - 小亨http://www.aggua.com/group/post/352/CFQ [cfq] (Completely Fair Queuing) is an I/O scheduler for the Linux kernel and default under many Linux distributions. Noop scheduler (noop) is the simplest I/O scheduler for the Linux kernel based upon FIFO queue concept. Anticipatory scheduler (anticipatory) is an algorithm for scheduling hard disk input/output as well as old scheduler which is replaced by CFQ Deadline scheduler (deadline) - it attempt to guarantee a start service time for a request. # cat /sys/block/{DEVICE-NAME}/queue/scheduler # cat /sys/block/fd0/queue/scheduler To set a specific scheduler, simply type the command as follows: # echo {SCHEDULER-NAME} > /sys/block/{DEVICE-NAME}/queue/scheduler For example, set noop scheduler, enter: # echo noop > /sys/block/hda/queue/scheduler通过ssh执行远程服务器的程序 - 小亨http://www.aggua.com/group/post/324/ssh xxx@ip "your command"linux下kill的信号量列表 - 小亨http://www.aggua.com/group/post/311/kill -s SIGSTOP PID i.e. kill -s SIGSTOP PID (暂停进程) kill -s SIGCONT PID (恢复运行进程) #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 #define SIGILL 4 #define SIGTRAP 5 #define SIGABRT 6 #define SIGIOT 6 #define SIGBUS 7 #define SIGFPE 8 #define SIGKILL 9 #define SIGUSR1 10 #define SIGSEGV 11 #define SIGUSR2 12 #define SIGPIPE 13 #define SIGALRM 14 #define SIGTERM 15 #define SIGSTKFLT 16 #define SIGCHLD 17 #define SIGCONT 18 #define SIGSTOP 19 #define SIGTSTP 20 #define SIGTTIN 21 #define SIGTTOU 22 #define SIGURG 23 #define SIGXCPU 24 #define SIGXFSZ 25 #define SIGVTALRM 26 #define SIGPROF 27 #define SIGWINCH 28 #define SIGIO 29 #define SIGPOLL SIGIO用过w3m吗 - 小亨http://www.aggua.com/group/post/307/w3m is a World Wide Web (WWW) text based client. 挺好玩的。 sudo apt-get install w3m冯大辉fenng谈数据库架构 - 小亨http://www.aggua.com/group/post/305/[转载] http://www.infoq.com/cn/interviews/fengdahui-database-architecture InfoQ中文站的读者们,大家好,今天我们有幸请到冯大辉先生参加我们的这个采访,大辉你好,请跟大家介绍一下你是谁,在做些什么? 大家好,我叫冯大辉,是支付宝网络中国科技有限公司的DBA。现在主要是负责支付宝相关的数据库架构的工作,在工作之余,我也比较关注Web2.0的一些发展情况,会在BLOG上写一些架构相关的文章,和大家分享,BLOG的地址是DBAnotes.net 作为一名资深的DBA,大辉却在自己的BLOG上边写了不少关于网站架构这方面的一些文章,能不能谈谈DBA跟网站架构这方面的关系呢? 好多朋友和我开玩笑,说我做一个DBA,却总去写一些架构相关的东西,“是不是这个厨子不看菜谱,看兵法了?”其实二者之间我觉得是有些关系的。因为像数据库的维护,甚至于设计、架构相关的工作,做到一定程度上觉得自己还是要向前再走几步,也就是说一定要把我们架构相关的一些事情融合进来,但是作为一个 DBA没必要一定要像我们的相关架构师这样,去做一些编码之类的实际工作。但是一些和DB结合的比较紧密的东西是一定要关注一下的,这也是我在BLOG上写了不少与架构相关文章的一个主要原因。 一般来说要提升网站的性能,瓶颈主要都有那些,如果要解决这些瓶颈,又都存在哪些最佳实践呢? 在以前,可能很大的一个瓶颈,我觉得还是在数据库上,最后会落在实际的IO上面。但是现在随着一些Web2.0技术的出现,当前我觉得一个网站真正能否应付大流量、高并发,主要的问题还在于Cache的相关使用上,这点十分重要。 一个要经受住大规模、高并发、访问量考验的成功Web2.0网站在设计的架构中要注意哪些东西呢? 这个我想在前期的规划中肯定是需要做一些预防性的措施,比如说选择适合的技术架构啊,这个绝对是在第一步应该必须要考虑的事情。另外还有一些像包括在产品设计上也会有很多需要注意的地方,现在我们的很多Web2.0网站,包括国内的这些新兴的一些Web2.0网站,在产品设计上,我认为多多少少存在一些过度设计的现象。但这些设计不经意之间可能会对后台带来灾难性的影响,那么这对开发人员、架构师,甚至维护人员都带来很大的压力。 另一方面呢,我想参考当前业界上一些已经相对比较成熟的技术,还是很关键的。我们做一个网站就好比造汽车一样,不一定非要造得像奔驰这样顶级豪华的,我们只需造一辆能跑起来,跑得很好的汽车,这可能就已经达到成功的一半了。 那刚才在网站性能和调优这方面,你刚才也提到了,缓存的作用是非常重要的,那么他到底处于怎么样一个重要的地位呢?如何对缓存进行优化从而提升性能? 就我以前的相关经验,在Oracle的一些实践上,一方面是在高并发的设计上会有一些注意的事项。另外一个就是能否充分利用Oracle自己的内存,最后实质上看其是能否充分利用自己的Cache机制。在Web2.0网站,可能很少有使用Oracle这样的场景。但在MySQL上,一方面MySQL自己的 Cache机制应该说还做得不错,再一个就是,绝大多数网站都会考虑使用,像Memcached 这样的外部组件进来,然后在这个地方,其实我们最后考量的是命中率,衡量命中率的高低,这是大家必须要注意的地方。 命中丢失实际上最后压到我们的数据库上,数据库的命中再丢失有可能会压到最下面的磁盘上。磁盘一定要能支撑住我们当前的最低需求,举个最简单的例子,我们的应为:memcached,可能前面的命中率是80%,那么有20%会压到后面的DB上,这个DB的命中率有可能达到95%,剩下的5%,加上前面那个 20%,最后我们把所有的乘起来,这个比例会打到最后端的硬盘上,我们硬盘的整体响应能力又是有限的…我们可以去做RAID,甚至可以出现单块硬盘这样的情况。那么硬盘承载能力是有限的,我们把它反上去乘,一点点的乘,乘到前面去,就能计算出我们当前的系统能承载Cache的瓶颈。在设计的时候,一定要考虑到这样的情况,否则当压力确实突然增加到我们不能承受的时候,临时做一些扩展的手段,可能就会比较麻烦。 你刚才说到Cache命中率,那对于一个比较成功的这种网站,它Cache命中率一般会在多少呢? 拿Oracle来说,我觉得它本身的命中率做到90%多,甚至是99.99这样的情况,在MySQL的环境下可能做不到这样, Memcached一般,据我所知,可能70%、80%已经不错了,但是命中率只是一个表面的现象,我们还要看实际真正的外部应用到底是怎样,有的可能不同的Web应用类型,他所能承载的访问频率也不大一样,所以并没有固定的比例,只能是凭一些经验,但总体来说肯定是命中率越高,会越好一些。 在Web2.0的时代,海量数据对于越来越多的开发者来说,已经不再是一个遥不可及的话题了,可能随便哪一个访问量很大的Web2.0网站都有可能拥有令人咂舌的数据量,那么对于这种网站,除了对数据库存储进行优化,除了缓存,然后还有那些策略? 我觉得可能主要是在存储方面会有一些大的挑战,比如存储的可靠性。像以前我们就曾经遇到过这样的BSP服务商,对客户的数据居然没有备份,导致了很多用户损失了一段时间之内的数据,这样总体来说对网站的声誉、对用户的资源都是很糟糕的。 随着我们现在互联网的飞速发展,数据总体来说是趋于膨胀性的,在这个过程中,我们如何把数据有效的存储,并且有效的获取,便是个比较复杂的问题,像一方面我们前面说了太多Web2.0相关的话题。还有一个是像,比如说我所在的公司支付宝,当然我们也面临着这样的大数据量、海量数据的挑战,当前我们的一个策略,也是沿袭公司这SOA战略化思想,就是数据库相关的,对后台的相关数据进行一定的SOA化处理,然后另外一个比较重要的策略就是数据生命周期的管理,我们对这样的,在数据生命已经达到这样的周期之后,就相关的数据做一些归档化的处理,进行二级存储或者分级存储。那么话说回来,对一些Web2.0网站,我觉得也可以运用这样的思想机制,对用户已经不大可能访问或者访问频率比较小的(数据),采用分级存储,或者说额外做一些访问策略的制订,应该也是有必要的。 我们也听说过另外一种分片数据库机制,那么请你谈谈分片这种策略是怎么样一种策略? 分片总的来说,它不是一种比较新的技术,我们现在像MySQL在 5 点几之后,有了分区功能。其实在这之前,MySQL是没有分区能力的。当时如果需要处理一些比较大的数据量。比方说要对数据随着时间进行历史化处理,那么就会比较麻烦,人们可能是因地制宜,就产生Sharding这样技术策略。严格来说,数据分片呢,其实在我们以前也有一些相关的实践,在其他的数据库上,我们也会有一些历史策略,只是当时这个名词没有完全定义下来。据我所知,这个词是从大型专线游戏中发展出来的,大部分用户会集中在某个区域。那么这一部分集中在某个区域的用户,会把他们放在特定的服务器上。不同区域之间的用户之间的关联度可能不大,这个场景和我们现在的数据库分片策略其实是非常非常相似的,我们当前如果对数据库做一些分片,也会采用这样的基本思想,比如说根据不同的用户ID范围,或者说不同的地区,如果建的是商务网站,可能根据产品的类型,我们会把不同的数据扔到不同的DB上,这些不同DB之间的关联度是很小的。然后我们在不同DB之间,可能相对来说会有一个分装层,在这个封装层之外,对这个应用程序用户来说,就像是透明的,那么就达到了我们数据库上高度扩展化的目标。谢谢。 那分片这种策略有什么利弊吗? 分片首先他的好处还是很容易看到的,起码我们的DB能达到不依赖于某个单点,而这样能做到平滑的扩展,就像大家常说的Scale Out横向扩展机制。它的弊端也是比较明显,对于事务高速处理这样的网站,它有它的自己的缺点,事实上我们好多朋友也应该知道,一个事务如果跨数据库,这样对设计者,对编码人员来说,还是比较棘手。那么如果一个事务如果跨两个甚至多个DB,Sharding复杂度就会很高。Sharding在业界的应用场景基本上也就是这种读应用比较重的情况,而且对事务的安全性要求不高,这样的场景会非常适合。 目前在许多网站的架构设计中有绝大多数的项目在持久化方面就是采用数据关系映射(ORM)的方式。大家对于这种高负载的大规模网站应用来说,你觉得存在哪些应用呢? 首先一点呢,我想拿我们支付宝来说,ORM是大家觉得用得非常好的,但在一个相对比较大的开发环境,对开发团队来说,它的弊端可能就不大容易看出来。因为我们用得是ORM,就很容易把中间DB这层完全隔离出来。然后把这一层的处理交给专门的DB职员——我们这边还有专门的开发DBA,由他们来专门对这层进行集中的监控管理,甚至做一些规划类的工作。这样呢,开发工程师还有架构师这边,实际上他们可以集中精力在其他方面做更多的投入,一个比较大的团队我觉得像ORM这些还是很容易能看到好处的。 在另一方面,我们看一下它的弊端,因为像一些Web,回头我们说一些,Web中小网站,他可能相对人手也比较少,大家 用得工具呢,可能像PHP、 ROR这些东西,也是在开发上,上手又比较容易的。那么这个时候,事实上一个潜在的问题是,当代码规模到一定程度,如果没有去做一些OR映射,那么可能会给网站带来一些潜在的比如说代码管理上的问题,这一点只是我的个人看法,实际上大家在具体的应用场景可能会有各自头疼的问题,我在这方面不是专家,也仅供大家参考。 那你所做的支付宝,其实是企业级别的应用,在企业级别应用所采用的这种架构策略和,一般Web 2.0所采用的这种架构策略会有什么异同? 事实上一个从很明显的一个特点说,支付宝其实业务是非常复杂的,这和我们很多的Web2.0公司不大一样,Web2.0它可能从一个点切入进去。在这一点上,我觉得做得比较透。支付宝呢,它可能有点像我们以前做的一些通用软件,他要考虑不同的行业、不同的用户、还有像买卖之间,与这么多银行之间的关系等等,这个复杂度还是很大的。 这实际上就从一定程度上决定了我们和Web2.0公司截然不同的应用解决方案,像当前我们在支付宝,在一年之前,甚至两年之前就已经考虑,把我们的整个网站SOA化、组件化。在这个过程中,也考虑了一些像Web2.0中的技术元素,但总体的思路呢,还是说向SOA化,向面向服务这方面大步的跨进,然后就从 SOA这一点,事实上很多Web2.0公司,他们未必能完全的实现,完全的做到这样的面向服务化,我觉得这可能是两者截然不同的一个表面特点。 另外,像支付宝也在尝试做一些,对外部客户、服务提供一些接口,甚至完全开放的一个平台,这一点又和我们当前这些像FaceBook,或者是说,像美国的MySpace这样的社交区、SNS网络了有一些共通之处。 那目前在Web2.0网站这个领域里面,网站的架构主要有哪些趋势,下边还将有怎么样一个走向呢? 其实作为一个技术人员,每当要谈到趋势,肯定要给大家笑。从中长期来看,国内的一些Web2.0服务逐渐又涌现出来了,那么随着这样的业务发展,我相信会有更多的商业化元素加进来。像以前是好多Web2.0公司是完全使用开源的技术,那么随着规模的兴起,一些以前提供开源技术的组织或个人他们会尝试进行一些商业化的运作,商业化并不是个坏事情,一方面给我们提供更好的服务。另一方面,他们得到了足够的商业支持,反过来之后他们又会对整体的开源开发环境、发展环境起到很好的促进,我相信在未来的两到三年之内,会有一部分的商业公司涌到Web2.0的发展生态圈里面。然后从技术方面来讲,像前面几个月 MySQL被Sun收购了。那么起码是在Web.2.0这样的软件链条中的一个重要环节,有些人可能会感觉,出了一些问题。但现在像在数据库这一层呢,也不排除像PostgresSQL这些其他的数据库,他们趁这个机会被商业公司所拥抱,他们也会做出一些更大规模的应用场景出来。在数据库这方面可能会限制大家,几家开源数据库形成一个僵局,Sun在……这个有些扯远了,还是绕回来。像现在很多的Web2.0公司,他们对Web服务器这方面也会采用一些比较新的,像Nginx我觉得在,起码在接下来的一段时间内会吸引绝大多数公司长期的去使用它、去拥抱它,甚至为它开发一些更激动人心的新特性。 那最后作为一个由DBA成长为DB Architect(应为:Architect),同样都是A,但这个A已经有一个变化,那么你对后来者有哪些建议呢? 建议谈不上,跟大家谈谈自己在这个过程中的一些转变。首先从DBA,因为DBA做一些实际相关的维护工作,从这个过程转到架构师这边,是相对从这比较 “实”的岗位到,转到现在看起来相对好像稍稍“虚”了一些,但是在这个虚的过程中,又相当于我们且退一步,然后就能看得更远一些,能看到整个软件架构的网站发展,甚至是公司战略上的一些事情,这对个人成长是有好处的,我希望大家如果有这个意愿也可以稍微尝试一下,因为DBA只是我们整个软件开发行业中的一个环节,那么在这个环节前面和后面,其实都有很多可以做的事情,其实每个人都不是不可替代的,那我们是否可以尝试一下是否能够去替代别人呢?谢谢大家。 有没有人能在Linux下把djangoproject上的doc全部下载下来,做个chm或者pdf? - jt.rockyhttp://www.aggua.com/group/post/303/这样做的好处自然不言而喻,在本地看doc比网上看,快多了,而且就是断网也不担心。 那位大侠幸苦一下,算是为民造路铺桥:>明天有人去下载firefox3吗 - 小亨http://www.aggua.com/group/post/298/是要破吉尼斯记录。wine真是一个伟大的项目 - 小亨http://www.aggua.com/group/post/279/我安装wine是为了可以运行IE。 最近想怀旧霸王的大陆,遍寻都找不到合适的ROM。 后来发现了exe版本,试着用wine运行,居然可以。 真是爽的不行了。 Ubuntu 8.04 存在导致DoS攻击的漏洞 - 小亨http://www.aggua.com/group/post/276/正准备装呢...唉 "Ubuntu在昨天的安全通知中警告,在Ubuntu 8.04 LTS 的 Linux kernel 中发现了一个安全漏洞,衍生版 Kubuntu 8.04、Edubuntu 8.04 以及 Xubuntu 8.04 也都会受到此漏洞的影响。这个内核的漏洞可能被攻击者利用造成系统崩溃,从而导致DoS (Denial of Service:拒绝服务)。大家喜欢Linus还是RMS - 小亨http://www.aggua.com/group/post/275/我喜欢Linus,实战派。 RMS太小家子气了,而且不做实事儿了。Linux之父十大名言 - 小亨http://www.aggua.com/group/post/274/感谢www.linuxeden.com的投递 Linux之父Linus Torvalds的十大名言,您听说过几句? 1. “Software is like sex: it's better when it's free.” 软件就像性,免费的比花钱的好得多. 2. “Microsoft isn't evil, they just make really crappy operating systems.” 微软并不是魔鬼,只是它的操作系统实在太蹩脚了 3. “My name is Linus, and I am your God.” 我是Linus,我是神. Hia Hia Hia 4. “See, you not only have to be a good coder to create a system like Linux, you have to be a sneaky bastard too.” 要想能够创造Linux这样得操作系统不只是需要良好得程序员,还得需要一批心理阴暗的混蛋 5. “The Linux philosophy is 'Laugh in the face of danger'. Oops. Wrong One. 'Do it yourself'. Yes, that's it.” Linux的哲学就是“在危险面前放声大笑”,呵呵,不是这句,应该是“一切靠自己,自力更生”才对。 6. “Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen a angry penguin charging at them in excess of 100 mph.” 很多朋友和我说那只耪企鹅不配代表Linux操作系统,因为他们从来没见过一只愤怒的企鹅以100迈的速度向他们发起攻击 7. “Intelligence is the ability to avoid doing work, yet getting the work done.” 天赋就是事半功倍 8. “When you say, ‘I wrote a program that crashed Windows,’ people just stare at you blankly and say, ‘Hey, I got those with the system, for free.’” 你骄傲的和别人说,嘿,我写了个能让Windows崩溃的程序,他们会说“哥们,我装Windows系统的时候就免费带着了” 9. “I don't doubt at all that virtualization is useful in some areas. What I doubt rather strongly is that it will ever have the kind of impact that the people involved in virtualization want it to have.” 我对虚拟化的技术使用没有任何怀疑,我怀疑的是他们对人的影响。 10. “Now, most of you are probably going to be totally bored out of your minds on Christmas day, and here's the perfect distraction. Test 2.6.15-rc7. All the stores will be closed, and there's really nothing better to do in between meals.” 大家在圣诞期间可能会非常无聊,现在有好办法了,试试内核2.6.15-rc7版吧,茶余饭后的好消遣哦linux下firefox的java还不能直接用 - 小亨http://www.aggua.com/group/post/270/需要ln到plugins下 http://www.ubuntu.org.tw/modules/newbb/viewtopic.php?post_id=36960 Linux原来也支持win键 - 小亨http://www.aggua.com/group/post/267/Ubuntu(GNOME) 系统 - 首选项 - 键盘快捷键 中设置你喜欢的 win键 操作即可。 我设了一个win+d 显示桌面,呵呵。文件的切分与合并 - 小亨http://www.aggua.com/group/post/256/文件切分 split -d -b 50m abc.avi abc.avi.part abc.avi将被切为50m的文件,分别为abc.avi.part00, abc.avi.part01,。。。 文件合并 cat abc.avi.part* > avc.avi