linux中国_ 发布的文章

DigitalOcean是云VPS主机市场中最炙手可热的新生儿。虽然没有提供像Amazon之类一样的综合服务业务,但DigitalOcean定位于中小型企业和开发者,已经成为基于Linux的最佳云VPS服务的强有力竞争者,这都得归功于它们具有竞争力的价格和用户友好的管理界面。

不管什么时候,当你需要一个面向网络的服务器用于你的个人项目,你都可以全速开动一个“水滴”(DigitalOcean中VPS实例的昵称),也可以在你不需要时杀掉它,没必要为了让你的VPS保持运作而烧光了你的钱袋。尽管DigitalOcean基于网络的管理界面已经十分高效,但对于那些命令行界面的死忠派,它还是提供了基于命令行界面的水滴管理工具,它叫tugboat。多亏了这个命令行工具,所有复杂的水滴管理任务都可以简单地转变成一个脚本来完成。

在本文中,我打算讲述怎样使用tugboat来从命令行对DigitalOcean水滴进行管理

在Linux上安装tugboat

在Debian,Ubuntu或者Linux Mint上安装tugboat:

$ sudo apt-get install ruby-dev
$ sudo gem install tugboat 

在Fedora上安装tugboat:

$ sudo yum install ruby-devel
$ sudo gem install tugboat 

要在CentOS上安装tugboat,首先安装或升级到最新的Ruby,因为在CentOS 6.5以及更早的版本上,默认的Ruby不满足Tugboat所需的最小版本(1.9及更高版本)。安装Ruby 1.9及更高版本后,请按如下方式安装tugboat。

$ sudo gem install tugboat 

tugboat首次使用配置

在安装完后,就该进行一次配置,其中包括授权tugboat访问DigitalOcean帐号。

转到https://cloud.digitalocean.com/api_access,并创建新的API密钥,记录客户ID和API密钥。

通过运行以下命令来启动授权过程:

$ tugboat authorize 

在提示你输入客户ID和API密钥时,请输入。它会询问几个其它问题,目前你可以接受默认的回答。我们将会在后面自定义默认设置。

现在,让我们自定义默认水滴设置,以反映你典型的使用状况。要做到这一点,首先检查水滴提供的可用设置项(如,可用的镜像、区域、大小)。

运行以下命令,它会列出可用的水滴镜像。选取使用一个默认镜像,并记录相关的ID。

$ tugboat images --global 

类似,从可用区域中选取一个默认的地理位置:

$ tugboat regions

同时,从可用的RAM大小中选择一个默认的水滴大小:

$ tugboat sizes 

现在,把你的默认选择放到~/.tugboat中。例如,我在这里自定义了默认设置:区域在纽约,系统是Ubuntu 14.04,内存512MB。如果你想要通过密钥验证启用SSH,设置“ssh\_user”为root,这个我很快会讲到。

$ vi ~/.tugboat 

---
authentication:
  client_key: XXXXXXXXXXXXXXXXXXX
  api_key: XXXXXXXXXXXXXXXXXXXX
ssh:
  ssh_user: root
  ssh_key_path: /home/dev/.ssh/id_rsa
  ssh_port: '22'
defaults:
  region: '4'
  image: '3240036'
  size: '66'
  ssh_key: ''
  private_networking: 'false'
  backups_enabled: 'false'

创建并添加SSH密钥到DigitalOcean

要访问水滴实例,一个安全的方式是通过密钥验证的SSH连接到该实例。

事实上,你可以通过使用DigitalOcean来注册SSH公钥,为你的水滴实现自动启用密钥验证。下面告诉你怎么做。

首先,生成一个公/私密钥对(如果你还没有)。

$ ssh-keygen -t rsa -C "[email protected]"

假设生成的密钥对由~/.ssh/id\_rsa(私钥)和~/.ssh/id\_rsa.pub(公钥)构成,去将你的公钥上传吧,命令如下:

$ tugboat add-key [name-of-your-key] 

你可以任意给你的密钥命名(如,“my-default-key”)。当出现提示时,输入公钥路径(如,/home/user/.ssh/id\_rsa.pub)。在密钥上传完成后,运行以下命令来验证密钥是否正确添加:

