2014年8月

Mesosphere,一家试图围绕鲜为人知的 Apache Mesos 项目开展商业活动的公司,刚刚从 Andreessen Horowitz 那里获得了 1000 万美元投资。以下是为什么这个项目能够吸引如此巨款的原因。

事实上 Mesos 这款自动扩放软件已经出现了五年了。据 Mesosphere 的CEO及联合创始人 Florian Leibert 所述,Mesos 已经在 Twitter 内已经管理了超过 50,000 个以上的CPU。此外, EBay, AirBnB, Netflix 还有 HubSpot 也是这款软件的使用者。

当那些互联网巨头发现 Mesos 的时候,这项技术却并不为大多数企业所知。但它确实可以满足一些公司在他们内部的数据中心上应用公共云的一些技术的需求。

Mesos 管理集群机器,根据需要自动扩放应用。它在每台机器上只依赖很少的软件,它由一个主调度程序协调。据 Leibert 所说,其CPU 占用为 0 并且几乎不消耗任何内存。在其工作的每台机器上的该软件会向调度程序报告关于虚拟机或者服务器的容量信息,接着调度程序向目标机器分派任务。

“如果一项任务终断并且没有返回任何结果,主调度程序知道如何重新调度它和它所用的资源在哪里。” Mesosphere 的资深副总裁 Matt Trifiro 说。

Mesos 能自动扩放一系列的任务,包括 Hadoop 数据库,Ruby on Rails 节点,以及 Cassandra 。

使用 Mesos 使得 Hubspot 削减了一半的 AWS(Amazon Web Services) 的费用支出,Liebert 说道。这是因为 Mesos 能够在目标机器之间有效地分配作业量的原因。

然而,Mesos 更有可能应用到那些试图真正地在内部创建一个类 AWS 环境的企业,一位来自 451 Research 的分析员 Jay Lyman 说。AWS 提供一些自动扩放工具,但大多数公司对于在公共云基础设施上运行所有东西还是感到不安。与此同时,他们并不想着反对他们的开发者采用 AWS 那样的公共云中可用的优异性能。他们希望他们的私有云能集成这些可用的优点。

“如你所见,类似 AWS 风格的界面风格,与监控、命令、操控以及稳定性相融合,” Liebert 继续说道。

Mesos 既可以在一个私有云上也可以在 AWS 上运行,向企业提供最有效率地使用其内部云的方法,并在需要扩放时自动切换到 AWS 去。

但是,从另外的方面说 Mesos 也是有一些缺点的。它并不能运行任何 Windows 操作系统或者比较古老的应用比如说 SAP 软件。

不过,Lyman 说,“假如一个团队拥有长时期使用云的经历,他们大概早就对 Linux 操作系统情有独钟了。”

在将来,Mesosphere 能够支持 Windows 操作系统是很有可能的。最初,像 Puppet 和 Chef 这样的技术也只支持 Linux 操作系统,Lyman 表示。“这只是早期 Mesosphere 的特性。现在它还是不太成熟,” 他又说道。

Mesosphere 正瞄向大部分使用现代编程技术构建了越来越多的运行于 Linux 的应用的企业,以及 Twitter 和 Netflix 这种在初创时还没有 Mesos 类似技术的第一代 Web 2.0 公司。“这是早期两类最常见的客户概况,” Trifiro 说。

年终之前,Mesosphere 希望发布包含文档的商业产品,通过技术支持与颁发许可证来获得营收。Mesosphere 已开发一款名为 Marathon 的大规模扩放编制工具,并且支持 Docker 集成。它现在免费提供打包好的 Mesos 发行版,希望以此占有未来的市场。

Mesosphere 同时也正在为少数早期的顾客工作。它帮助 HubSpot 实施有关 Mesos 的搭建。

Mesosphere 在这个领域并不唯一。Rightscale,Scalr 以及现在归 Dell 所有的 Enstratius,全都提供了一些各种版本的扩放或云管理技术。Mesosphere 强调说,Mesos 及其公司自己开发的技术在单独机器中创建服务器集群方面的表现远胜于市场上的其他同类软件。来自 Andreessen 的新投资一定会帮助 Meos 获得更大的动力。


via: http://thenewstack.io/little-known-apache-mesos-project-helps-mesosphere-raise-10m-from-andreessen/

译者:SteveArcher 校对: wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存。现代Linux内核部署了该缓存分配器以持有缓存,称之为片。不同类型的片缓存由片分配器维护。本文集中讨论slabtop命令,该命令显示了实时内核片缓存信息。

