首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

管理和监视扩展文件系统(2)

管理和监视扩展文件系统(2)

iostat 命令iostat 可提供磁盘输入/输出活动:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ iostat
Linux 2.6.18-164.el5 (DemoServer)   12/19/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    1.74    1.26    2.89    0.00   93.86

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              10.69       351.52       227.60    1759192    1139038
sda1              0.06         0.45         0.00       2254         22
sda2             10.62       351.01       227.60    1756658    1139016
dm-0             40.06       350.72       227.60    1755178    1139016
dm-1              0.02         0.18         0.00        920          0
hdc                0.00         0.03         0.00        144          0
fd0                  0.00         0.00         0.00         16           0




此示例证明了 iostat 命令对提供读/写和整体系统使用信息非常有用。请注意,默认情况下,该命令返回所有磁盘上的读/写使用情况,在顶行上返回累积使用快照。
sar 命令sar 可提供系统计数器信息,类似于 Windows 性能监视器。可以使用 sar 显示过去的计数器,或者可以使用它显示实时计数器:
1
2
3
4
5
6
7
8
9
10
$ sar 4 5
Linux 2.6.18-164.el5 (DemoServer)   12/19/2011

12:20:20 AM       CPU     %user     %nice   %system   %iowait    %steal     %idle
12:20:24 AM       all      0.00      0.00      0.00      0.00      0.00    100.00
12:20:28 AM       all      0.00      0.00      1.01      0.00      0.00     98.99
12:20:32 AM       all      0.00      0.00      0.50      0.00      0.00     99.50
12:20:36 AM       all      0.00      0.00      0.00      0.00      0.00    100.00
12:20:40 AM       all      0.25      0.00      1.01      0.00      0.00     98.74
Average:          all      0.05      0.00      0.50      0.00      0.00     99.45




本示例中的 sar 命令对计数器信息每 4 秒采样一次,共采样 5 次。
优化和调节文件系统作为系统管理员,一个主要职责是确保能够在符合要求的时间范围内访问用户的数据。像 Windows 一样,监视 Linux 服务器上的系统性能是一项主要任务。除了网络性能外,文件系统读/写性能也可能成为瓶颈,是可能的调节和优化的候选项目。
调节文件系统的方式包括:
  • 使用 tune2fs 工具
  • 更改 /etc/fstab 文件中的挂载选项
  • 更改内核参数
使用 tune2fs 进行调节使用命令行工具 tune2fs 调节硬盘上的卷参数。例如,如果在一个 ext3 分区上有大型目录,那么可以使用哈希 B 树来提高查找速度,这可使用 tune2fs dir_index 开关来完成:
1
# tune2fs  -O dir_index  /dev/sda5




应该以根特权运行 tune2fs 命令。-O 开关指定所指分区的选项。
使用特殊选项进行挂载使一个文件系统可用的过程称为挂载 文件系统。事实上,有一个 mount 命令可完成此任务。在打开 Linux 计算机时,该命令需要知道如何挂载可用的文件系统。/etc/fstab 文件用于此用途。与 Linux 中的所有配置文件一样,可以使用 vi 或 vim 等文本编辑器来编辑此文件。在此文件中,可以看到各种文件系统的挂载点。当调节挂载选项时,可以使用一个挂载的每行中的第四列。例如,可以添加 noatime 来消除对某个特定文件系统上最后访问的时间戳的审核,这可能会改善性能。如果有一个针对归档文件(举例而言)的文件系统,而用户不应写入数据,那么可以将一个分区挂载为 ro(只读)。
要在 /etc/fstab 中更改挂载选项,可以使用以下命令行:
1
UUID=97ee2cc4-8a26-41e9-9da1    /archives   ext4     defaults,ro,noatime    1 2




对 /etc/fstab 文件所做的任何更改都不会立即生效。要使更改生效而不重新引导,可以使用 mount 命令来卸载更改的文件系统,然后重新挂载它:
1
# mount -o remount  /archives




如果有一个可在当前工作环境中卸载的分区,那么 mount -o remount 命令对在修改 /etc/fstab 文件后避免重新引导非常有用。
调节内核参数可以使用 sysctl 命令查看和更改正在运行的内核参数。要获取文件系统相关参数及其当前值的清单,可以键入命令 sysclt -a | grep fs,如清单 3 所示。
清单 3. 查看文件系统相关的内核参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# sysctl -a | grep fs. | less
....
fs.quota.warnings = 1
fs.quota.syncs = 23
fs.quota.free_dquots = 0
fs.quota.allocated_dquots = 0
fs.quota.cache_hits = 0
fs.quota.writes = 0
fs.quota.reads = 0
fs.quota.drops = 0
fs.quota.lookups = 0
fs.suid_dumpable = 0
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_watches = 8192
fs.inotify.max_user_instances = 128
fs.aio-max-nr = 65536
fs.aio-nr = 0
fs.lease-break-time = 45
fs.dir-notify-enable = 1
fs.leases-enable = 1
fs.overflowgid = 65534
fs.overflowuid = 65534
fs.dentry-state = 26674 23765   45  0   0   0
fs.file-max = 102263
.........




