linux 刷新磁盘?linux查看磁盘命令

linux 好用的命令

Linux运维人员必会的120个命令

跟老男孩学Linux运维:核心系统命令实战

前言

第1章 Linux命令行简介/ 1

1.1Linux命令行概述/ 1

1.2在Linux命令行下查看命令帮助/ 4

1.3Linux shutdown reboot halt/ 9

关机:

shutdown-h now

halt

init 0

第2章文件和目录操作命令/ 13

2.1pwd:显示当前所在的位置/ 13

2.2cd:切换目录/ 16

2.3tree:以树形结构显示目录下的内容/ 18

2.4mkdir:创建目录/ 22

2.5touch:创建空文件或改变文件的时间戳属性/ 27

2.6ls:显示目录下的内容及相关属性信息/ 30

2.7cp:复制文件或目录/ 39

2.8mv:移动或重命名文件/ 42

2.9rm:删除文件或目录/ 45

2.10rmdir:删除空目录/ 48

2.11ln:硬链接与软链接/ 49

2.12readlink:查看符号链接文件的内容/ 54

2.13find:查找目录下的文件/ 55

2.14xargs:将标准输入转换成命令行参数/ 68

2.15rename:重命名文件/ 71

2.16basename:显示文件名或目录名/ 72

2.17dirname:显示文件或目录路径/ 72

2.18chattr:改变文件的扩展属性/ 73

2.19lsattr:查看文件扩展属性/ 75

2.20file:显示文件的类型/ 76

2.21md5sum:计算和校验文件的MD5值/ 77

2.22chown:改变文件或目录的用户和用户组/ 80

2.23chmod:改变文件或目录权限/ 81

2.24chgrp:更改文件用户组/ 85

2.25umask:显示或设置权限掩码/ 86

2.26老男孩从新手成为技术大牛的心法/ 90

第3章文件过滤及内容编辑处理命令/ 91

3.1cat:合并文件或查看文件内容/ 91

3.2tac:反向显示文件内容/ 103

3.3more:分页显示文件内容/ 104

3.4less:分页显示文件内容/ 107

3.5head:显示文件内容头部/ 109

3.6tail:显示文件内容尾部/ 111

3.7tailf:跟踪日志文件/ 114

3.8cut:从文本中提取一段文字并输出/ 115

3.9split:分割文件/ 117

3.10paste:合并文件/ 118

3.11sort:文本排序/ 123

3.12join:按两个文件的相同字段合并/ 127

3.13uniq:去除重复行/ 129

3.14wc:统计文件的行数、单词数或字节数/ 131

3.15iconv:转换文件的编码格式/ 133

3.16dos2unix:将DOS格式文件转换成UNIX格式/ 134

3.17diff:比较两个文件的不同/ 135

3.18vimdiff:可视化比较工具/ 138

3.19rev:反向输出文件内容/ 139

3.20tr:替换或删除字符/ 140

3.21od:按不同进制显示文件/ 143

3.22tee:多重定向/ 145

3.23vi/vim:纯文本编辑器/ 147

3.24老男孩逆袭思想:做Linux运维的多个好处/ 152

第4章文本处理三剑客/ 153

4.1grep:文本过滤工具/ 153

4.2sed:字符流编辑器/ 159

4.3awk基础入门/ 165

第5章 Linux信息显示与搜索文件命令/ 176

5.1uname:显示系统信息/ 176

5.2hostname:显示或设置系统的主机名/ 178

5.3dmesg:系统启动异常诊断/ 179

5.4stat:显示文件或文件系统状态/ 181

5.5du:统计磁盘空间使用情况/ 183

5.6date:显示与设置系统时间/ 186

5.7echo:显示一行文本/ 190

5.8watch:监视命令执行情况/ 193

5.9which:显示命令的全路径/ 195

5.10whereis:显示命令及其相关文件全路径/ 196

5.11locate:快速定位文件路径/ 197

5.12updatedb:更新mlocate数据库/ 199

5.13老男孩逆袭思想:新手在工作中如何问问题不会被鄙视/ 200

第6章文件备份与压缩命令/ 201

6.1tar:打包备份/ 201

6.2gzip:压缩或解压文件/ 208

6.3zip:打包和压缩文件/ 211

6.4unzip:解压zip文件/ 212

6.5scp:远程文件复制/ 214

6.6rsync:文件同步工具/ 216

6.7老男孩逆袭思想:新手如何高效地提问/ 220

第7章 Linux用户管理及用户信息查询命令/ 222

7.1 useradd:创建用户/ 222

7.2usermod:修改用户信息/ 227

7.3userdel:删除用户/ 229

7.4groupadd:创建新的用户组/ 230

7.5groupdel:删除用户组/ 231

