mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-28 23:20:10 +08:00
commit
f7e2ffda4f
@ -1,12 +1,14 @@
|
||||
在逻辑卷管理中设置精简资源调配卷——第四部分
|
||||
在LVM中设置精简资源调配卷(第四部分)
|
||||
================================================================================
|
||||
逻辑卷管理有许多特性,比如像快照和精简资源调配。在先前(第三部分中),我们已经介绍了如何为逻辑卷创建快照。在本文中,我们将了解如何在LVM中设置精简资源调配。
|
||||
逻辑卷管理有许多特性,比如像快照和精简资源调配。在先前([第三部分][3]中),我们已经介绍了如何为逻辑卷创建快照。在本文中,我们将了解如何在LVM中设置精简资源调配。
|
||||
|
||||
![Setup Thin Provisioning in LVM](http://www.tecmint.com/wp-content/uploads/2014/08/Setup-Thin-Provisioning-in-LVM.jpg)
|
||||
在LVM中设置精简资源调配
|
||||
|
||||
*在LVM中设置精简资源调配*
|
||||
|
||||
### 精简资源调配是什么? ###
|
||||
精简资源调配用于lvm以在精简池中创建虚拟磁盘。我们假定我服务器上有**15GB**的存储容量,而我已经有2个客户各自占去了5GB存储空间。你是第三个客户,你也请求5GB的存储空间。在以前,我们会提供整个5GB的空间(富卷)。然而,你可能只使用5GB中的2GB,其它3GB以后再去填满它。
|
||||
|
||||
精简资源调配用于LVM以在精简池中创建虚拟磁盘。我们假定我服务器上有**15GB**的存储容量,而我已经有2个客户各自占去了5GB存储空间。你是第三个客户,你也请求5GB的存储空间。在以前,我们会提供整个5GB的空间(富卷)。然而,你可能只使用5GB中的2GB,其它3GB以后再去填满它。
|
||||
|
||||
而在精简资源调配中我们所做的是,在其中一个大卷组中定义一个精简池,再在精简池中定义一个精简卷。这样,不管你写入什么文件,它都会保存进去,而你的存储空间看上去就是5GB。然而,这所有5GB空间不会全部铺满整个硬盘。对其它客户也进行同样的操作,就像我说的,那儿已经有两个客户,你是第三个客户。
|
||||
|
||||
@ -20,15 +22,13 @@
|
||||
|
||||
在精简资源调配中,如果我为你定义了5GB空间,它就不会在定义卷时就将整个磁盘空间全部分配,它会根据你的数据写入而增长,希望你看懂了!跟你一样,其它客户也不会使用全部卷,所以还是有机会为一个新客户分配5GB空间的,这称之为过度资源调配。
|
||||
|
||||
但是,必须对各个卷的增长情况进行监控,否则结局会是个灾难。在过度资源调配完成后,如果所有4个客户都极度地写入数据到磁盘,你将碰到问题了。因为这个动作会填满15GB的存储空间,甚至溢出,从而导致这些卷下线。
|
||||
但是,必须对各个卷的增长情况进行监控,否则结局会是个灾难。在过度资源调配完成后,如果所有4个客户都尽量写入数据到磁盘,你将碰到问题了。因为这个动作会填满15GB的存储空间,甚至溢出,从而导致这些卷下线。
|
||||
|
||||
### 需求 ###
|
||||
### 前置阅读 ###
|
||||
|
||||
注:此三篇文章如果发布后可换成发布后链接,原文在前几天更新中
|
||||
|
||||
- [使用LVM在Linux中创建逻辑卷——第一部分][1]
|
||||
- [在Linux中扩展/缩减LVM——第二部分][2]
|
||||
- [在LVM中创建/恢复逻辑卷快照——第三部分][3]
|
||||
- [在Linux中使用LVM构建灵活的磁盘存储(第一部分)][1]
|
||||
- [在Linux中扩展/缩减LVM(第二部分)][2]
|
||||
- [在 LVM中 录制逻辑卷快照并恢复(第三部分)][3]
|
||||
|
||||
#### 我的服务器设置 ####
|
||||
|
||||
@ -42,7 +42,8 @@
|
||||
# vgcreate -s 32M vg_thin /dev/sdb1
|
||||
|
||||
![Listing Volume Group](http://www.tecmint.com/wp-content/uploads/2014/08/Listing-Volume-Group.jpg)
|
||||
列出卷组
|
||||
|
||||
*列出卷组*
|
||||
|
||||
接下来,在创建精简池和精简卷之前,检查逻辑卷有多少空间可用。
|
||||
|
||||
@ -50,7 +51,8 @@
|
||||
# lvs
|
||||
|
||||
![Check Logical Volume](http://www.tecmint.com/wp-content/uploads/2014/08/check-Logical-Volume.jpg)
|
||||
检查逻辑卷
|
||||
|
||||
*检查逻辑卷*
|
||||
|
||||
我们可以在上面的lvs命令输出中看到,只显示了一些默认逻辑用于文件系统和交换分区。
|
||||
|
||||
@ -62,18 +64,20 @@
|
||||
|
||||
- **-L** – 卷组大小
|
||||
- **–thinpool** – 创建精简池
|
||||
- **tp_tecmint_poolThin** - 精简池名称
|
||||
- **vg_thin** – 我们需要创建精简池的卷组名称
|
||||
- **tp\_tecmint\_poolThin** - 精简池名称
|
||||
- **vg\_thin** – 我们需要创建精简池的卷组名称
|
||||
|
||||
![Create Thin Pool](http://www.tecmint.com/wp-content/uploads/2014/08/Create-Thin-Pool.jpg)
|
||||
创建精简池
|
||||
|
||||
*创建精简池*
|
||||
|
||||
使用‘lvdisplay’命令来查看详细信息。
|
||||
|
||||
# lvdisplay vg_thin/tp_tecmint_pool
|
||||
|
||||
![Logical Volume Information](http://www.tecmint.com/wp-content/uploads/2014/08/Logical-Volume-Information.jpg)
|
||||
逻辑卷信息
|
||||
|
||||
*逻辑卷信息*
|
||||
|
||||
这里,我们还没有在该精简池中创建虚拟精简卷。在图片中,我们可以看到分配的精简池数据为**0.00%**。
|
||||
|
||||
@ -83,16 +87,17 @@
|
||||
|
||||
# lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool
|
||||
|
||||
我已经在我的**vg_thin**卷组中的**tp_tecmint_pool**内创建了一个精简虚拟卷,取名为**thin_vol_client1**。现在,使用下面的命令来列出逻辑卷。
|
||||
我已经在我的**vg_thin**卷组中的**tp\_tecmint\_pool**内创建了一个精简虚拟卷,取名为**thin\_vol\_client1**。现在,使用下面的命令来列出逻辑卷。
|
||||
|
||||
# lvs
|
||||
|
||||
![List Logical Volumes](http://www.tecmint.com/wp-content/uploads/2014/08/List-Logical-Volumes.jpg)
|
||||
列出逻辑卷
|
||||
|
||||
*列出逻辑卷*
|
||||
|
||||
刚才,我们已经在上面创建了精简卷,这就是为什么没有数据,显示为**0.00%M**。
|
||||
|
||||
好吧,让我为其它2个客户再创建2个精简卷。这里,你可以看到在精简池(**tp_tecmint_pool**)下有3个精简卷了。所以,从这一点上看,我们开始明白,我已经使用所有15GB的精简池。
|
||||
好吧,让我为其它2个客户再创建2个精简卷。这里,你可以看到在精简池(**tp\_tecmint\_pool**)下有3个精简卷了。所以,从这一点上看,我们开始明白,我已经使用所有15GB的精简池。
|
||||
|
||||
![Create Thin Volumes](http://www.tecmint.com/wp-content/uploads/2014/08/Create-Thin-Volumes.jpg)
|
||||
|
||||
@ -107,14 +112,16 @@
|
||||
# ls -l /mnt/
|
||||
|
||||
![Creating Mount Points](http://www.tecmint.com/wp-content/uploads/2014/08/Creating-Mount-Points.jpg)
|
||||
创建挂载点
|
||||
|
||||
*创建挂载点*
|
||||
|
||||
使用‘mkfs’命令为这些创建的精简卷创建文件系统。
|
||||
|
||||
# mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3
|
||||
|
||||
![Create File System](http://www.tecmint.com/wp-content/uploads/2014/08/Create-File-System.jpg)
|
||||
创建文件系统
|
||||
|
||||
*创建文件系统*
|
||||
|
||||
使用‘mount’命令来挂载所有3个客户卷到创建的挂载点。
|
||||
|
||||
@ -125,12 +132,14 @@
|
||||
# df -h
|
||||
|
||||
![Print Mount Points](http://www.tecmint.com/wp-content/uploads/2014/08/Print-Mount-Points.jpg)
|
||||
打印挂载点
|
||||
|
||||
*显示挂载点*
|
||||
|
||||
这里,我们可以看到所有3个客户卷已经挂载了,而每个客户卷只使用了3%的数据空间。那么,让我们从桌面添加一些文件到这3个挂载点,以填充一些空间。
|
||||
|
||||
![Add Files To Volumes](http://www.tecmint.com/wp-content/uploads/2014/08/Add-Files-To-Volumes.jpg)
|
||||
添加文件到卷
|
||||
|
||||
*添加文件到卷*
|
||||
|
||||
现在列出挂载点,并查看每个精简卷使用的空间,然后列出精简池来查看池中已使用的大小。
|
||||
|
||||
@ -138,10 +147,12 @@
|
||||
# lvdisplay vg_thin/tp_tecmint_pool
|
||||
|
||||
![Check Mount Point Size](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Mount-Point-Size.jpg)
|
||||
检查挂载点大小
|
||||
|
||||
*检查挂载点大小*
|
||||
|
||||
![Check Thin Pool Size](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Thin-Pool-Size.jpg)
|
||||
检查精简池大小
|
||||
|
||||
*检查精简池大小*
|
||||
|
||||
上面的命令显示了3个挂载点及其使用大小百分比。
|
||||
|
||||
@ -161,18 +172,20 @@
|
||||
# lvs
|
||||
|
||||
![Create thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Create-thin-Storage.jpg)
|
||||
创建精简存储
|
||||
|
||||
*创建精简存储*
|
||||
|
||||
在精简池中,我只有15GB大小的空间,但是我已经在精简池中创建了4个卷,其总量达到了20GB。如果4个客户都开始写入数据到他们的卷,并将空间填满,到那时我们将面对严峻的形势。如果不填满空间,那不会有问题。
|
||||
|
||||
现在,我已经创建在**thin_vol_client4**中创建了文件系统,然后挂载到了**/mnt/client4**下,并且拷贝了一些文件到里头。
|
||||
现在,我已经创建在**thin\_vol\_client4**中创建了文件系统,然后挂载到了**/mnt/client4**下,并且拷贝了一些文件到里头。
|
||||
|
||||
# lvs
|
||||
|
||||
![Verify Thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Verify-Thing-Storage.jpg)
|
||||
验证精简存储
|
||||
|
||||
我们可以在上面的图片中看到,新创建的client 4总计使用空间达到了**89.34%**,而精简池的已用空间达到了**59.19**。如果所有这些用户不在过度对卷写入,那么它就不会溢出,下线。要避免溢出,我们需要扩展精简池大小。
|
||||
*验证精简存储*
|
||||
|
||||
我们可以在上面的图片中看到,新创建的client 4总计使用空间达到了**89.34%**,而精简池的已用空间达到了**59.19**。如果所有这些用户不再过度对卷写入,那么它就不会溢出,下线。要避免溢出的话,我们需要扩展精简池大小。
|
||||
|
||||
**重要**:精简池只是一个逻辑卷,因此,如果我们需要对其进行扩展,我们可以使用和扩展逻辑卷一样的命令,但我们不能缩减精简池大小。
|
||||
|
||||
@ -183,16 +196,18 @@
|
||||
# lvextend -L +15G /dev/vg_thin/tp_tecmint_pool
|
||||
|
||||
![Extend Thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Extend-Thin-Storage.jpg)
|
||||
扩展精简存储
|
||||
|
||||
*扩展精简存储*
|
||||
|
||||
接下来,列出精简池大小。
|
||||
|
||||
# lvs
|
||||
|
||||
![Verify Thin Storage](http://www.tecmint.com/wp-content/uploads/2014/08/Verify-Thin-Storage.jpg)
|
||||
验证精简存储
|
||||
|
||||
前面,我们的**tp_tecmint_pool**大小为15GB,而在对第四个精简卷进行过度资源配置后达到了20GB。现在,它扩展到了30GB,所以我们的过度资源配置又回归常态,而精简卷也不会溢出,下线了。通过这种方式,我们可以添加更多的精简卷到精简池中。
|
||||
*验证精简存储*
|
||||
|
||||
前面,我们的**tp_tecmint_pool**大小为15GB,而在对第四个精简卷进行过度资源配置后达到了20GB。现在,它扩展到了30GB,所以我们的过度资源配置又回归常态,而精简卷也不会溢出下线了。通过这种方式,我们可以添加更多的精简卷到精简池中。
|
||||
|
||||
在本文中,我们已经了解了怎样来使用一个大尺寸的卷组创建一个精简池,以及怎样通过过度资源配置在精简池中创建精简卷和扩着精简池。在下一篇文章中,我们将介绍怎样来移除逻辑卷。
|
||||
|
||||
@ -202,11 +217,11 @@ via: http://www.tecmint.com/setup-thin-provisioning-volumes-in-lvm/
|
||||
|
||||
作者:[Babin Lonston][a]
|
||||
译者:[GOLinux](https://github.com/GOLinux)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://www.tecmint.com/author/babinlonston/
|
||||
[1]:http://www.tecmint.com/create-lvm-storage-in-linux/
|
||||
[2]:http://www.tecmint.com/extend-and-reduce-lvms-in-linux/
|
||||
[3]:http://www.tecmint.com/take-snapshot-of-logical-volume-and-restore-in-lvm/
|
||||
[1]:http://linux.cn/article-3965-1.html
|
||||
[2]:http://linux.cn/article-3974-1.html
|
||||
[3]:http://linux.cn/article-4145-1.html
|
@ -1,6 +1,6 @@
|
||||
如何在Debian上安装配置ownCloud
|
||||
================================================================================
|
||||
据其官方网站,ownCloud可以让你通过一个网络接口或者WebDAV访问你的文件。它还提供了一个平台,可以轻松地查看、编辑和同步您所有设备的通讯录、日历和书签。尽管ownCloud与广泛使用Dropbox非常相似,但主要区别在于ownCloud是免费的,开源的,从而可以自己的服务器上建立与Dropbox类似的云存储服务。使用ownCloud你可以完整地访问和控制您的私人数据而对存储空间没有限制(除了硬盘容量)或者连客户端的连接数量。
|
||||
据其官方网站,ownCloud可以让你通过一个Web界面或者WebDAV访问你的文件。它还提供了一个平台,可以轻松地查看、编辑和同步您所有设备的通讯录、日历和书签。尽管ownCloud与广泛使用Dropbox非常相似,但主要区别在于ownCloud是免费的,开源的,从而可以自己的服务器上建立与Dropbox类似的云存储服务。使用ownCloud你可以完整地访问和控制您的私人数据,而对存储空间(除了硬盘容量)或客户端的连接数量没有限制。
|
||||
|
||||
ownCloud提供了社区版(免费)和企业版(面向企业的有偿支持)。预编译的ownCloud社区版可以提供了CentOS、Debian、Fedora、openSUSE、,SLE和Ubuntu版本。本教程将演示如何在Debian Wheezy上安装和在配置ownCloud社区版。
|
||||
|
||||
@ -14,7 +14,7 @@ ownCloud提供了社区版(免费)和企业版(面向企业的有偿支持
|
||||
|
||||
![](https://farm6.staticflickr.com/5589/15071372505_298a796ff6_z.jpg)
|
||||
|
||||
在下一屏职工点击继续:
|
||||
在下一屏中点击继续:
|
||||
|
||||
![](https://farm6.staticflickr.com/5589/14884818527_554d1483f9_z.jpg)
|
||||
|
||||
@ -36,11 +36,11 @@ ownCloud提供了社区版(免费)和企业版(面向企业的有偿支持
|
||||
# aptitude update
|
||||
# aptitude install owncloud
|
||||
|
||||
打开你的浏览器并定位到你的ownCloud实例中,地址是http://<server-ip>/owncloud:
|
||||
打开你的浏览器并定位到你的ownCloud实例中,地址是 http://服务器 IP/owncloud:
|
||||
|
||||
![](https://farm4.staticflickr.com/3869/15071011092_f8f32ffe11_z.jpg)
|
||||
|
||||
注意ownCloud可能会包一个Apache配置错误的警告。使用下面的步骤来解决这个错误来摆脱这些错误信息。
|
||||
注意ownCloud可能会包一个Apache配置错误的警告。使用下面的步骤来解决这个错误来解决这些错误信息。
|
||||
|
||||
a) 编辑 the /etc/apache2/apache2.conf (设置 AllowOverride 为 All):
|
||||
|
||||
@ -70,7 +70,7 @@ d) 刷新浏览器,确认安全警告已经消失
|
||||
|
||||
### 设置数据库 ###
|
||||
|
||||
是时候为ownCloud设置数据库了。
|
||||
这时可以为ownCloud设置数据库了。
|
||||
|
||||
首先登录本地的MySQL/MariaDB数据库:
|
||||
|
||||
@ -83,7 +83,7 @@ d) 刷新浏览器,确认安全警告已经消失
|
||||
mysql> GRANT ALL PRIVILEGES ON owncloud_DB.* TO ‘owncloud-web’@'localhost';
|
||||
mysql> FLUSH PRIVILEGES;
|
||||
|
||||
通过http://<server-ip>/owncloud 进入ownCloud页面,并选择‘Storage & database’ 选项。输入所需的信息(MySQL/MariaDB用户名,密码,数据库和主机名),并点击完成按钮。
|
||||
通过http://服务器 IP/owncloud 进入ownCloud页面,并选择‘Storage & database’ 选项。输入所需的信息(MySQL/MariaDB用户名,密码,数据库和主机名),并点击完成按钮。
|
||||
|
||||
![](https://farm6.staticflickr.com/5584/15071010982_b76c23c384_z.jpg)
|
||||
|
||||
@ -101,7 +101,7 @@ d) 刷新浏览器,确认安全警告已经消失
|
||||
|
||||
![](https://farm6.staticflickr.com/5587/15068784081_f281b54b72_z.jpg)
|
||||
|
||||
编辑/etc/apache2/conf.d/owncloud.conf 启用HTTPS。对于余下的NC、R和L重写规则的意义,你可以参考[Apache 文档][2]:
|
||||
编辑/etc/apache2/conf.d/owncloud.conf 启用HTTPS。对于重写规则中的NC、R和L的意义,你可以参考[Apache 文档][2]:
|
||||
|
||||
Alias /owncloud /var/www/owncloud
|
||||
|
||||
@ -197,7 +197,7 @@ via: http://xmodulo.com/2014/08/install-configure-owncloud-debian.html
|
||||
|
||||
作者:[Gabriel Cánepa][a]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -1,10 +1,10 @@
|
||||
pidstat - 监控并统计Linux进程的数据
|
||||
================================================================================
|
||||
**pidstat**命令用来监控被Linux内核管理的独立任务(进程)。它输出每个受内核管理的任务的相关信息。pidstat命令也可以用来监控特定进程的子进程。区间参数具体说明各个报告间的时间间隔。它的值为0(或者没有参数)说明进程的统计数据的时间是从系统启动开始计算的。
|
||||
**pidstat**命令用来监控被Linux内核管理的独立任务(进程)。它输出每个受内核管理的任务的相关信息。pidstat命令也可以用来监控特定进程的子进程。间隔参数用于指定每次报告间的时间间隔。它的值为0(或者没有参数)说明进程的统计数据的时间是从系统启动开始计算的。
|
||||
|
||||
### 如何安装pidstat ###
|
||||
|
||||
pidstat 是sysstat软件套件的一部分,sysstat包含很多监控linux系统行为的工具,它能够从大多数linux发行版的软件源中获得。
|
||||
pidstat 是sysstat软件套件的一部分,sysstat包含很多监控linux系统状态的工具,它能够从大多数linux发行版的软件源中获得。
|
||||
|
||||
在Debian/Ubuntu系统中可以使用下面的命令来安装
|
||||
|
||||
@ -16,7 +16,7 @@ CentOS/Fedora/RHEL版本的linux中则使用下面的命令:
|
||||
|
||||
### 使用pidstat ###
|
||||
|
||||
使用pidstat不加任何参数等价于加上-p但是只有正在活动的任务会被显示出来。
|
||||
使用pidstat不加任何参数等价于加上-p参数,但是只有正在活动的任务会被显示出来。
|
||||
|
||||
# pidstat
|
||||
|
||||
@ -24,13 +24,13 @@ CentOS/Fedora/RHEL版本的linux中则使用下面的命令:
|
||||
|
||||
在结果中你能看到如下内容:
|
||||
|
||||
- **PID** - 被监控的进程的进程号
|
||||
- **%usr** - 当在用户层执行(应用程序)时这个进程的cpu使用率。注意这个字段计算的cpu时间不包括在虚拟处理器中使用花去的时间。
|
||||
- **%system** - 这个进程在系统级别使用时的cpu使用率。
|
||||
- **%guest** - 在虚拟机中的cpu使用率
|
||||
- **%CPU** - 进程总的cpu使用率。在SMP环境(多处理器)中,cpu使用率会根据cpu的数量进行划分当你在命令行中输入-I参数。
|
||||
- **CPU** - 这个进程能够使用的处理器数目
|
||||
- **Command** - 这个进程的命令名称。
|
||||
- **PID** - 被监控的任务的进程号
|
||||
- **%usr** - 当在用户层执行(应用程序)时这个任务的cpu使用率,和 nice 优先级无关。注意这个字段计算的cpu时间不包括在虚拟处理器中花去的时间。
|
||||
- **%system** - 这个任务在系统层使用时的cpu使用率。
|
||||
- **%guest** - 任务花费在虚拟机上的cpu使用率(运行在虚拟处理器)。
|
||||
- **%CPU** - 任务总的cpu使用率。在SMP环境(多处理器)中,如果在命令行中输入-I参数的话,cpu使用率会除以你的cpu数量。
|
||||
- **CPU** - 正在运行这个任务的处理器编号。
|
||||
- **Command** - 这个任务的命令名称。
|
||||
|
||||
### I/O 统计数据 ###
|
||||
|
||||
@ -42,12 +42,11 @@ CentOS/Fedora/RHEL版本的linux中则使用下面的命令:
|
||||
|
||||
IO 输出会显示一些内的条目:
|
||||
|
||||
- **kB_rd/s** - 进程从硬盘上的读取速度
|
||||
- **kB_wr/s** - 进程向硬盘中的写入速度
|
||||
- **kB_ccwr/s** - 进程写入磁盘被取消的速率
|
||||
- **kB_rd/s** - 任务从硬盘上的读取速度(kb)
|
||||
- **kB_wr/s** - 任务向硬盘中的写入速度(kb)
|
||||
- **kB_ccwr/s** - 任务写入磁盘被取消的速率(kb)
|
||||
|
||||
### Page faults and memory usage ###
|
||||
### Page faults和内存使用 ###
|
||||
### 页面失败和内存使用 ###
|
||||
|
||||
使用-r标记你能够得到内存使用情况的数据。
|
||||
|
||||
@ -55,10 +54,10 @@ IO 输出会显示一些内的条目:
|
||||
|
||||
重要的条目:
|
||||
|
||||
- **minflt/s** - 从内存中加载数据时每秒钟出现的小的错误的数目
|
||||
- **majflt/s** - 从内存中加载数据时每秒出现的较大错误的数目
|
||||
- **VSZ** - 虚拟容量:整个进程的虚拟内存使用
|
||||
- **RSS** - 长期的内存使用:进程非交换物理内存的使用
|
||||
- **minflt/s** - 从内存中加载数据时每秒出现的小的错误的数目,这些不要求从磁盘载入内存页面。
|
||||
- **majflt/s** - 从内存中加载数据时每秒出现的较大错误的数目,这些要求从磁盘载入内存页面。
|
||||
- **VSZ** - 虚拟容量:整个进程的虚拟内存使用(kb)
|
||||
- **RSS** - 长期内存使用:任务的不可交换物理内存的使用量(kb)
|
||||
|
||||
### 举例 ###
|
||||
|
||||
@ -66,14 +65,13 @@ IO 输出会显示一些内的条目:
|
||||
|
||||
# pidstat -r 2 5
|
||||
|
||||
这会给你5份关于page faults的统计数据结果,间隔2s。这将会更容易的定位出现问题的进程。
|
||||
这会给你5份关于page faults的统计数据结果,间隔2秒。这将会更容易的定位出现问题的进程。
|
||||
|
||||
**2.** 显示所有mysql server的子进程
|
||||
**2.** 显示所有mysql服务器的子进程
|
||||
|
||||
# pidstat -T CHILD -C mysql
|
||||
|
||||
**3.** To combine all statistics in a single report you can use:
|
||||
**3.** 将所有的统计数据结合到一个简单的结果记录中:
|
||||
**3.** 将所有的统计数据结合到一个便于阅读的单一报告中:
|
||||
|
||||
# pidstat -urd -h
|
||||
|
||||
@ -83,7 +81,7 @@ via: http://linoxide.com/linux-command/linux-pidstat-monitor-statistics-proceses
|
||||
|
||||
作者:[Adrian Dinu][a]
|
||||
译者:[John](https://github.com/johnhoow)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -1,31 +1,30 @@
|
||||
不得不说的磁盘镜像工具
|
||||
Linux 下易用的光盘镜像管理工具
|
||||
================================================================================
|
||||
磁盘镜像包括整个磁盘卷的文件或者是全部的存储设备的数据,比如说硬盘,光盘(DVD,CD,蓝光光碟),磁带机,USB闪存,软盘。一个完整的磁盘镜像应该像在原来的存储设备上一样完整、准确,包括数据和结构信息。
|
||||
磁盘镜像包括了整个磁盘卷的文件或者是全部的存储设备的数据,比如说硬盘,光盘(DVD,CD,蓝光光碟),磁带机,USB闪存,软盘。一个完整的磁盘镜像应该包含与原来的存储设备上一样完整、准确,包括数据和结构信息。
|
||||
|
||||
磁盘镜像文件格式可以是开放的标准,像ISO格式的光盘镜像,或者是专有的特别的软件应用程序。"ISO"这个名字来源于用CD存储的ISO 9660文件系统。但是,当用户转向Linux的时候,经常遇到这样的问题,需要把专有的的镜像格式转换为开放的格式。
|
||||
磁盘镜像文件格式可以是采用开放的标准,像ISO格式的光盘镜像,或者是专有的软件应用程序的特定格式。"ISO"这个名字来源于用CD存储的ISO 9660文件系统。但是,当用户转向Linux的时候,经常遇到这样的问题,需要把专有的的镜像格式转换为开放的格式。
|
||||
|
||||
磁盘镜像有很多不同的用处,像烧录光盘,系统备份,数据恢复,硬盘克隆,电子取证和提供操作系统(即LiveCD/DVDs)。
|
||||
|
||||
有很多不同非方法可以把ISO镜像挂载到Linux系统下。强大的mount 命令给我们提供了一个简单的解决方案。但是如果你需要很多工具来操作磁盘镜像,你可以试一试下面的这些完美的开源工具。
|
||||
有很多不同的方法可以把ISO镜像挂载到Linux系统下。强大的mount 命令给我们提供了一个简单的解决方案。但是如果你需要很多工具来操作磁盘镜像,你可以试一试下面的这些强大的开源工具。
|
||||
|
||||
很多工具还没有看到最新的版本,所以如果你正在寻找一个很好用的开源工具,你也可以加入,一起来为开源做出一点贡献。
|
||||
|
||||
----------
|
||||
### Furius ISO Mount
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content2/png/FuriusISOMount.png)
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-FuriusISOMountTool.png)
|
||||
|
||||
Furius ISO Mount是一个简单易用的开源应用程序用来挂载镜像文件,它支持直接打开ISO,IMG,BIN,MDF和NRG格式的镜像而不用把他们烧录到磁盘。
|
||||
Furius ISO Mount是一个简单易用的开源应用程序,可以用来挂载镜像文件,它支持直接打开ISO,IMG,BIN,MDF和NRG格式的镜像而不用把他们烧录到磁盘。
|
||||
|
||||
特性:
|
||||
|
||||
- 支持自动挂载ISO, IMG, BIN, MDF and NRG镜像文件
|
||||
- 支持通过loop 挂载 UDF 镜像
|
||||
- 支持通过 loop 方式挂载 UDF 镜像
|
||||
- 自动在根目录创建挂载点
|
||||
- 自动解挂镜像文件
|
||||
- 自动删除挂载目录,并返回到主目录之前的状态
|
||||
- 自动存档最近10次挂载历史
|
||||
- 自动记录最近10次挂载历史
|
||||
- 支持挂载多个镜像文件
|
||||
- 支持烧录ISO文件及IMG文件到光盘
|
||||
- 支持MD5校验和SHA1校验
|
||||
@ -33,14 +32,14 @@ Furius ISO Mount是一个简单易用的开源应用程序用来挂载镜像文
|
||||
- 自动创建手动挂载和解挂的日志文件
|
||||
- 语言支持(目前支持保加利亚语,中文(简体),捷克语,荷兰语,法语,德语,匈牙利语,意大利语,希腊语,日语,波兰语,葡萄牙语,俄语,斯洛文尼亚语,西班牙语,瑞典语和土耳其语)
|
||||
|
||||
---
|
||||
- 项目网址: [launchpad.net/furiusisomount/][1]
|
||||
- 开发者: Dean Harris (Marcus Furius)
|
||||
- 许可: GNU GPL v3
|
||||
- 版本号: 0.11.3.1
|
||||
|
||||
----------
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content2/png/fuseiso.png)
|
||||
###fuseiso
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-fuseiso.png)
|
||||
|
||||
@ -50,44 +49,46 @@ fuseiso 是用来挂载ISO文件系统的一个开源的安全模块。
|
||||
|
||||
特性:
|
||||
|
||||
- 支持读ISO,BIN和NRG镜像,包括ISO9660文件系统
|
||||
- 支持普通的ISO9660级别1和级别2
|
||||
- 支持读ISO,BIN和NRG镜像,包括ISO 9660文件系统
|
||||
- 支持普通的ISO 9660级别1和级别2
|
||||
- 支持一些常用的扩展,想Joliet,RockRidge和zisofs
|
||||
- 支持非标准的镜像,包括CloneCD's IMGs 、Alcohol 120%'s MDFs 因为他们的格式看起来恰好像BIN镜像一样
|
||||
|
||||
---
|
||||
|
||||
- 项目网址: [sourceforge.net/projects/fuseiso][2]
|
||||
- 开发者: Dmitry Morozhnikov
|
||||
- 许可: GNU GPL v2
|
||||
- 版本号: 20070708
|
||||
|
||||
----------
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content2/png/iat.png)
|
||||
###iat
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-iat.png)
|
||||
|
||||
iat(Iso9660分析工具)是一个通用的开源工具,能够检测很多不同镜像格式文件的结构,包括BIN,MDF,PDI,CDI,NRG和B5I,并转化成ISO-9660格式.
|
||||
iat(Iso 9660分析工具)是一个通用的开源工具,能够检测很多不同镜像格式文件的结构,包括BIN,MDF,PDI,CDI,NRG和B5I,并转化成ISO 9660格式.
|
||||
|
||||
特性:
|
||||
|
||||
- 支持读(输入)NRG,MDF,PDI,CDI,BIN,CUE 和B5I镜像
|
||||
- 支持用cd 刻录机直接烧录光盘镜像
|
||||
- 支持读取(输入)NRG,MDF,PDI,CDI,BIN,CUE 和B5I镜像
|
||||
- 支持用 cd 刻录机直接烧录光盘镜像
|
||||
- 输出信息包括:进度条,块大小,ECC扇形分区(大小),头分区(大小),镜像偏移地址等等
|
||||
|
||||
---
|
||||
|
||||
- 项目网址: [sourceforge.net/projects/iat.berlios][3]
|
||||
- 开发者: Salvatore Santagati
|
||||
- 许可: GNU GPL v2
|
||||
- 版本号: 0.1.3
|
||||
|
||||
----------
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content2/png/AcetoneISO.png)
|
||||
###AcetoneISO
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-AcetoneISO.png)
|
||||
|
||||
AcetoneISO 是一个功能丰富的开源图形化应用程序,用来挂载和管理CD/DVD镜像。
|
||||
|
||||
当你打开这个程序,你就会看到一个图形化的文件管理器用来挂载镜像文件,包括专有的镜像格式,也包括像ISO, BIN, NRG, MDF, IMG 等等,并且允许您执行一系列的动作。
|
||||
当你打开这个程序,你就会看到一个图形化的文件管理器用来挂载镜像文件,包括专有的镜像格式,也包括像ISO, BIN, NRG, MDF, IMG 等等,并且允许您执行一系列的操作。
|
||||
|
||||
AcetoneISO是用QT 4写的,也就是说,对于基于QT的桌面环境能很好的兼容,像KDE,LXQT或是Razor-qt。
|
||||
|
||||
@ -95,57 +96,60 @@ AcetoneISO是用QT 4写的,也就是说,对于基于QT的桌面环境能很
|
||||
|
||||
特性:
|
||||
|
||||
- 支持挂载大多数windowns 镜像,在一个简洁易用的界面
|
||||
- 支持所有镜像格式转换到ISO,或者是从中提取内容。
|
||||
- 支持加密,压缩,解压任何类型的镜像
|
||||
- 支持转换DVD成xvid avi,支持任何格式的转换成xvid avi
|
||||
- 支持从录像里提取声音
|
||||
- 支持从不同格式中提取镜像文件,包括bin mdf nrg img daa dmg cdi b5i bwi pdi
|
||||
- 支持用Kaffeine / VLC / SMplayer播放DVD镜像,可以从Amazon 自动下载。
|
||||
- 支持从文件夹或者是CD/DVD生成ISO镜像
|
||||
- 支持文件MD5校验,或者是生成一个MD5校验码
|
||||
- 支持计算镜像的ShaSums,以128,256和384位的速度
|
||||
- 支持挂载大多数windows 镜像,界面简洁易用
|
||||
- 可以将其所有支持镜像格式转换到ISO,或者是从中提取内容
|
||||
- 加密,压缩,解压任何类型的镜像
|
||||
- 转换DVD成xvid avi,支持将各种常规视频格式转换成xvid avi
|
||||
- 从视频里提取声音
|
||||
- 从不同格式中提取镜像中的文件,包括bin mdf nrg img daa dmg cdi b5i bwi pdi
|
||||
- 用Kaffeine / VLC / SMplayer播放DVD镜像,可以从Amazon 自动下载封面。
|
||||
- 从文件夹或者是CD/DVD生成ISO镜像
|
||||
- 可以做镜像的MD5校验,或者是生成镜像的MD5校验码
|
||||
- 计算镜像的ShaSums(128,256和384位)
|
||||
- 支持加密,解密一个镜像文件
|
||||
- 支持以M字节的速度,分开、合并镜像
|
||||
- 支持高比例压缩镜像成7z 格式
|
||||
- 支持翻录PSX CD成BIN格式,以便在ePSXe/pSX模拟器里运行
|
||||
- 支持修复CUE文件为BIN和IMG格式
|
||||
- 支持把MAC OS的DMG镜像转换成可挂载的镜像
|
||||
- 支持从指定的文件夹中挂载镜像
|
||||
- 支持创建数据库来管理一个大的镜像集合
|
||||
- 支持从CD/DVD 或者是ISO镜像中提取启动文件
|
||||
- 支持备份CD成BIN镜像
|
||||
- 支持简单快速的把DVD翻录成Xvid AVI
|
||||
- 支持简单快速的把常见的视频(avi, mpeg, mov, wmv, asf)转换成Xvid AVI
|
||||
- 支持简单快速的把FLV 换换成AVI 格式
|
||||
- 支持从YouTube和一些视频网站下载视频
|
||||
- 支持提取一个有密码的RAR存档
|
||||
- 支持转换任何的视频到索尼便携式PSP上
|
||||
- 按兆数分拆和合并镜像
|
||||
- 以高压缩比将镜像压缩成7z 格式
|
||||
- 翻录PSX CD成BIN格式,以便在ePSXe/pSX模拟器里运行
|
||||
- 为BIN和IMG格式恢复丢失的 CUE 文件
|
||||
- 把MAC OS的DMG镜像转换成可挂载的镜像
|
||||
- 从指定的文件夹中挂载镜像
|
||||
- 创建数据库来管理一个大的镜像集合
|
||||
- 从CD/DVD 或者是ISO镜像中提取启动文件
|
||||
- 备份CD成BIN镜像
|
||||
- 简单快速的把DVD翻录成Xvid AVI
|
||||
- 简单快速的把常见的视频(avi, mpeg, mov, wmv, asf)转换成Xvid AVI
|
||||
- 简单快速的把FLV 换换成AVI 格式
|
||||
- 从YouTube和一些视频网站下载视频
|
||||
- 提取一个有密码的RAR存档
|
||||
- 支持转换任何的视频到PSP上
|
||||
- 国际化的语言支持支持(英语,意大利语,波兰语,西班牙语,罗马尼亚语,匈牙利语,德语,捷克语和俄语)
|
||||
|
||||
---
|
||||
|
||||
- 项目网址: [sourceforge.net/projects/acetoneiso][4]
|
||||
- 开发者: Marco Di Antonio
|
||||
- 许可: GNU GPL v3
|
||||
- 版本号: 2.3
|
||||
|
||||
----------
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content2/png/ISOMaster.png)
|
||||
###ISO Master
|
||||
|
||||
![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-ISOMaster.png)
|
||||
|
||||
ISO Master是一个开源、易用的、图形化CD 镜像编辑器,适用于Linux 和BSD 。可以从ISO 里提取文件,给ISO 添加文件,创建一个可引导的ISO,这些都是在一个可视化的用户界面完成的。可以打开ISO,NRG 和一些MDF文件,但是只能保存成ISO 格式。
|
||||
ISO Master是一个开源、易用的、图形化CD 镜像编辑器,适用于Linux 和BSD 。可以从ISO 里提取文件,给ISO 里面添加文件,创建一个可引导的ISO,这些都是在一个可视化的用户界面完成的。可以打开ISO,NRG 和一些MDF文件,但是只能保存成ISO 格式。
|
||||
|
||||
ISO Master 是基于bkisofs 创建的,一个简单、稳定的阅读库,修改和编写ISO 镜像,支持Joliet, RockRidge 和EL Torito扩展,
|
||||
ISO Master 是基于bkisofs 创建的,这是一个简单、稳定的阅读,修改和编写ISO 镜像的软件库,支持Joliet, RockRidge 和EL Torito扩展,
|
||||
|
||||
特性:
|
||||
|
||||
- 支持读ISO 格式文件(ISO9660, Joliet, RockRidge 和 El Torito),大多数的NRG 格式文件和一些单向的MDF文件,但是,只能保存成ISO 格式
|
||||
- 支持读ISO 格式文件(ISO9660, Joliet, RockRidge 和 El Torito),大多数的NRG 格式文件和一些单轨道的MDF文件,但是,只能保存成ISO 格式
|
||||
- 创建和修改一个CD/DVD 格式文件
|
||||
- 支持CD 格式文件的添加或删除文件和目录
|
||||
- 支持创建可引导的CD/DVD
|
||||
- 国际化的支持
|
||||
|
||||
---
|
||||
|
||||
- 项目网址: [www.littlesvr.ca/isomaster/][5]
|
||||
- 开发者: Andrew Smith
|
||||
- 许可: GNU GPL v2
|
||||
@ -157,7 +161,7 @@ via: http://www.linuxlinks.com/article/20141025082352476/DiskImageTools.html
|
||||
|
||||
作者:Frazer Kline
|
||||
译者:[barney-ro](https://github.com/barney-ro)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -1,14 +1,14 @@
|
||||
如何使用命令行通过 BitTorrent 快速安全地下载 ISO 镜像
|
||||
如何在命令行下使用 BitTorrent 下载 ISO 镜像
|
||||
================================================================================
|
||||
如果你喜欢尝试最新版甚至是 beta 版的 Linux 发行版来满足你的好奇心,并始终保持是最新版,那么你就会时常受到下载较大的 ISO 镜像的烦恼。提供 ISO 的人通常会使用 ISO 镜像的 .torrent 文件来减少服务器的带宽消耗。P2P 下载对于使用者来说好处也是很明显的(就下载速度而言),特别是当流行的 Linux 发行版有新版本发布并上传供下载,每个人同时在下载做种的时候。
|
||||
如果你喜欢尝试最新版甚至是 beta 版的 Linux 发行版来满足你的好奇心,并始终保持是最新版,那么你就会时常遇到下载较大的 ISO 镜像的烦恼。提供 ISO 的人通常会使用 ISO 镜像的 .torrent 文件来减少服务器的带宽消耗。P2P 下载对于使用者来说好处也是很明显的(就下载速度而言),特别是当流行的 Linux 发行版有新版本发布并上传供下载,每个人同时在下载做种的时候。
|
||||
|
||||
Ubuntu 14.10 (utopic Unicorn) 这周刚刚发布。因此现在在 BitTorrent 网络上应该有很多种子可以下载该版本。虽然有很多基于图形界面的 BitTorrent 客户端,我将展示**如何通过基于简单的命令行界面的 BitTorrent 客户端下载 ISO 镜像**,如果是在远程无图形界面的服务器上的话这会很方便。在这片教程靠后的部分,我还会演示**如何验证已下载的 ISO 镜像的完整性**。
|
||||
Ubuntu 14.10 (utopic Unicorn) 这刚刚发布不久,因此现在在 BitTorrent 网络上应该有很多种子可以下载该版本。虽然有很多基于图形界面的 BitTorrent 客户端,不过我将展示**如何通过基于简单的命令行界面的 BitTorrent 客户端下载 ISO 镜像**,如果是在远程无图形界面的服务器上的话这会很方便。在[另外一篇教程][4]里面,我还会演示**如何验证已下载的 ISO 镜像的完整性**。
|
||||
|
||||
我今天要使用的基于命令行的 BitTorrent 客户端是 transmission-cli。正如你可能知道的那样,[Transmission][1] 是最流行的基于图形界面的 BitTorrent 客户端之一。transmission-cli 是它的简装的命令行版本。
|
||||
|
||||
### 在 Linux 上安装 Transmission-cli ###
|
||||
|
||||
要安装 **transmission-cli**,你不必安装完整的基于图形界面的 Transmission,这是一个很好的消息。
|
||||
要安装 **transmission-cli**,你不必安装完整的基于图形界面的 Transmission,这是听起来不错。
|
||||
|
||||
在 Debian、Ubuntu 或者是基于它们的发行版上:
|
||||
|
||||
@ -35,21 +35,21 @@ Ubuntu 14.10 (utopic Unicorn) 这周刚刚发布。因此现在在 BitTorrent
|
||||
|
||||
![](https://farm6.staticflickr.com/5605/15433651319_745df6633a_z.jpg)
|
||||
|
||||
程序下载 ISO 镜像完成后,你会在终端中看到“状态由未完成变为完成”的提示。要注意的是 transmission-cli 会继续运行并做种以便于其他下载者下载。按 Ctrl+C 来退出。
|
||||
程序下载 ISO 镜像完成后,你会在终端中看到“状态由未完成变为完成”的提示。要注意的是 transmission-cli 会继续运行并做种以便于其他下载者下载。可以按 Ctrl+C 来退出。
|
||||
|
||||
### 为重复使用定制下载选项 ###
|
||||
|
||||
如果你是 **transmission-cli** 的重复使用者,那么值得花时间来熟悉一下它的命令行选项。
|
||||
如果你经常使用 **transmission-cli** ,那么值得花时间来熟悉一下它的命令行选项。
|
||||
|
||||
"-w /path/to/download-directory" 选项指定下载文件保存的文件夹。
|
||||
- "-w /path/to/download-directory" 选项指定下载文件保存的文件夹。
|
||||
|
||||
"-f /path/to/finish-script" 选项设置当前下载完成后要运行的脚本。注意 transmission-cli 默认在文件下载完成后继续运行。如果你想在成功下载完成后自动关闭 transmission-cli,你可以使用这个选项。下面这个简单的脚本可以完成这个功能。
|
||||
- "-f /path/to/finish-script" 选项设置当前下载完成后要运行的脚本。注意 transmission-cli 默认在文件下载完成后继续运行。如果你想在成功下载完成后自动关闭 transmission-cli,你可以使用这个选项。下面这个简单的脚本可以完成这个功能。
|
||||
|
||||
#!/bin/sh
|
||||
sleep 10
|
||||
killall transmission-cli
|
||||
|
||||
#!/bin/sh
|
||||
sleep 10
|
||||
killall transmission-cli
|
||||
|
||||
如果你想为 transmission-cli 分配上传/下载带宽限制,你可以使用 “-d <download-speed-in-KB/s>” 和 “-u <upload-speed-in-KB/s>” 选项。如果你不想限制带宽使用,仅仅指定 “D” 或 “-U” 选项即可。
|
||||
- 如果你想为 transmission-cli 分配上传/下载带宽限制,你可以使用 “-d <download-speed-in-KB/s>” 和 “-u <upload-speed-in-KB/s>” 选项。如果你不想限制带宽使用,仅仅指定 “D” 或 “-U” 选项即可。
|
||||
|
||||
这有一个更高级的 transmission-cli 使用范例。在这个例子中,命令行客户端在成功下载后自动退出。下载速度不限而上传速度限制为 50KB/s。
|
||||
|
||||
@ -95,7 +95,7 @@ Ubuntu 14.10 (utopic Unicorn) 这周刚刚发布。因此现在在 BitTorrent
|
||||
|
||||
![](https://farm6.staticflickr.com/5600/15433651369_d22905e65b_z.jpg)
|
||||
|
||||
这次你没有看到 “public key not found” 的错误信息。如果 SHA256SUMS 文件时有效的,你会看到 “Good signature from <official source>” 的信息。注意到你还看到一个 “This key is not certified with a trusted signature” 的警告信息。基本上这个警告信息时告诉你对导入的公共密钥[指定任何明确的信任][3]。要避免这个警告,你可以选择指定完全信任导入的公共密钥,但你应该只有在通过其他方式审查了这个密钥之后才这样做。否则的话,你可以暂时忽略这个警告。
|
||||
这次你没有看到 “public key not found” 的错误信息。如果 SHA256SUMS 文件时有效的,你会看到 “Good signature from <official source>” 的信息。注意到你还看到一个 “This key is not certified with a trusted signature” 的警告信息。基本上这个警告信息是告诉你对导入的公共密钥没有明确信任。要避免这个警告,你可以选择指定[完全信任][3]导入的公共密钥,但你应该只有在通过其他方式审查了这个密钥之后才这样做。否则的话,你可以暂时忽略这个警告。
|
||||
|
||||
在验证了 SHA256SUMS 文件的完整性后,最后一个步骤是比较已下载 ISO 文件的 SHA256 验校和和 SHA256SUMS 文件中对应的验校值。你可以使用 sha256sum 命令行工具来完成这个步骤。
|
||||
|
||||
@ -115,7 +115,7 @@ via: http://xmodulo.com/download-iso-image-bittorrent-command-line.html
|
||||
|
||||
作者:[Dan Nanni][a]
|
||||
译者:[wangjiezhe](https://github.com/wangjiezhe)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
@ -123,3 +123,4 @@ via: http://xmodulo.com/download-iso-image-bittorrent-command-line.html
|
||||
[1]:https://www.transmissionbt.com/
|
||||
[2]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
|
||||
[3]:http://xmodulo.com/verify-authenticity-integrity-downloaded-file.html
|
||||
[4]:http://xmodulo.com/download-iso-image-bittorrent-command-line.html
|
@ -1,4 +1,4 @@
|
||||
[小贴士] openSUSE设置服务服务通过防火墙
|
||||
小白技巧:openSUSE设置服务服务通过防火墙
|
||||
================================================================================
|
||||
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/11/openSUSE.png)
|
||||
|
||||
@ -24,7 +24,7 @@ via: http://www.unixmen.com/quick-tip-allow-services-firewall-opensuse/
|
||||
|
||||
作者:[SK][a]
|
||||
译者:[VicYu/Vic020](http://www.vicyu.net)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -1,7 +1,7 @@
|
||||
timedatectl - 管理Linux系统的时间和日期
|
||||
如何在 systemd 下管理Linux系统的时间和日期
|
||||
===
|
||||
|
||||
**timedatectl**是用来查询和修改系统时间和配置的Linux应用程序。它是[系统服务管理][1]的一部分,并且允许你检查和修改系统时钟的配置。
|
||||
**timedatectl**是用来查询和修改系统时间和配置的Linux应用程序。它是[systemd 系统服务管理][1]的一部分,并且允许你检查和修改系统时钟的配置。
|
||||
|
||||
在这篇文章中,我们将涉及该小巧但十分重要应用程序的所有方面
|
||||
|
||||
@ -41,19 +41,19 @@ timedatectl - 管理Linux系统的时间和日期
|
||||
|
||||
### 设置本地时钟 ###
|
||||
|
||||
**实时时钟(RTC)**,通常被称为硬件时钟,完全独立于操作系统当前状态,甚至可以在计算机关闭的时候工作。你可以配置系统使用国际时间或当地时间维持RTC。注意,使用当地时区维持RTC并不完美支持,而且还有可能因为时区变化和夏令时调整引起许多问题。如果有可能,在UTC模式下保持RTC。这一做法的唯一问题是,其他操作系统可能不完全支持它(如果你在同一台机器上允许2个操作系统)。
|
||||
**实时时钟(RTC)**,通常被称为硬件时钟,完全独立于操作系统当前状态,甚至可以在计算机关闭的时候工作。你可以配置系统使用国际时间(UTC)或当地时间来校正RTC。注意,使用当地时区校正RTC并没有完美支持,而且还有可能因为时区变化和夏令时调整引起许多问题。如果有可能,在UTC模式下校正RTC。这一做法的唯一问题是,其他操作系统可能不完全支持它(如果你在同一台机器上运行2个操作系统的话)。
|
||||
|
||||
使用UTC模式维持RTC,使用下面的命令:
|
||||
使用UTC模式校正RTC,使用下面的命令:
|
||||
|
||||
# timedatectl set-local-rtc 0
|
||||
|
||||
使用当地时间维护,使用:
|
||||
使用当地时间校正,使用:
|
||||
|
||||
# timedatectl set-local-rtc 1
|
||||
|
||||
### 设置NTP同步 ###
|
||||
|
||||
**网络时间协议(NTP)**是在分组交换计算机系统间进行时钟同步的,可变数据延迟的网络协议。NTP被设计使用[几毫秒的协调通用时间][2]来同步所有参与的计算机。如果你希望设置NTP同步,你可以使用set-ntp选项设置。使用“no”关闭NTP同步,使用“yes”开启。
|
||||
**网络时间协议(NTP)**是在分组交换、可变数据延迟的计算机系统间进行时钟同步的网络协议。NTP被设计使用[几毫秒的协调通用时间(UTC)][2]来同步所有参与的计算机。如果你希望设置NTP同步,你可以使用set-ntp选项设置。使用“no”关闭NTP同步,使用“yes”开启。
|
||||
|
||||
# timedatectl set-ntp yes
|
||||
|
||||
@ -63,7 +63,7 @@ via: http://linoxide.com/linux-command/timedatectl-change-time-date-systemd/
|
||||
|
||||
作者:[Adrian Dinu][a]
|
||||
译者:[su-kaiyao](https://github.com/su-kaiyao)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -1,14 +1,15 @@
|
||||
修复了60个bug的LibreOffice 4.3.4正式发布,4.4版本开发工作有序进行中
|
||||
修复了60个bug的LibreOffice 4.3.4正式发布
|
||||
================================================================================
|
||||
|
||||
![](http://www.omgubuntu.co.uk/wp-content/uploads/2010/12/libreoffice.png)
|
||||
|
||||
**[上两周][1], 文档基金会带着它的开源LibreOffice生产力套件的又一个次版本回来了。**
|
||||
**[前一段时间][1], 文档基金会带着它的开源LibreOffice生产力套件的又一个小版本更新回来了。**
|
||||
|
||||
LibreOffice 4.3.4,新系列中的第四个次版本,是单独由修复好的bug构成的一个版本,不出乎意料地以点版本形式发行。
|
||||
LibreOffice 4.3.4,新系列中的第四个次版本,该版本只包含 BUG 修复,按计划发布了。
|
||||
|
||||
除了增加了即视感,基金会所说的在developers’ butterfly net上被揪出来并且修复的bug数量大概有:60个左右。
|
||||
可以看到的变化是,如基金会所说的在developers’ butterfly net上被揪出来并且修复的bug数量大概有:60个左右。
|
||||
|
||||
- 排序操作现在还是默认为旧的样式(Calc)
|
||||
- 排序操作现在还是默认为旧式风格(Calc)
|
||||
- 在预览后恢复焦点窗口(Impress)
|
||||
- 图表向导对话框不再是‘切除’式
|
||||
- 修复了记录改变时的字数统计问题 (Writer)
|
||||
@ -28,13 +29,13 @@ LibreOffice 4.3.4,新系列中的第四个次版本,是单独由修复好的
|
||||
|
||||
![Info bar coming in LibreOffice 4.4](http://www.omgubuntu.co.uk/wp-content/uploads/2014/11/libreoffice-infobar.jpg)
|
||||
|
||||
来自LibreOffice 4.4的信息栏
|
||||
*来自LibreOffice 4.4的信息栏*
|
||||
|
||||
LibreOffice 4.4应该给予大家多一点希望。
|
||||
LibreOffice 4.4应该会让大家更多期望。
|
||||
|
||||
[维基上讲述了][4]正在进行中的不间断大范围GUI调整,包括一个新的颜色选择器,重新设计的段落行距选择器和一个在凸显部位表示该文件是否为只读模式的信息栏。
|
||||
|
||||
虽然以上大规模的界面变动我知道一些桌面社区的抗议声不断,但是他们还是朝着正确的方向稳步前进。
|
||||
虽然我知道一些桌面社区对这些大规模的界面变动的抗议声不断,但是他们还是朝着正确的方向稳步前进。
|
||||
|
||||
要记住,在一些必要情况下,LibreOffice对于企业和机构来说是一款非常重要的软件。在外观和布局上有任何引人注目的修改都会引发一串连锁效应。
|
||||
|
||||
@ -46,7 +47,7 @@ via: http://www.omgubuntu.co.uk/2014/11/libreoffice-4-3-4-arrives-bundle-bug-fix
|
||||
|
||||
作者:[Joey-Elijah Sneddon][a]
|
||||
译者:[ZTinoZ](https://github.com/ZTinoZ)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -1,44 +1,44 @@
|
||||
安卓编年史
|
||||
================================================================================
|
||||
![从左到右:安卓0.9的主屏幕,添加的应用抽屉,以及快捷方式删除界面。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/09hom2e.png)
|
||||
从左到右:安卓0.9的主屏幕,添加的应用抽屉,以及快捷方式删除界面。
|
||||
Ron Amadeo供图
|
||||
|
||||
*从左到右:安卓0.9的主屏幕,添加的应用抽屉,以及快捷方式删除界面* [Ron Amadeo供图]
|
||||
|
||||
### Android 0.9, Beta——嘿,这看起来很眼熟! ###
|
||||
|
||||
Milestone 5发布后六个月,2008年8月, [安卓0.9发布][1]。尽管安卓0.5 milestone版看起来“很早期”,到现在距离1.0发布也只有两个月时间了。因此,安卓0.9被打上了“beta”的标签。在移动操作系统之路的另一边,苹果在一个月前已经发布了iPhone的第二代产品——iPhone 3G。第二代的iPhone搭载了第二代iPhone OS。苹果同样发布了App Store应用商店并且已经开始接受应用提交。谷歌在追赶的道路上还有很多事情要做。
|
||||
Milestone 5发布后六个月,2008年8月, [安卓0.9发布][1]。尽管安卓0.5 milestone版看起来“很早期”,而此时距离1.0发布也只有两个月时间了。因此,安卓0.9被打上了“beta”的标签。在移动操作系统之路的另一边,苹果在一个月前已经发布了iPhone的第二代产品——iPhone 3G。第二代的iPhone搭载了第二代iPhone OS。苹果同样发布了App Store应用商店并且已经开始接受应用提交。谷歌在追赶的道路上还有很多事情要做。
|
||||
|
||||
谷歌抛弃了很多在Milestone 5中引入的UI设计。所有设计都回炉重造进入全彩,白色方形图标背景被抛弃。尽管0.9还是一个模拟器版本,相比与安卓发布版来说看起来还是有点熟悉。安卓0.9有一个可用的桌面式主屏幕,一个特有的应用抽屉,多主屏,更多的应用程序,以及全功能(暂仅限第一方)小部件。
|
||||
谷歌抛弃了很多在Milestone 5中引入的UI设计。所有设计都回炉重造,采用全彩设计,白色方形图标背景被抛弃。尽管0.9还是一个模拟器版本,相比与安卓发布版来说看起来还是有点熟悉。安卓0.9有一个可用的桌面式主屏幕,一个特有的应用抽屉,多主屏,更多的应用程序,以及全功能(仅是它自身的)小部件。
|
||||
|
||||
Milestone 5中似乎没有计划支持安装21个以上的应用,但在安卓0.9中有一个垂直滚动的应用抽屉,可以通过屏幕底部的灰色标签打开。那时候,应用抽屉真的只是个抽屉。除了作为一个按钮使用,灰色标签还可以跟随你的手指被向上拉起,就像通知面板被拉下来那样。还额外添加了一些应用,像闹钟,计算器,图片,信息,以及照相机。
|
||||
|
||||
这是第一个可以完全自定义主屏幕的版本。长按应用或小部件可以拖动它们。你可以把应用从抽屉中拖出到主屏幕快捷方式或长按一个已经存在的主屏幕快捷方式来移动它。
|
||||
这是第一个可以完全自定义主屏幕的版本。长按应用或小部件可以拖动它们。你可以把应用从抽屉中拖出到主屏幕快捷方式,或长按一个已经存在的主屏幕快捷方式来移动它。
|
||||
|
||||
安卓0.9提醒我们谷歌那时候并不像今天这样优于设计。实际上,当时安卓的部分设计工作外包给了其它公司。你可以从时钟小插件看出一点端倪,它包含了“MALMO”字样,它是设计公司[The Astonishing Tribe][2]的所在地。
|
||||
安卓0.9提醒我们谷歌那时候并不像今天这样擅长设计。实际上,当时安卓的部分设计工作外包给了其它公司。你可以从时钟小插件看出一点端倪,它包含了“MALMO”字样,它是设计公司[The Astonishing Tribe][2]的所在地。
|
||||
|
||||
![安卓0.9的“添加到主屏幕”对话框。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/widgets.png)
|
||||
安卓0.9的“添加到主屏幕”对话框。
|
||||
Ron Amadeo供图
|
||||
|
||||
安卓0.9中只有三个小部件:时钟,相框和搜索。搜索小部件在列表中甚至没有一个自己的图标——它用的是图片的图标。也许这里面最有趣的选项是壁纸选项中的“购买的图片”——一个“在非智能机时购买铃声是个普遍的现象”的遗留产物。谷歌要么准备出售壁纸,要么在某时已经加入了一个运营商。这家公司最终从未实现这个计划。
|
||||
*安卓0.9的“添加到主屏幕”对话框* [Ron Amadeo供图]
|
||||
|
||||
安卓0.9中只有三个小部件:时钟,相框和搜索。搜索小部件在列表中甚至没有一个自己的图标——它用的是图片的图标。也许这里面最有趣的选项是壁纸选项中的“购买的图片”——一个“在非智能机时购买铃声是个普遍的现象”的遗留产物。谷歌要么准备出售壁纸,要么在某时已经加入了一个运营商。不过这家公司最终从未实现这个计划。
|
||||
|
||||
![小部件集合,打开的文件夹,重命名文件夹,以及一个复制/粘贴菜单。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/fcp.png)
|
||||
小部件集合,打开的文件夹,重命名文件夹,以及一个复制/粘贴菜单。
|
||||
Ron Amadeo供图
|
||||
|
||||
在上面左侧的截图展示了谷歌搜索和图片小部件。除了给你一个框进行输入之外搜索小部件做不了其它事情——它没有自动补全或是附加的UI界面。在框里输入并点击“Go”会启动浏览器。底部的一排图标显示了一些菜单中长按得到的“快捷方式”,它创建了图标并将应用启动到特定屏幕。独立的联系人,浏览器书签,以及音乐播放列表都是0.9中可以被添加到主屏幕上的快捷方式。
|
||||
*小部件集合,打开的文件夹,重命名文件夹,以及一个复制/粘贴菜单* [Ron Amadeo供图]
|
||||
|
||||
在上面左侧的截图展示了谷歌搜索和图片小部件。除了给你一个框进行输入之外,搜索小部件做不了其它事情——它没有自动补全或是附加的UI界面。在框里输入并点击“Go”会启动浏览器。底部的一排图标显示了一些菜单中通过长按得到的“快捷方式”,它会创建图标并将应用启动到特定屏幕。独立的联系人,浏览器书签,以及音乐播放列表都是0.9中可以被添加到主屏幕上的快捷方式。
|
||||
|
||||
“文件夹”是快捷方式标题下的一个选项,尽管它并不是任何东西的快捷方式。一旦创建了一个空文件夹,图标就可以被移动进去并重新排列。不像今天,那时候的文件夹里有什么并不反映在文件夹图标上,它一直是一个简单的,白色的,看起来空空的文件夹图标。
|
||||
|
||||
0.9同样是第一个拥有系统级别复制/粘贴支持的安卓版本。长按任意文本框会唤出一个对话框,从而让你保存或撤销剪贴板中的文本。iOS直到近两年后才支持复制/粘贴,所以在一段时间内,这是安卓的特色之一——以及许多网络争议的源头。
|
||||
|
||||
![从左到右:安卓0.9的新菜单,最近使用应用,电源选项,以及锁屏。](http://cdn.arstechnica.net/wp-content/uploads/2013/12/stuff.jpg)
|
||||
从左到右:安卓0.9的新菜单,最近使用应用,电源选项,以及锁屏。
|
||||
Ron Amadeo供图
|
||||
|
||||
安卓0.9真正地开始显示出了它的成熟。主屏幕有完整的菜单选项,包括设置(尽管它还不能正常运作)以及搜索按钮(因为当你搜索的时候谷歌喜欢)。从那时起菜单的设计便已经最终成型,直到安卓2.3它转变成了黑色。
|
||||
*从左到右:安卓0.9的新菜单,最近使用应用,电源选项,以及锁屏* [Ron Amadeo供图]
|
||||
|
||||
长按实体Home键会唤出一个3x2方格的最近使用应用菜单,这是一个一直持续到安卓3.0的设计。最近使用应用菜单会将背景显示模糊化,但这个设计用在这里显得有些奇怪,在其它弹窗比如“添加到主屏幕”对话框或是主屏幕文件夹视图之中并没有用到该设计。电源菜单至少包含在了背景模糊设计组之中,它的图标经过了重新设计,并且功能的对应名称更改得更容易让人接受。不过电源菜单图标缺乏填充,显得有些拥挤和不雅观。
|
||||
安卓0.9真正地开始显示出了它的成熟。主屏幕有完整的菜单选项,包括设置(尽管它还不能正常运作)以及搜索按钮(谷歌肯定很喜欢你去搜索)。从那时起菜单的设计便已经最终成型,直到安卓2.3它转变成了黑色。
|
||||
|
||||
长按实体Home键会唤出一个3x2方格的“最近使用应用”的菜单,这是一个一直持续到安卓3.0的设计。“最近使用应用”菜单会将背景显示模糊化,但这个设计用在这里显得有些奇怪,在其它弹窗比如“添加到主屏幕”对话框或是主屏幕文件夹视图之中并没有用到该设计。电源菜单至少包含在了背景模糊设计组之中,它的图标经过了重新设计,并且功能的对应名称更改得更容易让人接受。不过电源菜单图标缺乏填充,显得有些拥挤和不雅观。
|
||||
|
||||
安卓0.9以其锁屏为特色,虽然是非常基础的样子。黑色和灰色的锁屏没有任何屏幕解锁的选项——你需要点击实体菜单键。
|
||||
|
||||
@ -54,7 +54,7 @@ Ron Amadeo供图
|
||||
|
||||
via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/3/
|
||||
|
||||
译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID)
|
||||
译者:[alim0x](https://github.com/alim0x) 校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -1,3 +1,4 @@
|
||||
spccman translating
|
||||
Meet systemd, the controversial project taking over a Linux distro near you
|
||||
================================================================================
|
||||
![](http://core4.staticworld.net/images/article/2014/10/linux-attack-100528169-gallery.jpg)
|
||||
@ -87,4 +88,4 @@ via: http://www.pcworld.com/article/2841873/meet-systemd-the-controversial-proje
|
||||
[14]:http://www.pcworld.com/article/2836984/why-ubuntu-1410-utopic-unicorns-humble-changes-are-the-calm-before-the-storm.html
|
||||
[15]:http://www.maximumpc.com/article/news/linus_torvalds_tosses_f-bombs_middle_fingers_and_general_disdain_nvidia
|
||||
[16]:http://www.zdnet.com/linus-torvalds-and-others-on-linuxs-systemd-7000033847/
|
||||
[17]:https://wiki.debian.org/Debate/initsystem/systemd
|
||||
[17]:https://wiki.debian.org/Debate/initsystem/systemd
|
||||
|
@ -1,155 +0,0 @@
|
||||
翻译中 by coloka
|
||||
How to Debug CPU Regressions Using Flame Graphs
|
||||
================================================================================
|
||||
How quickly can you debug a CPU performance regression? If your environment is complex and changing quickly, this becomes challenging with existing tools. If it takes a week to root cause a regression, the code may have changed multiple times, and now you have new regressions to debug.
|
||||
|
||||
Debugging CPU usage is easy in most cases, thanks to [CPU flame graphs][1]. To debug regressions, I would load before and after flame graphs in separate browser tabs, and then blink between them like searching for [Pluto][2]. It got the job done, but I wondered about a better way.
|
||||
|
||||
Introducing **red/blue differential flame graphs**:
|
||||
|
||||
<p><object data="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-diff.svg" type="image/svg+xml" width=720 height=296>
|
||||
<img src="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-diff.svg" width=720 />
|
||||
</object></p>
|
||||
|
||||
This is an interactive SVG (direct [link][3]). The color shows **red for growth**, and **blue for reductions**.
|
||||
|
||||
The size and shape of the flame graph is the same as a CPU flame graph for the second profile (y-axis is stack depth, x-axis is population, and the width of each frame is proportional to its presence in the profile; the top edge is what's actually running on CPU, and everything beneath it is ancestry.)
|
||||
|
||||
In this example, a workload saw a CPU increase after a system update. Here's the CPU flame graph ([SVG][4]):
|
||||
|
||||
<p><object data="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-after.svg" type="image/svg+xml" width=720 height=296>
|
||||
<img src="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-after.svg" width=720 />
|
||||
</object></p>
|
||||
|
||||
Normally, the colors are picked at random to differentiate frames and towers. Red/blue differential flame graphs use color to show the difference between two profiles.
|
||||
|
||||
The deflate_slow() code and children were running more in the second profile, highlighted earlier as red frames. The cause was that ZFS compression was enabled in the system update, which it wasn't previously.
|
||||
|
||||
While this makes for a clear example, I didn't really need a differential flame graph for this one. Imagine tracking down subtle regressions, of less than 5%, and where the code is also more complex.
|
||||
|
||||
### Red/Blue Differential Flame Graphs ###
|
||||
|
||||
I've had many discussions about this for years, and finally wrote an implementation that I hope makes sense. It works like this:
|
||||
|
||||
1. Take stack profile 1.
|
||||
1. Take stack profile 2.
|
||||
1. Generate a flame graph using 2. (This sets the width of all frames using profile 2.)
|
||||
1. Colorize the flame graph using the "2 - 1" delta. If a frame appeared more times in 2, it is red, less times, it is blue. The saturation is relative to the delta.
|
||||
|
||||
The intent is for use with before & after profiles, such as for **non-regression testing** or benchmarking code changes. The flame graph is drawn using the "after" profile (such that the frame widths show the current CPU consumption), and then colorized by the delta to show how we got there.
|
||||
|
||||
The colors show the difference that function directly contributed (eg, being on-CPU), not its children.
|
||||
|
||||
### Generation ###
|
||||
|
||||
I've pushed a simple implementation to github (see [FlameGraph][5]), which includes a new program, difffolded.pl. To show how it works, here are the steps using Linux [perf_events][6] (you can use other profilers).
|
||||
|
||||
#### Collect profile 1: ####
|
||||
|
||||
# perf record -F 99 -a -g -- sleep 30
|
||||
# perf script > out.stacks1
|
||||
|
||||
#### Some time later (or after a code change), collect profile 2: ####
|
||||
|
||||
# perf record -F 99 -a -g -- sleep 30
|
||||
# perf script > out.stacks2
|
||||
|
||||
#### Now fold these profile files, and generate a differential flame graph: ####
|
||||
|
||||
$ git clone --depth 1 http://github.com/brendangregg/FlameGraph
|
||||
$ cd FlameGraph
|
||||
$ ./stackcollapse-perf.pl ../out.stacks1 > out.folded1
|
||||
$ ./stackcollapse-perf.pl ../out.stacks2 > out.folded2
|
||||
$ ./difffolded.pl out.folded1 out.folded2 | ./flamegraph.pl > diff2.svg
|
||||
|
||||
difffolded.pl operates on the "folded" style of stack profiles, which are generated by the stackcollapse collection of tools (see the files in [FlameGraph][7]). It emits a three column output, with the folded stack trace and two value columns, one for each profile. Eg:
|
||||
|
||||
func_a;func_b;func_c 31 33
|
||||
[...]
|
||||
|
||||
This would mean the stack composed of "func_a()->func_b()->func_c()" was seen 31 times in profile 1, and in 33 times in profile 2. If flamegraph.pl is handed this three column input, it will automatically generate a red/blue differential flame graph.
|
||||
|
||||
### Options ###
|
||||
|
||||
Some options you'll want to know about:
|
||||
|
||||
**difffolded.pl -n**: This normalizes the first profile count to match the second. If you don't do this, and take profiles at different times of day, then all the stack counts will naturally differ due to varied load. Everything will look red if the load increased, or blue if load decreased. The -n option balances the first profile, so you get the full red/blue spectrum.
|
||||
|
||||
**difffolded.pl -x**: This strips hex addresses. Sometimes profilers can't translate addresses into symbols, and include raw hex addresses. If these addresses differ between profiles, then they'll be shown as differences, when in fact the executed function was the same. Fix with -x.
|
||||
|
||||
**flamegraph.pl --negate**: Inverts the red/blue scale. See the next section.
|
||||
|
||||
### Negation ###
|
||||
|
||||
While my red/blue differential flame graphs are useful, there is a problem: if code paths vanish completely in the second profile, then there's nothing to color blue. You'll be looking at the current CPU usage, but missing information on how we got there.
|
||||
|
||||
One solution is to reverse the order of the profiles and draw a negated flame graph differential. Eg:
|
||||
|
||||
<p><object data="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-negated.svg" type="image/svg+xml" width=720 height=296>
|
||||
<img src="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-negated.svg" width=720 />
|
||||
</object></p>
|
||||
|
||||
Now the widths show the first profile, and the colors show what will happen. The blue highlighting on the right shows we're about to spend a lot less time in the CPU idle path. (Note that I usually filter out cpu_idle from the folded files, by including a grep -v cpu_idle.)
|
||||
|
||||
This also highlights the vanishing code problem (or rather, doesn't highlight), as since compression wasn't enabled in the "before" profile, there is nothing to color red.
|
||||
|
||||
This was generated using:
|
||||
|
||||
$ ./difffolded.pl out.folded2 out.folded1 | ./flamegraph.pl --negate > diff1.svg
|
||||
|
||||
Which, along with the earlier diff2.svg, gives us:
|
||||
|
||||
- **diff1.svg**: widths show the before profile, colored by what WILL happen
|
||||
- **diff2.svg**: widths show the after profile, colored by what DID happen
|
||||
|
||||
If I were to automate this for non-regression testing, I'd generate and show both side by side.
|
||||
|
||||
### CPI Flame Graphs ###
|
||||
|
||||
I first used this code for my [CPI flame graphs][8], where instead of doing a difference between two profiles, I showed the difference between CPU cycles and stall cycles, which highlights what the CPUs were doing.
|
||||
|
||||
### Other Differential Flame Graphs ###
|
||||
|
||||
[![](http://www.brendangregg.com/blog/images/2014/rm-flamegraph-diff.jpg)][9]
|
||||
|
||||
There's other ways flame graph differentials can be done. [Robert Mustacchi][10] experimented with [differentials][11] a while ago, and used an approach similar to a colored code review: only the difference is shown, colored red for added (increased) code paths, and blue for removed (decreased) code paths. The key difference is that the frame widths are now relative to the size of the difference only. An example is on the right. It's a good idea, but in practice I found it a bit weird, and hard to follow without the bigger picture context: a standard flame graph showing the full profile.
|
||||
|
||||
[![](http://www.brendangregg.com/blog/images/2014/corpaul-flamegraph-diff.png)][12]
|
||||
|
||||
Cor-Paul Bezemer has created [flamegraphdiff][13], which shows the profile difference using three flame graphs at the same time: the standard before and after flame graphs, and then a differential flame graph where the widths show the difference. See the [example][14]. You can mouse-over frames in the differential, which highlights frames in all profiles. This solves the context problem, since you can see the standard flame graph profiles.
|
||||
|
||||
My red/blue flame graphs, Robert's hue differential, and Cor-Paul's triple-view, all have their strengths. These could be combined: the top two flame graphs in Cor-Paul's view could be my diff1.svg and diff2.svg. Then the bottom flame graph colored using Robert's approach. For consistency, the bottom flame graph could use the same palette range as mine: blue->white->red.
|
||||
|
||||
Flame graphs are spreading, and are now used by many companies. I wouldn't be surprised if there were already other implementations of flame graph differentials I didn't know about. (Leave a comment!)
|
||||
|
||||
### Conclusion ###
|
||||
|
||||
If you have problems with performance regressions, red/blue differential flame graphs may be the quickest way to find the root cause. These take a normal flame graph and then use colors to show the difference between two profiles: red for greater samples, and blue for fewer. The size and shape of the flame graph shows the current ("after") profile, so that you can easily see where the samples are based on the widths, and then the colors show how we got there: the profile difference.
|
||||
|
||||
These differential flame graphs could also be generated by a nightly non-regression test suite, so that performance regressions can be quickly debugged after the fact.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.brendangregg.com/blog/2014-11-09/differential-flame-graphs.html
|
||||
|
||||
作者:[Brendan Gregg][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://www.linux.com/community/forums/person/60160
|
||||
[1]:http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html
|
||||
[2]:http://en.wikipedia.org/wiki/Planets_beyond_Neptune#Discovery_of_Pluto
|
||||
[3]:http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-diff.svg
|
||||
[4]:http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-after.svg
|
||||
[5]:https://github.com/brendangregg/FlameGraph
|
||||
[6]:http://www.brendangregg.com/perf.html
|
||||
[7]:https://github.com/brendangregg/FlameGraph
|
||||
[8]:http://www.brendangregg.com/blog/2014-10-31/cpi-flame-graphs.html
|
||||
[9]:http://www.slideshare.net/brendangregg/blazing-performance-with-flame-graphs/167
|
||||
[10]:http://dtrace.org/blogs/rm
|
||||
[11]:http://www.slideshare.net/brendangregg/blazing-performance-with-flame-graphs/167
|
||||
[12]:https://github.com/corpaul/flamegraphdiff
|
||||
[13]:http://corpaul.github.io/flamegraphdiff/
|
||||
[14]:http://corpaul.github.io/flamegraphdiff/demos/dispersy/dispersy_diff.html
|
@ -1,3 +1,4 @@
|
||||
翻译中 by coloka
|
||||
Restricting process CPU usage using nice, cpulimit, and cgroups
|
||||
================================================================================
|
||||
注:本文中的图片似乎都需要翻墙后才能看到,发布的时候注意
|
||||
|
@ -1,3 +1,4 @@
|
||||
Translating by ZTinoZ
|
||||
Linux FAQs with Answers--How to install phpMyAdmin on CentOS
|
||||
================================================================================
|
||||
> **Question**: I am running a MySQL/MariaDB server on CentOS, and I would like to manage its databases via web-based interface using phpMyAdmin. What is a proper way to install phpMyAdmin on CentOS?
|
||||
@ -176,4 +177,4 @@ via: http://ask.xmodulo.com/install-phpmyadmin-centos.html
|
||||
[17]:
|
||||
[18]:
|
||||
[19]:
|
||||
[20]:
|
||||
[20]:
|
||||
|
@ -1,3 +1,4 @@
|
||||
(translating by runningwater)
|
||||
10 SCP Commands to Transfer Files/Folders in Linux
|
||||
================================================================================
|
||||
Linux administrator should be familiar with **CLI** environment. Since **GUI** mode in Linux servers is not a common to be installed. **SSH** may the most popular protocol to enable Linux administrator to manage the servers via remote in secure way. Built-in with **SSH** command there is **SCP** command. **SCP** is used to copy file(s) between servers in secure way.
|
||||
@ -230,7 +231,7 @@ That’s all about **SCP**. You can see **man pages** of **SCP** for more detail
|
||||
via: http://www.tecmint.com/scp-commands-examples/
|
||||
|
||||
作者:[Pungki Arianto][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
译者:[runningwater](https://github.com/runningwater)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
@ -1,61 +0,0 @@
|
||||
How To Make Raspberry Pi Boot In To GUI By Default
|
||||
================================================================================
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/raspberry_pi_gui.jpg)
|
||||
|
||||
It’s been some times since I bought Raspberry Pi but honestly, I hardly did anything with it. Since my Dell Ultrabook is in Dell service center (for weeks now), I started using Raspberry Pi once again as an alternative.
|
||||
|
||||
I have previously written about [how to install Raspbian OS on a SD card in Ubuntu][1]. I did the same once again and installed Raspberry Pi once again. Only thing which I missed at the first run was to set up the GUI. And thus when I booted in Raspberry Pi again, I landed in command line directly. So how to you run Raspbian GUI then?
|
||||
|
||||
### Set up Raspbian GUI boot ###
|
||||
|
||||
When you install Raspbian for the first time, it indeed present several option to configure for the first use. But since I did not pay attention in a hurry, I just tabbed finish on that screen. If you faced the same situation and end up with just command line in Raspbian OS, no need to despair, it is very easy to set up Raspberry Pi to boot in GUI by default. Let’s see how to do it.
|
||||
|
||||
### Step 1: ###
|
||||
|
||||
When you are in the command line, log in with default user password (if you did not change it). Default user for Raspbian OS is pi and the default password should be raspberry.
|
||||
|
||||
#### Step 2: ####
|
||||
|
||||
When you are logged in, run the following command:
|
||||
|
||||
sudo raspi-config
|
||||
|
||||
This command will open up the Raspberry Pi configuration, the same which we saw in the first boot.
|
||||
|
||||
#### Step 3: ####
|
||||
|
||||
In this configuration screen, look for the option of **Enable Boot to Desktop/Scratch**. Select it using a combination of arrow, tab and/or enter keys (I forgot which ones are used).
|
||||
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Raspbian_Gui_setup.jpg)
|
||||
|
||||
#### Step 4: ####
|
||||
|
||||
In the next screen, choose **Desktop Login as user ‘Pi’ at the graphical desktop.
|
||||
**
|
||||
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Raspbian_Gui_setup_1.jpg)
|
||||
|
||||
#### Step 5: ####
|
||||
|
||||
You’ll be asked to reboot afterwards.
|
||||
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Raspbian_Gui_setup_2.jpg)
|
||||
|
||||
On the next boot, you will be logged in to LXDE desktop environment. And you can enjoy the GUI experience with Raspberry Pi.
|
||||
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/raspbian-welcome-screen-gui.jpeg)
|
||||
|
||||
I hope this tutorial helped you to set up your Raspberry Pi to boot in GUI by default. Feel free to drop your questions and suggestions in the comment box.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://itsfoss.com/raspberry-pi-gui-boot/
|
||||
|
||||
作者:[Abhishek][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://itsfoss.com/author/Abhishek/
|
||||
[1]:http://itsfoss.com/tutorial-how-to-install-raspberry-pi-os-raspbian-wheezy/
|
@ -1,87 +0,0 @@
|
||||
How to visualize memory usage on Linux
|
||||
================================================================================
|
||||
Lack of sufficient physical memory can significantly hamper the performance of Linux desktop and server environments. When your desktop is sluggish, one of the first things to do is to free up RAMs. Memory usage is even more critical in multi-user shared hosting or mission-critical server environments, where different users or application threads constantly compete for more memory.
|
||||
|
||||
When it comes to monitoring any type of system resources such as memory or CPUs, visualization is an effective means to help understand quickly how they are consumed by different processes and users. In this tutorial, I describe **how to visualize memory usage in Linux environment** using a command-line tool called [smem][1].
|
||||
|
||||
### Physical Memory Usage: RSS vs. PSS vs. USS ###
|
||||
|
||||
In the presence of virtual memory abstraction, accurately quantifying physical memory usage of a process is actually not straightforward. The virtual memory size of a process is not meaningful because it does not tell how much of it is actually allocated physical memory.
|
||||
|
||||
**Resident set size (RSS)**, reported by top command, is one popular metric which captures what portion of a process' reported memory is residing in RAM. However, aggregating RSS of existing processes can easily overestimate the overall physical memory usage of the Linux system because the same physical memory page can be shared by different processes. **Proportional set size (PSS)** is a more accurate measurement of effective memory usage of Linux processes since PSS properly discounts the memory page shared by more than one process. **Unique set size (USS)** of a process is a subset of the process' PSS, which is not shared by any other processes.
|
||||
|
||||
### Install Smem on Linux ###
|
||||
|
||||
The command-line tool smem can generate a variety of reports related to memory PSS/USS usage by pulling information from /proc. It comes with built-in graphical chart generation capabilities, so one can easily visualize overall memory consumption status.
|
||||
|
||||
#### Install Smem on Debian, Ubuntu or Linux Mint ####
|
||||
|
||||
$ sudo apt-get install smem
|
||||
|
||||
#### Install Smem on Fedora or CentOS/RHEL ####
|
||||
|
||||
On CentOS/RHEL, you need to [enable][2] EPEL repository first.
|
||||
|
||||
$ sudo yum install smem python-matplotlib
|
||||
|
||||
### Check Memory Usage with Smem ###
|
||||
|
||||
When you run smem as a unprivileged user, it will report physical memory usage of every process launched by the current user, in an increasing order of PSS.
|
||||
|
||||
$ smem
|
||||
|
||||
![](https://farm8.staticflickr.com/7498/15801819892_d017280595_z.jpg)
|
||||
|
||||
If you want to check the overall system memory usage for all users, run smem as the root.
|
||||
|
||||
$ sudo smem
|
||||
|
||||
![](https://farm9.staticflickr.com/8635/15776587626_1de74c4bcd_z.jpg)
|
||||
|
||||
To view per-user memory usage:
|
||||
|
||||
$ sudo smem -u
|
||||
|
||||
![](https://farm9.staticflickr.com/8543/15798375491_510698d98f_z.jpg)
|
||||
|
||||
smem allows you to filter memory usage results based on mapping, processes or users in the following format:
|
||||
|
||||
- -M <mapping-filtering-regular-expression>
|
||||
- -P <process-filtering-regular-expression>
|
||||
- -U <user-filtering-regular-expression>
|
||||
|
||||
For a complete usage of smem, refer to its man page.
|
||||
|
||||
### Visualize Memory Usage with Smem ###
|
||||
|
||||
Visualized reports are often easier to read to identify the memory hogs of your system quickly. smem supports two kinds of graphical reports for memory usage visualization: bar and pie graphs.
|
||||
|
||||
Here are examples of memory usage visualization.
|
||||
|
||||
The following command will generate a bar graph that visualizes the PSS/USS memory usage of a user alice.
|
||||
|
||||
$ sudo smem --bar name -c "pss uss" -U alice
|
||||
|
||||
![](https://farm6.staticflickr.com/5616/15614838448_640e850cd8_z.jpg)
|
||||
|
||||
The next command will plot a pie graph of the overall PSS memory usage of different processes.
|
||||
|
||||
$ sudo smem --pie name -c "pss"
|
||||
|
||||
![](https://farm8.staticflickr.com/7466/15614838428_eed7426cfe_z.jpg)
|
||||
|
||||
As a summary, smem is a simple and effective memory analysis tool that comes in handy in various circumstances. Using its formatted output, you can run smem to identify any memory issues and take an action in an automatic fashion. If you know of any good memory monitoring tool, share it in the comment.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://xmodulo.com/visualize-memory-usage-linux.html
|
||||
|
||||
作者:[Dan Nanni][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://xmodulo.com/author/nanni
|
||||
[1]:http://www.selenic.com/smem/
|
||||
[2]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
|
@ -0,0 +1,149 @@
|
||||
使用火焰图分析CPU性能回退问题
|
||||
================================================================================
|
||||
你能快速定位CPU性能回退的问题么? 如果你的工作环境非常复杂且变化快速,那么使用现有的工具是来定位这类问题是很具有挑战性的。当你花掉数周时间把根因找到时,代码已经又变更了好几轮,新的性能问题又冒了出来。
|
||||
|
||||
辛亏有了[CPU火焰图][1](flame graphs),CPU使用率的问题一般都比较好定位。但要处理性能回退问题,就要在修改前后的火焰图间,不断切换对比,来找出问题所在,这感觉就是像在太阳系中搜寻冥王星。虽然,这种方法可以解决问题,但我觉得应该会有更好的办法。
|
||||
|
||||
所以,下面就隆重介绍**红/蓝差分火焰图(red/blue differential flame graphs)**:
|
||||
|
||||
<p><object data="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-diff.svg" type="image/svg+xml" width=720 height=296>
|
||||
<img src="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-diff.svg" width=720 />
|
||||
</object></p>
|
||||
|
||||
上面是一副交互式SVG格式图片([链接][3])。图中使用了两种颜色来表示状态,**红色表示增长**,**蓝色表示衰减**。
|
||||
|
||||
这张火焰图中各火焰的形状和大小都是和第二次抓取的profile文件对应的CPU火焰图是相同的。(其中,y轴表示栈的深度,x轴表示样本的总数,栈帧的宽度表示了profile文件中该函数出现的比例,最顶层表示正在运行的函数,再往下就是调用它的栈)
|
||||
|
||||
在下面这个案例展示了,在系统升级后,一个工作负载的CPU使用率上升了。 下面是对应的CPU火焰图([SVG格式][4])
|
||||
|
||||
<p><object data="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-after.svg" type="image/svg+xml" width=720 height=296>
|
||||
<img src="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-after.svg" width=720 />
|
||||
</object></p>
|
||||
|
||||
通常,在标准的火焰图中栈帧和栈塔的颜色是随机选择的。 而在红/蓝差分火焰图中,使用不同的颜色来表示两个profile文件中的差异部分。
|
||||
|
||||
在第二个profile中deflate_slow()函数以及它后续调用的函数运行的次数要比前一次更多,所以在上图中这个栈帧被标为了红色。可以看出问题的原因是ZFS的压缩功能被使能了,而在系统升级前这项功能是关闭的。
|
||||
|
||||
这个例子过于简单,我甚至可以不用差分火焰图也能分析出来。但想象一下,如果是在分析一个微小的性能下降,比如说小于5%,而且代码也更加复杂的时候,问题就为那么好处理了。
|
||||
|
||||
### 红/蓝差分火焰图 ###
|
||||
|
||||
这个事情我已经讨论了好几年了,最终我自己编写了一个我个人认为有价值的实现。它的工作原理是这样的:
|
||||
|
||||
1. 抓取修改前的堆栈profile1文件
|
||||
1. 抓取修改后的堆栈profile2文件
|
||||
1. 使用profile2来生成火焰图。(这样栈帧的宽度就是以profile2文件为基准的)
|
||||
1. 使用“2 - 1”的差异来对火焰图重新上色。上色的原则是,如果栈帧在profile2中出现出现的次数更多,则标为红色,否则标为蓝色。色彩是根据修改前后的差异来填充的。
|
||||
|
||||
这样做的目的是,同时使用了修改前后的profile文件进行对比,在进行功能验证测试或者评估代码修改对性能的影响时,会非常有用。新的火焰图是基于修改后的profile文件生成(所以栈帧的宽度仍然显示了当前的CPU消耗),通过颜色的对比,就可以了解到系统性能差异的原因。
|
||||
|
||||
只有对性能产生直接影响的函数才会标注颜色(比如说,正在运行的函数),它所调用的子函数不会重复标注。
|
||||
|
||||
### 生成红/蓝差分火焰图 ###
|
||||
|
||||
我已经把一个简单的代码实现推送到github上(见[火焰图][5]),其中新增了一个程序脚本,difffolded.pl。为了展示工具是如何工作的,用Linux [perf_events][6] 来演示一下操作步骤。(你也可以使用其他profiler)
|
||||
|
||||
#### 抓取修改前的profile 1文件: ####
|
||||
|
||||
# perf record -F 99 -a -g -- sleep 30
|
||||
# perf script > out.stacks1
|
||||
|
||||
#### 一段时间后 (或者程序代码修改后), 抓取profile 2文件: ####
|
||||
|
||||
# perf record -F 99 -a -g -- sleep 30
|
||||
# perf script > out.stacks2
|
||||
|
||||
#### 现在将 profile 文件进行折叠(fold), 再生成差分火焰图: ####
|
||||
|
||||
$ git clone --depth 1 http://github.com/brendangregg/FlameGraph
|
||||
$ cd FlameGraph
|
||||
$ ./stackcollapse-perf.pl ../out.stacks1 > out.folded1
|
||||
$ ./stackcollapse-perf.pl ../out.stacks2 > out.folded2
|
||||
$ ./difffolded.pl out.folded1 out.folded2 | ./flamegraph.pl > diff2.svg
|
||||
|
||||
difffolded.p只能对“折叠”过的堆栈profile文件进行操作,折叠操作是由前面的stackcollapse系列脚本完成的。(见链接[火焰图][7])。 脚本共输出3列数据,其中一列代表折叠的调用栈,另两列为修改前后profile文件的统计数据。
|
||||
|
||||
func_a;func_b;func_c 31 33
|
||||
[...]
|
||||
|
||||
在上面的例子中"func_a()->func_b()->func_c()" 代表调用栈,这个调用栈在profile1文件中共出现了31次,在profile2文件中共出现了33次。然后,使用flamegraph.pl脚本处理这3列数据,会自动生成一张红/蓝差分火焰图。
|
||||
|
||||
### 其他选项 ###
|
||||
再介绍一些有用的选项:
|
||||
**difffolded.pl -n**:这个选项会把两个profile文件中的数据规范化,使其能相互匹配上。如果你不这样做,抓取到所有栈的统计值肯定会不相同,因为抓取的时间和CPU负载都不同。这样的话,看上去要么就是一片红(负载增加),要么就是一片蓝(负载下降)。-n选项对第一个profile文件进行了平衡,这样你就可以得到完整红/蓝图谱。
|
||||
|
||||
**difffolded.pl -x**: 这个选项会把16进制的地址删掉。 profiler时常会无法将地址转换为符号,这样的话栈里就会有16进制地址。如果这个地址在两个profile文件中不同,这两个栈就会认为是不同的栈,而实际上它们是相同的。遇到这样的问题就用-x选项搞定。
|
||||
|
||||
**flamegraph.pl --negate**: 用于颠倒红/蓝配色。 在下面的章节中,会用到这个功能。
|
||||
|
||||
### 不足之处 ###
|
||||
虽然我的红/蓝差分火焰图很有用,但实际上还是有一个问题:如果一个代码执行路径完全消失了,那么在火焰图中就找不到地方来标注蓝色。你只能看到当前的CPU使用情况,而不知道为什么会变成这样。
|
||||
|
||||
一个办法是,将对比顺序颠倒,画一个相反的差分火焰图。例如:
|
||||
|
||||
<p><object data="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-negated.svg" type="image/svg+xml" width=720 height=296>
|
||||
<img src="http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-negated.svg" width=720 />
|
||||
</object></p>
|
||||
|
||||
上面的火焰图是以修改前的profile文件为基准,颜色表达了将要发生的情况。右边使用蓝色高亮显示的部分,从中可以看出修改后CPU Idle消耗的CPU时间会变少。(其实,我通常会把cpu_idle给过滤掉,使用命令行grep -v cpu_idle)
|
||||
|
||||
图中把消失的代码也突显了出来(或者应该是说,没有突显),因为修改前并没有使能压缩功能,所以它没有出现在修改前的profile文件了,也就没有了被表为红色的部分。
|
||||
|
||||
下面是对应的命令行:
|
||||
|
||||
$ ./difffolded.pl out.folded2 out.folded1 | ./flamegraph.pl --negate > diff1.svg
|
||||
|
||||
这样,把前面生成diff2.svg一并使用,我们就能得到:
|
||||
|
||||
- **diff1.svg**: 宽度是以修改前profile文件为基准, 颜色表明将要发生的情况
|
||||
- **diff2.svg**: 宽度以修改后的profile文件为基准,颜色表明已经发生的情况
|
||||
|
||||
如果是在做功能验证测试,我会同时生成这两张图。
|
||||
|
||||
### CPI 火焰图 ###
|
||||
这些脚本开始是被使用在[CPI火焰图][8]的分析上。与比较修改前后的profile文件不同,在分析CPI火焰图时,可以分析CPU工作周期与停顿周期的差异变化,这样可以凸显出CPU的工作状态来。
|
||||
|
||||
### 其他的差分火焰图 ###
|
||||
|
||||
[![](http://www.brendangregg.com/blog/images/2014/rm-flamegraph-diff.jpg)][9]
|
||||
|
||||
也有其他人做过类似的工作。[Robert Mustacchi][10]在不久前也做了一些尝试,他使用的方法类似于代码检视时的标色风格:只显示了差异的部分,红色表示新增(上升)的代码路径,蓝色表示删除(下降)的代码路径。一个关键的差别是栈帧的宽度只体现了差异的样本数。右边是一个例子。这个是个很好的主意,但在实际使用中会感觉有点奇怪,因为缺失了完整profile文件的上下文作为背景,这张图显得有些难以理解。
|
||||
|
||||
[![](http://www.brendangregg.com/blog/images/2014/corpaul-flamegraph-diff.png)][12]
|
||||
Cor-Paul Bezemer也制作了一种差分显示方法[flamegraphdiff][13],他同时将3张火焰图放在同一张图中,修改前后的标准火焰图各一张,下面再补充了一张差分火焰图,但栈帧宽度也是差异的样本数。 上图是一个[例子][14]。在差分图中将鼠标移到栈帧上,3张图中同一栈帧都会被高亮显示。这种方法中补充了两张标准的火焰图,因此解决了上下文的问题。
|
||||
|
||||
我们3人的差分火焰图,都各有所长。三者可以结合起来使用:Cor-Paul方法中上方的两张图,可以用我的diff1.svg 和 diff2.svg。下方的火焰图可以用Robert的方式。为保持一致性,下方的火焰图可以用我的着色方式:蓝->白->红。
|
||||
|
||||
火焰图正在广泛传播中,现在很多公司都在使用它。如果大家知道有其他的实现差分火焰图的方式,我也不会感到惊讶。(请在评论中告诉我)
|
||||
|
||||
### 结论 ###
|
||||
|
||||
如果你遇到了性能回退问题,红/蓝差分火焰图是找到根因的最快方式。这种方式抓取了两张普通的火焰图,然后进行对比,并对差异部分进行标色:红色表示上升,蓝色表示下降。 差分火焰图是以当前(“修改后”)的profile文件作为基准,形状和大小都保持不变。因此你通过色彩的差异就能够很直观的找到差异部分,且可以看出为什么会有这样的差异。
|
||||
|
||||
差分火焰图可以应用到项目的每日构建中,这样性能回退的问题就可以及时地被发现和修正。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.brendangregg.com/blog/2014-11-09/differential-flame-graphs.html
|
||||
|
||||
作者:[Brendan Gregg][a]
|
||||
译者:[coloka](https://github.com/coloka)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://www.linux.com/community/forums/person/60160
|
||||
[1]:http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html
|
||||
[2]:http://en.wikipedia.org/wiki/Planets_beyond_Neptune#Discovery_of_Pluto
|
||||
[3]:http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-diff.svg
|
||||
[4]:http://www.brendangregg.com/blog/images/2014/zfs-flamegraph-after.svg
|
||||
[5]:https://github.com/brendangregg/FlameGraph
|
||||
[6]:http://www.brendangregg.com/perf.html
|
||||
[7]:https://github.com/brendangregg/FlameGraph
|
||||
[8]:http://www.brendangregg.com/blog/2014-10-31/cpi-flame-graphs.html
|
||||
[9]:http://www.slideshare.net/brendangregg/blazing-performance-with-flame-graphs/167
|
||||
[10]:http://dtrace.org/blogs/rm
|
||||
[11]:http://www.slideshare.net/brendangregg/blazing-performance-with-flame-graphs/167
|
||||
[12]:https://github.com/corpaul/flamegraphdiff
|
||||
[13]:http://corpaul.github.io/flamegraphdiff/
|
||||
[14]:http://corpaul.github.io/flamegraphdiff/demos/dispersy/dispersy_diff.html
|
@ -0,0 +1,61 @@
|
||||
如何让树莓派默认以图形界面启动
|
||||
================================================================================
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/raspberry_pi_gui.jpg)
|
||||
|
||||
我买树莓派已经有一段时间了,但是实话说我几乎还没有用它做过什么事情。自从我的Dell超级本送到Dell服务中心后(已经有数星期了),我再次开始使用树莓派作为替代。
|
||||
|
||||
我之前已经写过一篇[如何在Ubuntu中在SD卡上安装Raspbian系统][1]。我也重装了一次树莓派。第一次启动的时候我漏掉了一件事情就是设置图形界面。这样当我再次启动树莓派的时候,我直接进入了命令行。我该接下来如何运行Respbian图形界面呢?
|
||||
|
||||
### 设置Raspbian图形启动 ###
|
||||
|
||||
入Raspbian系统的命令行界面,不用失望,因为很容易设置树莓派以图形界面启动。让我们看看该如何做。
|
||||
|
||||
### 第一步: ###
|
||||
|
||||
当你在命令行时,以默认的用户名和密码登录(如果你没有修改过)。Raspbian的默认用户是pi,默认密码应该是raspberry。
|
||||
|
||||
#### 第二步: ####
|
||||
|
||||
当你登录后,运行下面的命令:
|
||||
|
||||
sudo raspi-config
|
||||
|
||||
这条命令会打开树莓派的配置,就像我们第一次启动看到的那样。
|
||||
|
||||
#### 第三步: ####
|
||||
|
||||
在这个配置界面下, 寻找**Enable Boot to Desktop/Scratch**这个选项。用箭头、tab和/或者回车键的组合来选中它(我忘记该使用哪一个了)。
|
||||
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Raspbian_Gui_setup.jpg)
|
||||
|
||||
#### 第四步: ####
|
||||
|
||||
下一屏中,选择**Desktop Login as user ‘Pi’ at the graphical desktop.
|
||||
**
|
||||
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Raspbian_Gui_setup_1.jpg)
|
||||
|
||||
#### 第五步: ####
|
||||
|
||||
接下来你会被要求重启。
|
||||
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/Raspbian_Gui_setup_2.jpg)
|
||||
|
||||
下次启动后,你会登录到LXDE桌面环境。接下来你就可以享受树莓派的图形界面了。
|
||||
|
||||
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/11/raspbian-welcome-screen-gui.jpeg)
|
||||
|
||||
我希望这边教程能够帮助你设置你的树莓派默认以图形界面启动。欢迎在评论区留下你的问题和建议。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://itsfoss.com/raspberry-pi-gui-boot/
|
||||
|
||||
作者:[Abhishek][a]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://itsfoss.com/author/Abhishek/
|
||||
[1]:http://itsfoss.com/tutorial-how-to-install-raspberry-pi-os-raspbian-wheezy/
|
@ -0,0 +1,87 @@
|
||||
图形化显示Linux内存使用情况
|
||||
================================================================================
|
||||
物理内存不足对Linux桌面系统和服务器系统的性能影响都很大。当你的电脑变慢时,要做的第一件事就是释放内存。尤其是在多用户环境以及执行关键任务的服务器环境下,内存消耗会变得更加关键,因为多个用户和应用线程会同时争用更多的内存空间。
|
||||
|
||||
如果要监测系统内各种资源的使用情况(比如说CPU或内存),图形化显示是一种高效的方法,通过图形界面可以快速分析各用户和进程的资源消耗情况。本教程将给大家介绍**在linux下图形化分析内存使用情况**的方法,使用到命令行工具是[smem][1].
|
||||
|
||||
### 物理内存使用情况: RSS vs. PSS vs. USS ###
|
||||
|
||||
由于Linux使用到了虚拟内存(virtual memory),因此要准确的计算一个进程实际使用的物理内存就不是那么简单。 只知道进程的虚拟内存大小也并没有太大的用处,因为还是无法获取到实际分配的物理内存大小。
|
||||
|
||||
**RSS(Resident set size)**,使用top命令可以查询到,是最常用的内存指标,表示进程占用的物理内存大小。但是,将各进程的RSS值相加,通常会超出整个系统的内存消耗,这是因为RSS中包含了各进程间共享的内存。**PSS(Proportional set size)**会更准确一些,它将共享内存的大小进行平均后,再分摊到各进程上去。**USS(Unique set size )**是PSS的自己,它只计算了进程独自占用的内存大小,不包含任何共享的部分。
|
||||
|
||||
### 安装Smem ###
|
||||
|
||||
smem是一个能够生成多种内存耗用报告的命令行工具,它从/proc文件系统中提取各进程的PSS/USS信息,并进行汇总输出。它还内建了图表的生成能力,所以能够方便地分析整个系统的内存使用情况。
|
||||
|
||||
#### 在Debian, Ubuntu 或 Linux Mint 上安装smem ####
|
||||
|
||||
$ sudo apt-get install smem
|
||||
|
||||
#### 在Fedora 或 CentOS/RHEL上安装Smem ####
|
||||
|
||||
在CentOS/RHEL上,你首先得[使能][2]EPEL仓。
|
||||
|
||||
$ sudo yum install smem python-matplotlib
|
||||
|
||||
### 使用smem检查内存使用情况 ###
|
||||
|
||||
你可以在非特权模式下使用smem,它能够显示当前用户运行的所有进程的内存使用情况,并按照PSS的大小进行排序。
|
||||
|
||||
$ smem
|
||||
|
||||
![](https://farm8.staticflickr.com/7498/15801819892_d017280595_z.jpg)
|
||||
|
||||
如有你想得到整个系统中所有用户的内存使用情况,就需要使用root权限来运行smem。
|
||||
|
||||
$ sudo smem
|
||||
|
||||
![](https://farm9.staticflickr.com/8635/15776587626_1de74c4bcd_z.jpg)
|
||||
|
||||
也可以按用户维度来输出报告:
|
||||
|
||||
$ sudo smem -u
|
||||
|
||||
![](https://farm9.staticflickr.com/8543/15798375491_510698d98f_z.jpg)
|
||||
|
||||
smem提供了以下选项来对输出结果进行筛选,支持按映射方式(mapping),进程和用户三个维度的筛选:
|
||||
|
||||
- -M <mapping-filtering-regular-expression>
|
||||
- -P <process-filtering-regular-expression>
|
||||
- -U <user-filtering-regular-expression>
|
||||
|
||||
想了解smem更多的使用方式,可以查询用户手册(man page)。
|
||||
|
||||
### 使用smem图形化显示内存使用情况 ###
|
||||
|
||||
图形化的报告使用起来会更加方便快捷。smem支持支持两种格式的图形显示方式:直方图和饼图。
|
||||
|
||||
下面是一些图形化显示的实例。
|
||||
|
||||
下面的命令行会基于PSS/RSS值,生成直方图,以用户alice为例。
|
||||
|
||||
$ sudo smem --bar name -c "pss uss" -U alice
|
||||
|
||||
![](https://farm6.staticflickr.com/5616/15614838448_640e850cd8_z.jpg)
|
||||
|
||||
这个例子会生成一张饼图,图中显示了系统中各进程的PSS内存使用量:
|
||||
|
||||
$ sudo smem --pie name -c "pss"
|
||||
|
||||
![](https://farm8.staticflickr.com/7466/15614838428_eed7426cfe_z.jpg)
|
||||
|
||||
概括来说,smem是一个方便易用的内存分析工具。利用smem的格式化输出,你可以对内存使用报告进行自动化分析,并执行一些自动化的处理措施。如果你还知道其他的一些优秀的内存检测工具,请在留言区告诉我。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://xmodulo.com/visualize-memory-usage-linux.html
|
||||
|
||||
作者:[Dan Nanni][a]
|
||||
译者:[coloka](https://github.com/coloka)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://xmodulo.com/author/nanni
|
||||
[1]:http://www.selenic.com/smem/
|
||||
[2]:http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html
|
@ -1,45 +1,43 @@
|
||||
Vic020
|
||||
|
||||
Postfix tips and Troubleshooting Commands
|
||||
Postfix提示和故障排除命令
|
||||
================================================================================
|
||||
Here’s a list of stuff I user everyday and other email admins will also be using, Let me know if I missed anything
|
||||
这里是一些我每天用的命令,当然,其他的email管理员也会使用,因此我写下来,以防我忘记。
|
||||
|
||||
List/Print current mail queue
|
||||
列出/打印当前邮件队列
|
||||
|
||||
# postqueue –p
|
||||
|
||||
# mailq
|
||||
|
||||
If it’s a huge que, you can pipe it with tail
|
||||
如果队列太长,可以使用tail管道读取。
|
||||
|
||||
# mailq | tail
|
||||
|
||||
Flush the queue
|
||||
清理队列
|
||||
|
||||
# postqueue -f
|
||||
|
||||
Schedule immediate delivery of all mail that is queued for the named as domain.come.
|
||||
立即交付所有某domain.com域名的所有邮件
|
||||
|
||||
# postqueue -s domain.com
|
||||
|
||||
TO delete all queue
|
||||
删除所有队列
|
||||
|
||||
# postsuper -d ALL
|
||||
|
||||
To delete a particular message
|
||||
删除指定的消息
|
||||
|
||||
# postsuper -d messageid
|
||||
|
||||
Reque the mail or resend particular mail
|
||||
重新排队邮件或者重新发送指定邮件
|
||||
|
||||
#postfix -r msgid
|
||||
|
||||
To find mail version
|
||||
查找邮件版本
|
||||
|
||||
#postconf -d mail_version
|
||||
mail_version = 2.6.6
|
||||
|
||||
You can also follow the steps in the link below which is the most simple and well explained documentation available with regards to Configuring postfix.
|
||||
你也可以查看下面的连接,这个连接有很多例子和不错的可用的解释文档,可以用来配置postfix.
|
||||
|
||||
[Postfix Configuration - ][1]
|
||||
|
||||
@ -48,7 +46,7 @@ You can also follow the steps in the link below which is the most simple and wel
|
||||
via: http://techarena51.com/index.php/postfix-configuration-and-explanation-of-parameters/
|
||||
|
||||
作者:[Leo G][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
译者:[Vic020](http://www.vicyu.net)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
Loading…
Reference in New Issue
Block a user