1. linux文件系统的种类和优势linux文件系统的类型
Linux是一种开放源代码的操作系统,它有多种文件系统,都有它自己的优势。
一种文件系统是EXT2,EXT2它更稳定,也更适合部署在生产环境中,因为他有一个完善的异常恢复机制,并且硬件依赖性几乎比其他文件系统更低。
另一种文件系统是EXT3,它是EXT2的增强版本,其增强的特性是主要是日志记录功能,可以记录对文件系统的更改,并且有效的进行文件系统修复。EXT3具有一定的数据安全性。
EXT4是EXT3的升级版本,它允许更大的单个文件和单个文件系统的大小。与EXT3相比,EXT4具有更好的性能,更快的数据恢复 (即使有单个块出错) 和更多的文件恢复选项。
XFS是Linux系统中第四种文件系统,它可以容纳文件大小高达 8 EiB (立方亿),它有一个设计思路与其他类型的文件系统不同,它拥有更快的性能和更少的内存使用,并且比其他文件系统有更高的稳定性。
总之,Linux文件系统的种类比较多,包括EXT2/EXT3/EXT4/XFS等,根据不同的应用场景来进行选择。比如,生产环境中应该使用EXT2,主要用于数据恢复和安全性提升,而XFS则拥有更高的性能和更快的数据恢复能力。因此,在使用Linux文件系统时,一定要好好考虑使用的文件系统, 以确保获得最佳的性能。
2. 如何用linux查看日志、磁盘、cpu、内存使用情况
在服务器运维中,了解磁盘IO性能至关重要,它直接影响服务器响应速度与处理能力。使用dd命令可有效查看此性能。dd命令强大且多功能,适用于文件复制、格式转换与数据备份等。
为测试磁盘IO性能,首先使用dd命令创建测试文件,如dd if=/dev/zero of=b.txt bs=1G count=1,生成1GB全零文件。接着执行dd命令,如dd if=b.txt of=/dev/null bs=1024 count=10240 iflag=direct oflag=direct,测试文件读取速度。执行后使用tail查看结果,单位为KBps,数值越大表示IO性能越好。
在测试磁盘IO时,结合/proc/diskstats文件获取统计信息,通过grep筛选测试文件相关数据,使用awk提取所需信息,最后显示测试结果。定期通过脚本执行dd命令,便于持续监控磁盘性能。
dd命令不仅能查看磁盘IO性能,还能用于数据备份、文件格式转换等任务,是服务器运维中不可或缺的工具。通过合理运用,可显著提升服务器性能与稳定性。
3. 文件系统性能改善主要有哪些方法在Unix系统中,还采取了哪些提高磁盘IO速度的方法(考研题,拜
由于各种的I/O负载情形各异,Linux系统中文件系统的缺省配置一般来说都比较中庸,强调普遍适用性。然而在特定应用下,这种配置往往在I/O性能方面不能达到最优。因此,如果应用对I/O性能要求较高,除了采用性能更高的硬件(如磁盘、HBA卡、CPU、MEM等)外,我们还可以通过对文件系统进行性能调优,来获得更高的I/O性能提升。总的来说,主要可以从三个方面来做工作:
1、Disk相关参数调优
2、文件系统本身参数调优
3、文件系统挂载(mount)参数调优
当然,负载情况不同,需要结合理论分析与充分的测试和实验来得到合理的参数。下面以SAS(Serial attached SCSI)磁盘上的EXT3文件系统为例,给出Linux文件系统性能优化的一般方法。请根据自身情况作适合调整,不要生搬硬套。
1、Disk相关参数
1.1 Cache mode:启用WCE=1(Write Cache Enable), RCD=0(Read Cache Disable)模式
sdparm -s WCE=1, RCD=0 -S /dev/sdb
1.2 Linux I/O scheler算法
经过实验,在重负载情形下,deadline调度方式对squidI/O负载具有更好的性能表现。其他三种为noop(fifo), as, cfq,noop多用于SAN/RAID存储系统,as多用于大文件顺序读写,
cfq适于桌面应用。
echo deadline > /sys/block/sdb/queue/scheler
1.3 deadline调度参数
对于redhat linux建议 read_expire = 1/2 write_expire,对于大量频繁的小文件I/O负载,应当这两者取较小值。更合适的值,需要通过实验测试得到。
echo 500 > /sys/block/sdb/queue/iosched/read_expire
echo 1000 > /sys/block/sdb/queue/iosched/write_expire
1.4 readahead 预读扇区数
预读是提高磁盘性能的有效手段,目前对顺序读比较有效,主要利用数据的局部性特点。比如在我的系统上,通过实验设置通读256块扇区性能较优。
blockdev --setra 256 /dev/sdb
2、EXT3文件系统参数
2.1 block size = 4096 (4KB)
mkfs.ext3 -b指定,大的数据块会浪费一定空间,但会提升I/O性能。EXT3文件系统块大小可以为1KB、2KB、4KB。
2.2 inode size
这是一个逻辑概念,即一个inode所对应的文件相应占用多大物理空间。mkfs.ext3 -i指定,可用文件系统文件大小平均值来设定,可减少磁盘寻址和元数据操作时间。
2.3 reserved block
mkfs.ext3 -m指定,缺省为5%,可调小该值以增大部分可用存储空间。
2.4 disable journal
对数据安全要求不高的应用(如web cache),可以关闭日志功能,以提高I/O性能。
tune2fs -O^has_journal /dev/sdb
3、mount参数
3.1 noatime, nodirtime
访问文件目录,不修改访问文件元信息,对于频繁的小文件负载,可以有效提高性能。
3.2 async
异步I/O方式,提高写性能。
3.3 data=writeback (if journal)
日志模式下,启用写回机制,可提高写性能。数据写入顺序不再保护,可能会造成文件系统数据不一致性,重要数据应用慎用。
3.4 barrier=0 (if journal)
barrier=1,可以保证文件系统在日志数据写入磁盘之后才写commit记录,但影响性能。重要数据应用慎用,有可能造成数据损坏。