1. 命令用法:

该命令用起来很简单,默认执行时不要求任何参数。但是它要求root特权来读取内核片信息。以普通用户执行该命令会出现以下错误:

Run slabtop as non-privileged user

你可以在前面设置“sudo”来运行该命令,默认输出见下图:

Slabtop default output

要退出slabtop,只需敲‘q’,就像在top命令中那样。

2. Slabtop选项:

2.1 显示间隔:

默认情况下,slabtop每隔3秒刷新一次。但是,如果你想要调整,可以使用-d或者--delay=N选项来调整刷新间隔,以秒为单位:

Custom delay interval 01

Custom delay interval 02

2.2 排序标准:

在slabtop输出中有很多字段,-s或--sort=S选项可以根据指定的排序标准对这些字段排序。该选项将在下一节中详细讲述。

2.3 输出一次:

-o或--once选项不会刷新输出,它仅仅将一次输出结果丢给STDOUT,然后退出。

Output once and exit

2.4 版本信息:

-V或--version选项显示命令的版本并退出。

Slabtop version

2.5 帮助:

常见选项,-h或--help显示命令的使用帮助。

Slabtop help options

3. 排序标准:

排序标准确定了哪个片缓存显示在顶部,下面是slabtop的排序标准:

3.1 活跃:

缓存可以通过‘a’来对活跃对象编号进行排序。

Sort by Active 01

Sort by Active 02

3.2 对象/分片:

每分片对象数可以使用“b”来选择。

Sort by objects per slab 01

Sort by objects per slab 02

3.3 缓存大小:

要选择缓存大小,你需要提供“c”选项。

Sort by cache size 01

Sort by cache size 02

3.4 分片:

分片数量,使用“l”来选择。

Sort by number of slabs 01

Sort by number of slabs 02

3.5 活跃分片:

活跃分片数量。(注意:这不同于上面讲得活跃对象数量。)使用“v”来根据该标准排序。

Sort by Active Slabs 01

Sort by Active Slabs 02

3.6 名称:

缓存名称。相关字符是“n”。

Sort by cache name 01

Sort by cache name 02

3.7 对象:

要根据对象数量排序,使用“o”。

Sort by number of objects 01

Sort by number of objects 02

3.8 每分片页面数:

“p”将根据每分片页面数排序。

Sort by pages per slab 01

Sort by pages per slab 02

3.9 对象大小:

对象大小排序由“s”来指定。

Sort by object size 01

Sort by object size 02

3.10 使用:

“u”选项根据缓存使用量排序。

Sort by cache utilization 01

Sort by cache utilization 02


via: http://linoxide.com/linux-command/kernel-slab-cache-information/

译者:GOLinux 校对:校对者ID

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Linux 内核补丁测试

你试过自己写内核补丁吗?本节介绍在把你的补丁包提交到 Linux 邮箱列表之前,需要做哪些操作。另外我们还会介绍如何把它发送出去。

写好代码后,编译它。把 make 过程产生的输出保存到文档中,查看新代码有没有警告信息。找到所有的警告信息,处理掉。当你的代码编译过程没有任何不正常的输出,安装这个内核,然后启动测试。如果启动正常,查看 dmesg 里面有没于错误,与老内核生成的 dmesg 日志做个比较。运行一些压力测试,请参考我们以前讲过的测试内容。如果这个补丁用于修复某个 bug,请确保真的已经修复了。如果真的修复了,请确保能通过系统测试。找出打你补丁的模块下面的回归测试工具,运行一下。如果补丁涉及到其他架构,你需要交叉编译然后测试一下。请通过下面的目录查找测试工具:

如果你对你的补丁测试结果感到很满意,你就可以提交补丁了。请确保提交 commit 的信息要描述得非常清楚。要让内核维护者和其他开发者看懂补丁所修改的内容,这一点非常重要。生成补丁后,执行 scripts/checkpatch.pl 脚本,找到 checkpatch 是产生的错误或警告(如果有的话),修复它们。重新生成补丁,直到补丁通过这个脚本的测试。重新测试这个补丁。将本补丁用于其他的内核源码上,保证不会有冲突产生。