$ tugboat keys 

密钥也应该出现在DigitalOcean的SSH密钥页。如果你想要密钥自动使用到水滴中,添加密钥ID到~/.tugboat中。

ssh_key: '182710'

Tugboat的基本用法

这里列出了tugboat命令行的一些基本使用情况。

  1. 使用默认设置创建新水滴。
$ tugboat create
  1. 列出所有活动水滴。
$ tugboat droplets
  1. 显示水滴的信息。
$ tugboat info

  1. 关闭水滴,并移除镜像。
$ tugboat destroy
  1. 关闭水滴,但保持镜像
$ tugboat halt
  1. 为水滴创建快照,水滴必须先关闭。
$ tugboat snapshot
  1. 调整水滴大小(增加或减少RAM大小),水滴必须先关闭。
$ tugboat resize -s

如果你想要了解特定命令的更多选项,运行:

$ tugboat help <command> 

排障

  1. 当我运行tugboat命令时,它出现以下错误。
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': /usr/lib/ruby/gems/1.8/gems/tugboat-0.2.0/lib/tugboat/cli.rb:12: syntax error, unexpected ':', expecting kEND (SyntaxError)

Tugboat要求Ruby 1.9及更高版本,你需要升级Ruby来解决该问题。对于CentOS,请参考此教程

  1. 当我试着用gem来安装Tugboat时,出现了下面的错误。
/usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- json/pure (LoadError)

安装以下gem来修复该问题。

$ sudo gem install json_pure 

via: http://xmodulo.com/2014/07/manage-digitalocean-vps-droplets-command-line-linux.html

原文作者:Dan Nanni

译者:GOLinux 校对:Caroline

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

问题:我安装了一个程序到/usr/local/bin目录下,这个程序需要root权限才能执行,当我用sudo去执行它时,收到"sudo: XXXXX: command not found"的错误提示,不知道为什么/usr/local/bin没有被包含到PATH环境变量下面来,我该如何解决这个问题?

当你使用sudo去执行一个程序时,处于安全的考虑,这个程序将在一个新的、最小化的环境中执行,也就是说,诸如PATH这样的环境变量,在sudo命令下已经被重置成默认状态了。所以当一个刚初始化的PATH变量中不包含你所要运行的程序所在的目录,用sudo去执行,你就会得到"command not found"的错误提示。

要想改变PATH在sudo会话中的初始值,用文本编辑器打开/etc/sudoers文件,找到"secure\_path"一行,当你执行sudo 命令时,"secure\_path"中包含的路径将被当做默认PATH变量使用。

添加所需要的路径(如 /usr/local/bin)到"secure\_path"下,在开篇所遇见的问题就将迎刃而解。

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

这个修改会即刻生效。


via: http://ask.xmodulo.com/define-path-environment-variable-sudo-commands.html

译者:nd0104 校对:Caroline

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

美国作家 Kurt Vonnegut(当代幽默讽刺大师冯内果)过去总是将他的演讲题目定为“如何得到一份跟我一样的工作(How to Get a Job Like Mine)”,然后在演讲的时候讲任何他想讲的东西。我的状况跟他相反,我被告知可以讲任何自己想谈的。于是我决定,与其谈论网际网络的未来或是集体协作(mass collaboration),我最感兴趣的恐怕还是“如何得到一份像我这样的工作”。

 title=

所以该怎么做呢?毫无疑问,第一步当然是选对基因:我是出生在美国的白人男性,家境不错,父亲在电脑产业工作。然而不幸的是,我也不知道怎样才选得到这种好康,所以讲这个大概没什么用。

但是另一方面,刚开始的时候我只是被困在美国中部一个小镇的孩子,所以我的确摸索出一些让我逃离这里的撇步。我想我可以将这些方法与各位分享,希望多少能够减少一些生命中的不公平。

第一步:学习(Learn)