7.6passwd:修改用户密码/ 232

7.7chage:修改用户密码有效期/ 237

7.8chpasswd:批量更新用户密码/ 238

7.9su:切换用户/ 240

7.10visudo:编辑sudoers文件/ 242

7.11sudo:以另一个用户身份执行命令/ 244

7.12id:显示用户与用户组的信息/ 248

7.13w:显示已登录用户信息/ 249

7.14who:显示已登录用户信息/ 250

7.15users:显示已登录用户/ 252

7.16whoami:显示当前登录的用户名/ 253

7.17last:显示用户登录列表/ 253

7.18lastb:显示用户登录失败的记录/ 254

7.19lastlog:显示所有用户的最近登录记录/ 255

第8章 Linux磁盘与文件系统管理命令/ 257

8.1fdisk:磁盘分区工具/ 257

8.2partprobe:更新内核的硬盘分区表信息/ 265

8.3tune2fs:调整ext2/ext3/ext4文件系统参数/ 266

8.4parted:磁盘分区工具/ 268

8.5mkfs:创建Linux文件系统/ 272

8.6dumpe2fs:导出ext2/ext3/ext4文件系统信息/ 274

8.7resize2fs:调整ext2/ext3/ext4文件系统大小/ 275

8.8fsck:检查并修复Linux文件系统/ 278

8.9dd:转换或复制文件/ 281

8.10mount:挂载文件系统/ 284

8.11umount:卸载文件系统/ 288

8.12df:报告文件系统磁盘空间的使用情况/ 289

8.13mkswap:创建交换分区/ 293

8.14swapon:激活交换分区/ 294

8.15swapoff:关闭交换分区/ 295

8.16sync:刷新文件系统缓冲区/ 296

第9章 Linux进程管理命令/ 298

9.1ps:查看进程/ 298

9.2pstree:显示进程状态树/ 305

9.3pgrep:查找匹配条件的进程/ 306

9.4kill:终止进程/ 307

9.5killall:通过进程名终止进程/ 310

9.6pkill:通过进程名终止进程/ 311

9.7top:实时显示系统中各个进程的资源占用状况/ 313

9.8nice:调整程序运行时的优先级/ 320

9.9renice:调整运行中的进程的优先级/ 323

9.10nohup:用户退出系统进程继续工作/ 324

9.11strace:跟踪进程的系统调用/ 325

9.12ltrace:跟踪进程调用库函数/ 332

9.13runlevel:输出当前运行级别/ 334

9.14init:初始化Linux进程/ 335

9.15service:管理系统服务/ 335

第10章 Linux网络管理命令/ 338

10.1ifconfig:配置或显示网络接口信息/ 338

10.2ifup:激活网络接口/ 343

ifup eth0

10.3ifdown:禁用网络接口/ 343

ifdown eth0

service network restart(/etc/init.d/network restart)激活整个网络,所有网卡。

10.4route:显示或管理路由表/ 344

10.5arp:管理系统的arp缓存/ 350

10.6ip:网络配置工具/ 351

10.7netstat:查看网络状态/ 358

10.8ss:查看网络状态/ 362

10.9ping:测试主机之间网络的连通性/ 363

10.10traceroute:追踪数据传输路由状况/ 366

10.11arping:发送arp请求/ 367

10.12telnet:远程登录主机/ 369

10.13nc:多功能网络工具/ 370

10.14ssh:安全地远程登录主机/ 373

10.15wget:命令行下载工具/ 376

10.16mailq:显示邮件传输队列/ 379

10.17mail:发送和接收邮件/ 381

10.18nslookup:域名查询工具/ 386

10.19dig:域名查询工具/ 389

10.20host:域名查询工具/ 393

10.21nmap:网络探测工具和安全/端口扫描器/ 394

10.22tcpdump:监听网络流量/ 398

第11章 Linux系统管理命令/ 407

11.1lsof:查看进程打开的文件/ 407

11.2uptime:显示系统的运行时间及负载/ 411

11.3free:查看系统内存信息/ 411

11.4iftop:动态显示网络接口流量信息/ 413

11.5vmstat:虚拟内存统计/ 415

11.6mpstat:CPU信息统计/ 419

11.7iostat:I/O信息统计/ 420

11.8iotop:动态显示磁盘I/O统计信息/ 423

11.9sar:收集系统信息/ 425

11.10chkconfig:管理开机服务/ 430

11.11ntsysv:管理开机服务/ 433

11.12 setup:系统管理工具/ 434

11.13ethtool:查询网卡参数/ 436

11.14mii-tool:管理网络接口的状态/ 437

11.19rpm:RPM包管理器/ 443

11.20yum:自动化RPM包管理工具/ 446

top命令

第12章 Linux系统常用内置命令/ 450