现在你做好提交补丁的准备了。先运行 scriptst/get\_maintainer.pl 来确认你应该把补丁发给哪个内核维护者。注意不要以附件形式发送补丁,而是以纯文本形式粘贴在邮件里面。确保你的邮件客户端可以发送纯文本信息,你可以试试给自己发送一份补丁邮件来测试你的邮件客户端的功能。收到自己的邮件后,运行 checkpatch 命令并给自己的内核源码打上你的补丁。如果这两部都能通过,你就可以给 Linux 邮箱列表发送补丁了。使用 git send-email 命令是提交补丁最安全的方式,可以避免你的邮箱的兼容性问题。你的 .gitconfig 文件里面需要配置好有效的 smtp 服务器,详细操作参考 git 的帮助文档。

更多提交补丁的规矩,请参考下面的资料:

  • linux\_git/Documentation/applying-patches.txt
  • linux\_git/Documentation/SubmitChecklist
  • linux\_git/Documentation/SubmittingDrivers
  • linux\_git/Documentation/SubmittingPatches
  • linuxgit/Documentation/stablekernel\_rules.txt
  • linuxgit/Documentation/stableapi\_nonsense.txt

下面是一些内核测试教程的资料:

内核测试套件和项目

除我们讨论过的测试资源之外,这里还有很多测试项目值得介绍,包括开源的和厂家自己提供的。这些项目每一个都是针对特定领域的,比如嵌入式或者企业自己使用。我们简单过一下。

Linux 测试项目(LTP)测试套件是一系列工具的集合,用于测试内核的可靠性、健壮性和稳定性。你可以为这个项目添加自己的测试代码,并且 LTP 项目欢迎你贡献自己的代码。runltp 脚本默认情况下会测试下面的子系统:

  • 文件系统压力测试
  • 磁盘 IO 测试
  • 内存管理压力测试
  • IPC(进程间通信)测试
  • 调度器测试
  • 命令的功能性验证测试
  • 系统调用功能验证测试

LTP-DDT 是一个基于 LTP 的测试应用(LCTT:就是 LTP 的阉割版么),专注于测试嵌入式设备驱动。

Linux Driver Verification 这个项目的目标是提高 Linux 设备驱动的质量,它为设备驱动验证开发了集成环境平台,并且利用与时俱进的研究来增强验证工具的质量。

一致性测试

如果你有将某个 Unix 平台下的应用一直到另一个平台的经验,你就能理解 Linux Standard Base (LSB) 和 LSB 一致性测试套件的重要性了。LSB 是 Linux Foundation 工作组创建的用于降低支持不同 Linux 平台所需要的开销,方法就是通过降低不同 Linux 发行版之间的差别,保证应用在不同发行版之间的可移植性。前事不忘后事之师,Unix 世界的分歧在 Linux 世界一定要避免。这就是为什么你可以把一个 rpm 包转化成 deb 包后还能安装并正常运行的秘密。

静态分析工具

静态分析之所以会被称为“静态分析”,是因为这些工具只分析代码,并不执行它们。分析 Linux 内核代码的静态分析工具有很多,Sparse 是 Linus Torvalds 写的专门用于检查内核静态类型的工具。它是一个语义检查器,会为 C 语言的语义建立语义检析树,执行惰性类型评估。内核编译系统支持 sparse,并且为编译内核的命令提供开启 sparse 的选项。

为内核所有需要重新编译的 C 文件执行 sparse 语义检查:

make C=1 allmodconfig

为内核所有 C 文件(即使不需要重新编译)执行 sparse 语义检查:

make C=2 allmodconfig

Sparse 的资源:

Smatch 分析程序代码的逻辑错误。它可以检测到诸如“为一个没锁上的 spinlock 执行解锁”的逻辑错误。内核源码支持 smatch:

在 Linux 内核中运行 smatch:

make CHECK="~/path/to/smatch/smatch -p=kernel" C=1 bzImage modules | tee warns.txt

请参考下面的资料来获取和编译 smatch。需要注意的是 smatch 是个正在发展的项目,架构会不断变化。

那么我们该怎么处理 Sparse 和 Smatch 所发现的语义和逻辑上的错误呢?一些错误可以被分离为日常问题或模块问题,可以轻易被解决。但是有些语义错误涉及到全局,因为剪切粘贴了一些代码。在一些环境中,当一些接口函数被废弃不再使用,或者仅仅做了写微小的修改,你就需要大规模更新源码。这时候你需要 Coccinelle 来帮忙。,Coccinelle 使用 SmPL 语言(语义包语言)来为 C 代码提供匹配和转换代码的功能。Coccinelle 的从一开始就作为 Linux 的附属产品持续发展的。