清单 3 给出了内核的文件系统相关参数的部分清单,使用了 grep 命令来过滤与文件系统相关的参数。可以使用 sysclt -w  命令更改这些参数。例如,如果服务器要处理大量小文件,并且您获得越来越多有关 “文件句柄不足” 的错误消息,可以使用 sysclt -w file-max=xxxxxx 命令增加打开的文件描述符的最大数量,其中 xxxxxx 为想获得的文件句柄最大数量。与对默认参数进行任何更改一样,这样做既有利又有弊,所以请确保计算机分配了内存来处理增加的文件句柄负载。
使用 sysctl 所做的所有更改都不会保持到重新引导之后。要将这些更改保持到重新引导之后,则需要在文本编辑器中打开 /etc/sysconf 文件并进行相应更改。不是所有可能的内核参数都已在此文件中列出,所以如果进行更改并看到已经列出了该参数,那么可以将它添加到该文件中,并使用想要的值。
碎片通常,在操作系统上的碎片量大于或等于 20% 时,您将希望进行 “碎片整理”。当创建扩展文件系统时,它保留了大约 5% 的磁盘空间,供系统用于避免碎片整理问题。所以简言之,在正常情形中,不应该担忧碎片整理。但是,这并不意味着每一代扩展文件系统完全对碎片免疫。如果怀疑一个文件碎片化了,可以使用 filefrag 命令检查它。-v  开关可以提供更详细的信息。
使用虚拟内存Linux 中的虚拟内存概念与 Windows 中的虚拟内存没有太大区别。Windows 操作系统在 RAM 硬件扩展时使用页面文件。虚拟内存在 RAM 可能不足时以相对廉价的方式提高性能。
Linux 交换Linux 的虚拟内存分配空间位于交换 “文件系统” 中。该磁盘文件系统需要时 swap 类型。多个命令行(以及图形)工具可用于提供系统的交换空间使用信息:
  • free
  • top
  • vmstat
  • sar
free -m 命令可提供一个内存利用率视图,包括交换空间。top 命令提供进程、CPU 和内存利用率的实时视图,而 vmstat 命令提供系统内存和 CPU 活动,增加了块输入/输出的优势。但是,我发现 sar 工具类似于 Windows 性能监视器,它会分析交换空间在服务器上的使用情况:
1
2
$ sar  -w
$ sar  -B




在本示例中,sar -w 可提供交换活动的输出,而 sar -d 命令可提供有关交换分区的读和写的信息。请查阅 sar 文档,了解 sar 的配置。
创建新交换空间如果需要更多交换空间,有两种选择:创建一个交换分区,或者在现有分区中为交换空间创建一个文件。如果拥有分区空间,建议采用的方法是:在一个专用的交换分区上分配交换空间。但是,可以在现有的工作分区(比如 ext3)上创建一个与所需交换空间大小相同的文件。
如果创建了一个新交换区域,比如通过调整分区大小或者甚至添加一个新硬盘,那么应该使用 mkswap 命令创建交换文件系统类型。创建新交换空间的步骤顺序如下所示:
  • 使用 fdisk 创建分区,将类型设置为 82(Linux 交换)。
  • 使用 mkswap 创建交换卷。
  • 使用 swapon -a 命令打开交换空间。
  • 向 /etc/fstab 文件添加新交换文件系统挂载点。
  • 重新引导,使用 swapon -s 命令验证新交换空间是否可用。
修改文件系统资源量使用会不断增加,这正是管理系统的原因。无论改增加是正常的组织增长过程中的数据增长的结果,还是由合并所导致的数据激增的结果,您都可以调整、甚至是更改现有分区的文件系统类型。当然,这些任务具有它们的风险,应该小心计划并进行备份。
fdisk、parted 和它的 GUI “堂兄”  GNOME 分区编辑器 (GParted) 是用于修改分区的常见 Linux 工具。但是,只要您修改现有分区,就需要提前计划,因为数据丢失的风险确实存在。如果使用逻辑卷管理器 (LVM) 设计分区,任务应该比传统方法更加顺利,因为 LVM 允许修改分区,且没有丢失数据的风险。
返回列表