12.1Linux内置命令概述/ 450

12.2Linux内置命令简介/ 450

12.3Linux常用内置命令实例/ 452

linux meminfo mapped表示啥意思

Dirty:指需要写回磁盘的数据大小查看一下/proc/sys/vm下面的内存配置,比如:/proc/sys/vm/dirty_ratio#文件系统写缓冲区的大小,单位是百分比,表示系统内存的百分比,表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当需要持续、恒定的写入时,应该降低其数值。/proc/sys/vm/dirty_background_ratio#控制 pdflush进程在何时刷新磁盘。单位是百分比,表示系统内存的百分比,意思是当写缓冲使用到系统内存多少的时候, pdflush开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当需要持续、恒定的写入场合时,应该降低其数值。可以运行sync命令,系统会唤醒pdflush直到所有的脏页都写到磁盘,这是meminfo的dirty就降下来了

linux怎样提升磁盘读写性能

关于页面缓存的信息,可以用

cat/proc/meminfo

看到。其中的Cached指用于pagecache的内存大小(diskcache-SwapCache)。随着写入缓存页,Dirty的值会增加。

一旦开始把缓存页写入硬盘,Writeback的值会增加直到写入结束。

Linux用pdflush进程把数据从缓存页写入硬盘,查看有多少个pdflush进程

cat/proc/sys/vm/nr_pdflush_threads

pdflush的行为受/proc/sys/vm中的参数的控制

/proc/sys/vm/dirty_writeback_centisecs(default 500):

1/100秒,多长时间唤醒pdflush将缓存页数据写入硬盘。默认5秒唤醒2个(更多个)线程。

如果wrteback的时间长于dirty_writeback_centisecs的时间,可能会出问题。

pdflush的第一件事是读取

/proc/sys/vm/dirty_expire_centiseconds(default 3000)

1/100秒。缓存页里数据的过期时间(旧数据),在下一个周期内被写入硬盘。默认30秒是一个很长的时间。

第二件事是判断内存是否到了要写入硬盘的限额,由参数决定:

/proc/sys/vm/dirty_background_ratio(default 10)

百分值,保留过期页缓存(脏页缓存)的最大值。是以MmeFree+Cached-Mapped的值为基准的

pdflush写入硬盘看两个参数:

1数据在页缓存中是否超出30秒,如果是,标记为脏页缓存;

2脏页缓存是否达到工作内存的10%;

以下参数也会影响到pdflush

/proc/sys/vm/dirty_ratio(default 40)

总内存的最大百分比,系统所能拥有的最大脏页缓存的总量。超过这个值,开启pdflush写入硬盘。如果cache增长快于pdflush,那么整个系统在40%的时候遇到I/O瓶颈,所有的I/O都要等待cache被pdflush进硬盘后才能重新开始。

对于有高度写入操作的系统

dirty_background_ratio:主要调整参数。如果需要把缓存持续的而不是一下子大量的写入硬盘,降低这个值。

dirty_ratio:第二调整参数。

Swapping参数

/proc/sys/vm/swappiness

默认,linux倾向于从物理内存映射到硬盘缓存,保持硬盘缓存尽可能大。未用的页缓存会被放进swap区。

数值为0,将会避免使用swapping

100,将会尽量使用swapping

少用swapping会增加程序的响应速度;多用swapping将会提高系统的可用性。

如果有大量的写操作,为避免I/O的长时间等待,可以设置:

$ echo 5>/proc/sys/vm/dirty_background_ratio

$ echo 10>/proc/sys/vm/dirty_ratio

文件系统数据缓冲需要频繁的内存分配。加大保留内存的值能提升系统速度和稳定。小于8G的内存,保留内存为64M,大于8G的设置为256M

$ echo 65536>/proc/sys/vm/min_free_kbytes

I/O调度器

cat/sys/block/[disk]/queue/scheduler

4中调度算法

noop anticipatory deadline [cfq]

deadline: deadline算法保证对既定的IO请求以最小的延迟时间。

anticipatory:有个IO发生后,如果又有进程请求IO,则产生一个默认6ms猜测时间,猜测下一个进程请求IO是干什么。这对于随机读取会造成较大的延时。

对数据库应用很糟糕,而对于Web Server等则会表现不错。

cfq:对每个进程维护一个IO队列,各个进程发来的IO请求会被cfq以轮循方式处理,对每一个IO请求都是公平。适合离散读的应用。

noop:对所有IO请求都用FIFO队列形式处理。默认IO不会存在性能问题。

改变调度器

$ echo deadline>/sys/block/sdX/queue/scheduler

对于数据库服务器,deadline算法是推荐的。

提高调度器请求队列的

$ echo 4096>/sys/block/sdX/queue/nr_requests