举个例子:foo(int) 函数突然变成 foo(int, char *) 函数,多出了一个输入参数(可以把第二个参数置为 null)。所有调用 foo() 函数的代码都需要更新了,这可能是个悲摧的体力活。但是使用 Coccinelle 的话,这项工作瞬间变得轻松,脚本会帮你找到调用 foo(parameter1) 的代码,然后替换成 foo(parameter1, NULL)。做完这些后,所有调用这个函数的代码都可以运行一遍,验证下第二个参数为 NULL 是否能正常工作。关于 Coccinelle 的更多信息,以及在不同项目中(当然,也包括 Linux 内核这个项目)的使用方法,请参考项目主页:Cocinelle

参考文献

本文涵盖了很多方面,这里列出一些参考文档供读者做进一步研究。

鸣谢

感谢来自 Oracle 的 Khalid Aziz,审查校对并提供许多非常有价值的建议。感谢来自三星的 Mauro Chehab 和 Guy Martin,他们给了我多次反馈。感谢来自 Linux Foundation 的 Grey Kroah-Hartman 对本文的审阅。感谢来自三星的 Ibrahim Haddad,没有他的支持和鼓励,我可能还不会坐下来写出这篇文章。


作者:Shuah Khan

Shuah Khan 是三星公司开源组的高级 Linux 内核开发工程师。 她为 Linux 内核中的 IOMMU、DMA、电源管理、PCIe 贡献代码,同时维护内核,为内核提供补丁包。Shuah 有多年 Unix 内核开发经验。她也为 OpenHPI 和 LLDP 项目作贡献。


via: http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,5

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

如果你在推特上关注了我们,你可能看见了我们最近分享的一张截图,和这张截图一起的还有对它所展示的桌面进行命名的邀请。

你猜对了吗? 答案就是Budgie —— 一种为基于openSUSE 的linux发行版Evolve OS所设计、但不仅仅只能用于 Evolve OS的简易桌面环境。

我们第一次提到Budgie是在三月份,当时我们被它的整洁、小巧的美感、灵活的架构,还有再次使用在当今大多数发行版中所使用的GNOME 3.10 成熟技术中的公共部分和标堆栈的决定所折服。

我对此项目的领导者Ikey Doherty所作出的开发选择非常佩服。无可否认另起炉灶有它的优点,但决定从上游的项目获取帮助将可以整个项目进展得更快,无论是在发展方面(更轻的技术负担)还是在用户可使用方面(更容易在其它发行版上运行)。

除了政治因素选择以外,这款桌面干净、小巧,向谷歌Chrome OS的Ash桌面致敬。如果你不介意有些许粗糙的边缘,那它值得你玩玩。那么怎样在Ubuntu安装Budgie呢?

非官方的PPA是不正式的

开源意味着如果你有一点终端使用知识的话,你就可以在获得Budgie桌面的源代码后进行编译,然后运行。

但如果你很懒,想不费周折就在Ubuntu 14.04 LTS(或者一个基于它的发行版)运行Budgie,那么你可以通过比较容易的途径来实现。

只要添加一个非官方的PPA,刷新你的软件源然后进行安装。几分钟后在这个家庭中你将有一位名叫Bob的新叔叔,并且有一个新的桌面可以玩耍。

添加Budgie PPA

将以下命令复制进一个打开的终端窗口,在提示过后输入你的密码(如果需要的话):

sudo add-apt-repository ppa:sukso96100/budgie-desktop
sudo apt-get update && sudo apt-get install budgie-desktop

登入Budgie会话

安装完成后你就可以在Unity欢迎界面的会话选择器中选择“Budgie”了。(别忘了以后要把选择项改回到稳定的桌面环境)

注意

budgie是不稳定、不完善的,并且它在Ubuntu上也没有被正式支持。它正在积极开发中,功能还仍然有些缺失,包括但不仅限于:不支持网络管理,没有音量控制小程序(键盘按键工作良好),没有通知系统,无法将应用程序“固定”在任务栏。

它对UBUNTU的叠加滚动条、一些GTK主题的支持也不是很好,而且在使用upstart的发行版(例如ubuntu,即使它正在改变之中)中会话管理器(例如,注销,重启等等)将无法工作。

一个应变方法是:禁用叠加滚动条,设置一个默认主题,通过在终端中使用以下命名来退出会话:

gnome-session-quit

脑海中有了上述这些警告后,我得建议那些自己的理智倾向于使用稳定、可靠的系统的人现在暂时不要使用它。

而剩下那些狂热的业余爱好者们呢?好吧,请在下面留言告诉我们你觉得它如何。我给Bob让路。