我做的第一件事,你们可能都听说过了,就是学习电脑、网际网络以及网络文化。我读了一大堆书、看了大量的网络文章,并且作了一些尝试。首先我加入了一些电子邮件通讯列表(mailing list,一种特定群组内部互相发送群组电子邮件的名单),试着去理解大家在讲什么,直到我自认 OK 了才加入大家的讨论之中。

我逛网站,也打算作一个自己的网站。最终我学会了如何打造一个 web 应用程序(web app)并且着手进行。当时我 13 岁。

第二步:尝试(Try)

我做的第一个网站是 get.info。这个点子是希望有一个免费的线上百科全书,让所有人都可以在网站上新增、编辑、组织内容。我全部自己来,还加入许多很酷的功能,也差不多在所有浏览器上测试过,我感到非自豪。这个网站当时也的确得过奖,成为年度最佳创新 web 应用程序之一。很不幸的,那时候我认识的人都只是学校里的孩子,所以其实没什么人可以写出很多篇百科条目。(幸好几年之后,我妈妈告诉我有个新网站叫“维基百科”,做的事跟我的网站一样。)

第二个我做的网站叫“my.info”。这个点子主要想解决的问题是,与其从网络上不同的地方获取新闻,何不有个程序自动从网页上将所有的新闻集中到一个地方呢?后来我完成了,网站也顺利运作,但我并不是唯一想到这个点子的人,那时有许多人正在着手开发一个新技术“syndication(联合供稿)”。有一组人从中分离出来,打算为它建立一个叫“RSS 1.0”的技术标准,我加入了他们。

第三步:抓紧机会(Grab)

从学校毕业的那个夏天我还没有工作,所以有很多时间可以自由运用。我把所有的时间花在阅读 RSS 1.0 电子邮件群组的内容,做尽了所有奇怪的工作或是任何他们需要帮忙的事。很快地,他们就问我想不想成为他们的一员,最终我成了 RSS 1.0 技术规格的共同制定人。

RSS 1.0 是建立在一种叫“RDF(Resource Description Framework,资源描述框架)”的技术上,经常引发大家激烈的讨论。所以我也开始研究 RDF,加入了他们的电子邮件群组,研读相关资料、问一些蠢问题,渐渐地我开始搞懂它了,于是很快我在这个 RDF 的圈子有点名气。当他们宣布打算成立新的工作群组制定新的 RDF 规格,我决定偷偷跟上。

一开始我先问那个群组的成员我能不能加入,他们拒绝了。由于我真的很想加入那个群组,所以我想出别的办法。我读了 W3C(World Wide Web Consortium,全球资讯网协会,负责制定 web 标准,不过其标准仅是“推荐”而非强制)的规则,W3C 就是负责运作那个工作群组的组织。他们的规则说,工作群组可以拒绝让别人加入,但是如果有 W3C 的成员组织推荐,那么就不得拒绝。所以我开始找 W3C 的会员组织名单,找了一个看起来最友善的,问他们可不可以推荐我加入那个工作群组,他们同意了。

成为工作群组的成员表示每週要参加电话会议、大量的电子邮件或是透过 IRC(Internet Relay Chat)讨论,偶尔要飞去奇怪的城市和别人碰面、有许多人要认识。

我是 RDF 的信徒,所以很认真地想让别人采用它。当我看到哈佛的 Lawrence Lessig 教授正在建立一个叫“Creative Commons(创用 CC)”新组织时,我寄了一封信给他,说他们的计划应该采用 RDF,并解释给他听。几天之后他回覆说:“好主意,你可以帮我们做这件事吗?”

所以我后来就加入了 Creative Commons,也因此到各地参加研讨会或聚会,也认识了更多人。大家开始认识我之后,我也开始在各地、各个领域中有了朋友。

第四步:创建(Build)

后来我放下这些去史丹佛读了一年大学,那是加州一间有如田园诗般的小学校,阳光永远是那么闪耀、草地永远是那么地绿、学生总是往外跑。那里有一些很棒的教授,我也的确学到很多,但我感受不到知性的气氛,因为大多数的学生似乎一点也不在乎学习和研究。