有大量的读请求,默认的请求队列应付不过来,可以提高这个值。缺点是要牺牲一定的内存。

为了增加连续读取的吞吐量,可以增加预读数据量。预读的实际值是自适应的,所以使用一个较高的值,不会降低小型随机存取的性能。

$ echo 4096>/sys/block/sdX/queue/read_ahead_kb

如果LINUX判断一个进程在顺序读取文件,那么它会提前读取进程所需文件的数据,放在缓存中。

服务器遇到磁盘写活动高峰,导致请求处理延迟非常大(超过3秒)。通过调整内核参数,将写活动的高峰分布成频繁的多次写,每次写入的数据比较少。这样可以把尖峰的写操作削平成多次写操作。以这种方式执行的效率比较低,因为内核不太有机会组合写操作。但对于繁忙的服务器,写操作将更一致地进行,并将极大地改进交互式性能。

/proc/sys/vm/dirty_ratio

控制文件系统的写缓冲区的大小,单位是百分比,表示占系统内存的百分比,表示当写缓冲使用到系统内存多少的时候,开始向磁盘写出数据。增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当你需要持续、恒定的写入场合时,应该降低其数值。

/proc/sys/vm/dirty_background_ratio

控制文件系统的pdflush进程,在何时刷新磁盘。单位是百分比,表示系统内存的百分比,pdflush用于将内存中的内容和文件系统进行同步,比如说,当一个文件在内存中进行修改,pdflush负责将它写回硬盘.每当内存中的垃圾页(dirty page)超过10%的时候,pdflush就会将这些页面备份回硬盘.增大之会使用更多系统内存用于磁盘写缓冲,也可以极大提高系统的写性能。但是,当你需要持续、恒定的写入场合时,应该降低其数值:

/proc/sys/vm/dirty_writeback_centisecs

控制内核的脏数据刷新进程pdflush的运行间隔。单位是 1/100秒。缺省数值是500,也就是 5秒。如果你的系统是持续地写入动作,那么实际上还是降低这个数值比较好,这样可以把尖峰的写操作削平成多次写操作。

如果你的系统是短期地尖峰式的写操作,并且写入数据不大(几十M/次)且内存有比较多富裕,那么应该增大此数值。

该参数的设置应该小于dirty_expire_centisecs,但也不能太小,太小I/O太频繁,反而

使系统性能下降。具体可能需要在生产环境上测试。据说1:6(dirty_expire_centisecs: dirty_writeback_centisecs)的比例比较好。

/proc/sys/vm/dirty_expire_centisecs

声明Linux内核写缓冲区里面的数据多“旧”了之后,pdflush进程就开始考虑写到磁盘中去。单位是 1/100秒。缺省是 30000,也就是 30秒的数据就算旧了,将会刷新磁盘。对于特别重载的写操作来说,这个值适当缩小也是好的,但也不能缩小太多,因为缩小太多也会导致IO提高太快。

当然,如果你的系统内存比较大,并且写入模式是间歇式的,并且每次写入的数据不大(比如几十M),那么这个值还是大些的好。

/proc/sys/vm/vfs_cache_pressure

表示内核回收用于directory和inode cache内存的倾向;缺省值100表示内核将根据pagecache和swapcache,把directory和inode cache保持在一个合理的百分比;降低该值低于100,将导致内核倾向于保留directory和inode cache;增加该值超过100,将导致内核倾向于回收directory和inode cache

/proc/sys/vm/min_free_kbytes

表示强制Linux VM最低保留多少空闲内存(Kbytes)。

缺省设置:724(512M物理内存)

/proc/sys/vm/nr_pdflush_threads

表示当前正在运行的pdflush进程数量,在I/O负载高的情况下,内核会自动增加更多的pdflush进程。

/proc/sys/vm/overcommit_memory

指定了内核针对内存分配的策略,其值可以是0、1、2。

0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2,表示内核允许分配超过所有物理内存和交换空间总和的内存(参照overcommit_ratio)。

缺省设置:0

/proc/sys/vm/overcommit_ratio

如果overcommit_memory=2,可以过载内存的百分比,通过以下公式来计算系统整体可用内存。系统可分配内存=交换空间+物理内存*overcommit_ratio/100

缺省设置:50(%)

/proc/sys/vm/page-cluster

表示在写一次到swap区的时候写入的页面数量,0表示1页,1表示2页,2表示4页。

缺省设置:3(2的3次方,8页)

/proc/sys/vm/swapiness

表示系统进行交换行为的程度,数值(0-100)越高,越可能发生磁盘交换。

更改:

/etc/sysctl.conf

vm.dirty_ratio=40

sysctl-p

查看:

find/proc/sys/vm-name dirty*-print| while read name; do echo$name;cat${name}; done

阅读剩余
THE END