via: http://www.omgubuntu.co.uk/2014/07/install-budgie-evolve-os-desktop-ubuntu-14-04

译者:Love-xuan 校对:reinoir

本文由 LCTT 原创翻译,Linux中国 荣誉推出

第一本Zabbix中文图书,企业级开源监控系统必选!

即日起关注@LINUX中国 @博文视点Broadview 对本书进行评论,说说你喜爱它的理由,或者说说在众多开源监控系统中Zabbix具有什么优势?即有机会获得《Zabbix企业级分布式监控系统》图书1本(共5本)

活动内容

活动时间:2014年8月27日-2014年9月10日

活动要求:

活动形式一 :在新浪微博关注@LINUX中国 @博文视点Broadview 转发本微博并添加有效评论。
活动形式二:在Linux中国(http://linux.cn)对本书进行如下任意话题讨论。

  1. 监控系统在企业中具有什么作用?
  2. 监控系统如何去设计?
  3. Zabbix监控系统有哪些功能?
  4. 在众多开源监控系统中,Zabbix具有什么优势?
  5. 在Zabbix使用过程中,有哪些经验可以分享给大家?

活动奖品:《Zabbix企业级分布式监控系统》图书一本(共5本)

特此注意:

1、本站论坛评论方式参与的用户,评论前需登录您的Linux中国账号,匿名评论无效

2、微博用户参与活动,活动结束后注意查看@LINUX中国 官方微博公布的中奖名单或留意您的微博私信,本站用户参与活动,注意查看您注册Linux中国时所填写的邮箱。我们会通过微博私信以及电子邮件两种方式获取您的邮寄信息。

基本信息

作者:吴兆松@itnihao

出版社:电子工业出版社

出版时间:2014-08-01

页数:356

版次:1

媒体推荐

运维离不开监控就像鱼离不开水,一款功能强大的监控系统可以有力地保证业务的性能和稳定性。近几年各种监控系统层出不穷,Zabbix作为监控系统的新兴贵族迅速崛起,不过中文资料还比较少,itnihao作为Zabbix监控系统国内领先的使用者,厚积薄发撰写了此书,大家可以通过这本书详细地了解Zabbix的各个方面,熟悉它、了解它、使用它,并最后爱上它。

——窦喆(@南非蜘蛛),中国最大开源社区ChinaUnix创始人之一

本书理论与实践相结合,包含Zabbix的各项技术细节,由浅入深,无论是新手还是老用户,看完本书,一定能给你带来技术和思路的拓展,正如作者所言,本书学的不止是技术,而是解决问题的思路。

——邝玲,高级系统运维工程师

内容简介

本书从入门到高级应用,从Zabbix基本应用到安装包定制、协议、API,全面剖析、应有尽有。包含大量监控案例,详解触发器、告警等Zabbix监控中令人头疼的问题,学到的不止是技术,还有思路和方法。

《Zabbix企业级分布式监控系统》适合想了解、学习和规划构建监控系统的人员阅读,可以作为学习Zabbix 的工具书,也适合有一定基础,想更深入学习Zabbix 的读者,通过大量的案例,让读者真正理解Zabbix。

作者简介

吴兆松,运维开发工程师,具有丰富的一线运维实战经验,曾做过CDN运维、游戏运维、云计算运维,对Linux系统、云计算、监控系统有较深入的研究,熟悉运维自动化工具的使用和二次定制开发,乐于折腾开源软件,偶尔写写博客、技术文档,其始终坚信,技术的积累只是时间问题,而解决问题的思路和思想高于具体的技术细节。

样章地址:http://wenku.it168.com/d_001521656.shtml

购买链接:http://www.dwz.cn/r1Mkq

更多博文图书,请点击:http://www.dwz.cn/r1MzG

磁盘驱动器速度

磁盘驱动器的速度是以一个单位时间内读写数据量的多少来衡量的。DD 命令是一个简单的命令行工具,它可用对磁盘进行任意数据块的读取和写入,同时可以度量读取写入的速度。

在这篇文章中,我们将会使用 DD 命令来测试 USB 和 SSD 磁盘的读取和写入速度。

数据传输速度不但取决于驱动盘本身,而且还与连接的接口有关。比如, USB 2.0 端口的最大传输速度是 35 兆字节/秒,所以如果您把一个支持高速传输的 USB 3.0 驱动盘插入 USB 2.0 端口的话,它实际的传输速度将是 2.0 端口的下限。

这对于 SSD 也是一样的。 SSD 连接的 SATA 端口有不同的类型。平均是 375 兆字节/秒的 SATA 2.0 端口理论上最大传输速度是 3 Gbit/秒,而 SATA 3.0 是这个速度的两倍。

测试方法

挂载上驱动盘,从终端进入此盘目录下。然后使用 DD 命令,首先写入固定大小块的一个文件,接着读取这个文件。

DD 命令通用语法格式如下:

dd if=path/to/input_file of=/path/to/output_file bs=block_size count=number_of_blocks

当写入到驱动盘的时候,我们简单的从无穷无用字节的源 /dev/zero 读取,当从驱动盘读取的时候,我们读取的是刚才的文件,并把输出结果发送到无用的 /dev/null。在整个操作过程中, DD 命令会跟踪数据传输的速度并且报告出结果。

固态硬盘

我们使用的是一块“三星 Evo 120G” 的固态硬盘。它性价比很高,很适合刚开始用固态硬盘的用户,也是我的第一块固态硬盘,并且也是市场上效果最好的固态硬盘之一。

这次实验中,我们把硬盘接在 SATA 2.0 端口上。

写入速度

首先让我们写入固态硬盘

$ dd if=/dev/zero of=./largefile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.82364 s, 223 MB/s

的大小实际上是相当大的。你可以尝试用更小的尺寸如 64K 甚至是 4K 的。

读取速度

现在读回这个文件。但是,得首先清除内存的缓存,以确保这个文件确实是从驱动盘读取的。

运行下面的命令来清除内存缓存

$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

现在读取此文件

$ dd if=./largefile of=/dev/null bs=4k
165118+0 records in
165118+0 records out
676323328 bytes (676 MB) copied, 3.0114 s, 225 MB/s

在 Arch Linux 的维基页上有一整页的关于不同的厂商,如英特尔、三星、Sandisk 等提供的各类固态硬盘 读/写速度的信息。点击如下的 url 可以查看相关信息。

https://wiki.archlinux.org/index.php/SSD\_Benchmarking

USB

此次实验我们会测量普通的 USB/随身笔的读写速度。驱动盘都是接入标准的 USB 2.0 端口的。首先用的是一个 4GB 大小的 sony USB 驱动盘,随后用的是一个 16GB 大小的 strontium 驱动盘。

首先把驱动盘插入端口,并挂载上,使其可读。然后从命令行下面进入挂载的文件目录下。

Sony 4GB - 写入

这个实验中,用 DD 命令向驱动盘写入一个有 10000 块,每块 8K 字节的文件。

# dd if=/dev/zero of=./largefile bs=8k count=10000
10000+0 records in
10000+0 records out
81920000 bytes (82 MB) copied, 11.0626 s, 7.4 MB/s

因此,写入速度约为7.5兆字节/秒。这是一个很低的数字。

Sony 4GB - 读取

把相同的文件读取回来,测试速度。首先运行如下命令清除内存缓存。

$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

现在就可以使用 DD 命令来读取文件了。

# dd if=./largefile of=/dev/null bs=8k
8000+0 records in
8000+0 records out
65536000 bytes (66 MB) copied, 2.65218 s, 24.7 MB/s

读取速度出来大约是25兆字节/秒,这大致跟廉价 USB 驱动盘的标准相匹配吧。

USB2.0 理论上最大信号传输速率为480兆比特/秒,最小为60兆字节/秒。然而,由于各种限制实际传输速率大约280兆比特/秒和35兆字节/秒之间。除了这个,实际的速度还取决于驱动盘本身的质量好坏以及其他的因素。

上面实验中, USB 驱动盘插入USB 2.0 端口,读取的速度达到了 24.7兆字节/秒,这是很不错的读速度。但写入速度就不敢恭维了。

下面让我们用 16GB 的 Strontium 驱动盘来做相同的实验。虽然 Strontium 的 USB 驱动盘很稳定,但它也是一款很便宜的品牌。

Strontium 16gb 盘写入速度

# dd if=/dev/zero of=./largefile bs=64k count=1000
1000+0 records in
1000+0 records out
65536000 bytes (66 MB) copied, 8.3834 s, 7.8 MB/s

Strontium 16gb 盘读取速度

# sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

# dd if=./largefile of=/dev/null bs=8k
8000+0 records in
8000+0 records out
65536000 bytes (66 MB) copied, 2.90366 s, 22.6 MB/s

它的读取速度就要比 Sony 的低了。

参考资料


关于 Silver Moon

Php 开发者, 博主 和 Linux 爱好者. 通过 [email protected] 或者 Google+ 可联系到他。