但是在接近年底的时候,我收到一封署名“Paul Graham”的信,他说自己正要开始一项“Y Combinator”计划。背后的概念是找一群聪明无比的程序设计师,将他们聚在一起、给他们一些钱、完成一切文书作业后成立新公司。这群人在打造新公司/服务的同时,也很用心地学习Y Combinator 教的一些必要知识,例如商学、如何找投资人或买主等等。Paul 建议我提出申请加入Y Combinator。

于是我照做,也入选了。在长时间辛劳地工作后,我发现自己正在做一个叫“Reddit.com”的小网站。其实我们根本不知道自己在干嘛,我们没有任何商业方面的经验,我们真正打造一个产品的经验也不多,甚至我们也不知道自己的网站到底行不行,或是为何可行。每天早上我们起来就是确认服务器没有挂点、网站没有被垃圾留言给占领、使用者也没有弃我们而去。

当我刚开始做Reddit 的时候,成长得很慢。这个网站很早就上线了,我们只用了几周就做好。前三个月里,每天超过三千人造访已属难得,也差不多就是一个RSS feed 的基本水准。后来,过了几个礼拜马拉松式的coding,我们将Reddit 从Lisp 语言换成Python,我也因此在博客写了一篇文章。这件事受到许多人注意,没有人生气起来像Lisp 粉丝那么夸张。直到今天,我在派对上自我介绍时提到自己在Reddit 工作,人们还是会说:“噢,是那个从Lisp 转换出去的网站。”

差不多就是那个时候,网站的流量开始起来了。之后的三个月,我们的网站流量翻倍了两次。每天早上我们都会查看一下流量图表、看看我们表现得如何——加入的新功能是否获得关注、我们的网站是否在网友间口耳相传、使用者有没有抛弃我们等等。每一天数字都成长得更高。每当我们稍稍从工作中休息一下、喘口气,网站看起来还是成长得一天比一天快。

但我们还是不知道要怎么赚钱。我们在网站上卖T-Shirt,但是每当我们赚了一点钱,也只能用来订更多T-Shirt 来卖。我们也开始卖广告,然而表现得并不好,差不多就是每个月几块钱。我们也想过授权“Reddit 技术”给其他像我们一样运作的网站,却找不到谁真的需要这种授权。

很快地,Reddit 每个月都有数百万的使用者造访——一个远超过美国一般杂志读者的数字,我会知道是因为当时跟很多杂志发行商聊过,他们都很好奇Reddit 的魔法使否也适用在他们身上。一开始,我们对他们建议的每件事都说好,而且很幸运地,也都管用,因为我们写程序的速度比他们写一份正式合约的速度还快。

此外,线上新闻网站也开始注意到Reddit 能为他们带来巨大的流量。他们觉得在所有文章加上某种“Reddit this”的链接可以带来更多流量。但是据我所知,加入这种链接其实对文章在Reddit 更受欢迎其实帮助有限(而且还会让你的网站看起来更丑),不过这的确是帮我们打了许多免费的广告。

没多久,谈合作就变成谈收购。被收购——我们一直以来的梦想!再也不必烦恼网站赚不赚钱。有些公司愿意接手这件事,我们还会因此致富。于是我们放下手边所有的事务进行协商,然后那些工作就一直被晾在一旁。

我们花了好几个月协商。首先,我们对价格争论不休。我们准备了一堆计划跟报表,到他们公司总部做简报、参加永无止境的会议、讲一大堆电话。最后对方回绝我们的报价,我们就这样走了。后来他们的态度改变,我们还是握手同意了交易,开始商讨一些关键的部份,然后谈判又破裂。最终定案前我们这样来回了大概三、四次,还因此停下手边的工作长达半年之久。

我开始必须疯狂地考虑金钱问题。因为压力的关系,我们开始变得很敏感、缺乏生产力。我们开始互相吼叫、冷战,接着再设法回头一起工作,然后又开始彼此互相大吼。在收购定案前,这家公司几乎要分崩离析。

最后,我们跟律师一起签完了所有文件,隔天钱就进了户头,结束了。

我们全部移到旧金山,开始到Wired News(我们被Condé Nast 这家拥有WIRED 等多本刊物的巨型出版公司收购)办公室上班。

那时我蛮惨的,我难以忍受旧金山、难以忍受办公室的生活、难以忍受WIRED。我生病了,过了一段很长的圣诞假期,也想过自杀,跑给警察追…… 当我礼拜一早上回到办公室,他们叫我辞职。

第五步:自由

失业的前几周感觉蛮怪的。多亏旧金山的阳光,我在家附近闲晃,也读了很多书,但没多久我就发现自己需要做点事。我开始写书、开始整理我在心理学领域发现的有趣研究,我不是要谈那些研究结果,而是用说故事的方式。每天我都去史丹佛大学的图书馆(史丹佛大学对心理学家来讲是所好学校)。

但有一天我接到Brewster Kahle 的电话,他创办了Internet Archive,一个意图将所有东西数位化之后放上网络的超酷组织。他说他想要将我们过去聊过的计划付诸实现。那个点子就是收集世界上所有书里的资讯然后将之共同存放在一个地方,一个自由的维基系统(a free wiki)。

译注:这里的“维基”指的是网络上开放且可供多人协同创作的超文字(hypertext)系统。

于是接下来几个礼拜我投入了这个我称之为“图书馆”的工作,号召程序设计师、与一位设计师合作,并且做了其他奇奇怪怪的工作,就为了让网站上线。最终这个网站成了“开放式图书馆(Open Library)”(openlibrary.org)。这个网站很多部分的工作是由一位非常优秀的印度程序设计师完成:Anand Chitipothu。

另一位朋友Seth Roberts 建议我试着去改善高等教育系统。虽然对于解决方案我们无法达成共识,但我们一致同意一个好办法:一个告诉学生不同职业之间差异为何的维基系统。这个网站就快上线了。

另一位老朋友Simon Carstensen 寄来一封E-mail 说他从大学毕业了,打算找我创办一家公司。Well,一直以来我都有份创业点子的清单,于是我就把排行第一的点子拿来用:让架设网站变得跟填一个文字输入框一样简单。接下来几个月我们不断努力让网站变得越来越简单(同时也变得比较复杂)。这个网站最近上线了,叫Jottit.com。

同时我还申请担任两个暑期程序计划的“导师(mentor)”,这两个计划都极富野心而且相当惊人,也就快上线了。

我也决定要投入新闻工作,第一篇文章已经刊登出来。我弄了几个跟科学有关博客,开始着手进行我自己的学术论文,这是基于我自己对“谁才是真正写维基百科的人”此一议题的研究。有一些人,包括Jimmy Wales(维基百科创办人)这位维基百科发言人,都声称维基百科并非是个大型的分散式计划,差不多就是500 人左右在贡献内容,许多人还是他也认识的。他是做了一点研究支持自己的论点,但我在处理数字上面更加小心,也发现截然不同的结果:维基百科上有非常大量的内容是来自于新的编辑者,许多人甚至还没有申请帐号,只是在条目中东加一句西加一句。为何Jimmy Wales 会犯下这个错误?因为他看的是每一个使用者做出更改的次数,却没有观察到他们所更改的“量”有多大,所以这500 多人对维基百科做了非常非常多的编辑工作,但他们每一次编辑所修改的内容都很少,大多只是修改拼字错误、更改格式等等。所以我们似乎更有理由相信这500 人是在“编辑”维基百科而非认为他们是在“撰写”维基百科。

我的建议

所以秘诀是什么?我如何用简洁的几句话就说完做过的事,让自己听起来像是个还不赖的人?

保持好奇心、广泛地阅读、尝试新事物。我想许多人们所说的智慧,追根究柢都是源自好奇心。

接纳一切事物。我很不擅长说“不”——到了病态的程度,无论是计划、访谈邀约或是对朋友。我做过非常多的尝试,即便当中大部分都是失败的,我还是有所作为。

假设其实没有人知道自己在干嘛。有一大票人拒绝尝试,因为他们觉得自己知道的不够多,或是他们假设自己所想到的所有方法其他人一定已经全都试过了。Well,的确有一小搓人真的知道该怎么把事情做对,而知道要尝试新事物的人又更少。所以如果你愿意在某些事上全力以赴,想信你会做得不错。

遵循这些法则造就了今日的我,一大堆专案让我压力冲天。

每天早上我起来收信,查看有哪个计划今天会崩盘、有哪个最后期限得赶上、有哪个演讲需要准备、有哪篇文章我得编辑……

或许,有天你也会像我一样,万一果真如此,希望我能帮上忙。

(全文完)

本文的作者相信大家都猜到了,他是Aaron Swartz。这样一位年轻才华洋溢的人,却在年仅26岁之龄,于纽约家中自杀了,令人不胜唏嘘。以下来自百度百科

Aaron Swartz,1986年11月8日-2013年1月11日,一位程序员、作家、政治组织策划人和积极行动主义者。他年仅14岁就参与创造RSS 1.0规格,因而在程式设计圈当中声名大噪。2011年7月19日他被指控自 JSTOR 非法下载大量学术期刊文章,并遭联邦政府起诉被捕,因而获得主流媒体关注。斯沃茨是 Demand Progress 和 Progressive Change Campaign Committee 的共同创办人。他曾住在美国马萨诸塞州的剑桥,于2013年1月11日自杀。

Wine,Linux上最流行也是最有力的软件, 可以顺利地在Linux平台上运行Windows程序和游戏。

安装Wine

这篇文章教你怎么在像CentOS, Fedora, Ubuntu, Linux Mint一样基于Red HatDebian的系统上安装最新的Wine 1.7

在Linux安装 Wine 1.7

不幸的, 在基于Red Hat的系统上没有官方的 Wine 仓库,所以唯一的安装方式是从源码编译。你需要安装一些依赖的包比如gcc, flex, bison, libX11-devel freetype-devel 和 Development Tools,这些包用来从源码编译Wine。我们可以用yum命令安装他们。

在 RedHat, Fedora 和 CentOS 上

# yum -y groupinstall 'Development Tools'
# yum -y install flex bison libX11-devel freetype-devel

接下来,下载最新的开发版本(如1.7.21)并用下面的命令解压。

$ cd /tmp
$ wget http://citylan.dl.sourceforge.net/project/wine/Source/wine-1.7.21.tar.bz2
$ tar -xvf wine-1.7.21.tar.bz2 -C /tmp/

现在,要以普通用户身份编译并搭建Wine的安装程序。(注意: 根据机器性能和网络速度的不同,安装过程需要 15-20 分钟,安装过程中会要求输入 root 密码。)

32位系统上

$ cd wine-1.7.21/
$ ./tools/wineinstall

64位系统上

$ cd wine-1.7.21/
$ ./configure --enable-win64
$ make
# make install

在Ubuntu, Debian 和 Linux Mint 上

在基于Ubuntu 的系统上, 你可以用官方的 PPA来轻松安装最新的Wine。打开一个新终端用sudo运行如下命令。

$ sudo add-apt-repository ppa:ubuntu-wine/ppa 
$ sudo apt-get update
$ sudo apt-get install wine 1.7 winetricks

一旦装完了,你可以以如下方式运行基于Windows的软件和游戏。

$ wine notepad
$ wine notepad.exe 
$ wine c:\\windows\\notepad.exe

注意: 请记住,如果是开发版本不要用在生产环境。 建议只用在测试用途

如果你想安装最近的稳定版Wine, 请看下面的文章, 在文章里介绍了在几乎所以Linux系统中安装Wine的方法

参考链接


via: http://www.tecmint.com/install-wine-in-linux/

译者:2q1w2007 校对:wxy

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

据微博网友 @敲代码的Joey\_Chan 透露,Ubuntu Touch 将在今年十月伴随 Ubuntu 预定的版本发布周期一同发布,不过魅族搭载 Ubuntu Touch 的手机是否能同期推出,尚不确定

以下截图来自 @敲代码的Joey\_Chan ,大家可以先睹为快,期待真机出现,小编现在对 Ubuntu Touch 十分渴望:

启动图

锁屏图

解锁图

拨号界面

应用界面

应用切换

浏览器

仿古式终端

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中国 荣誉推出