精华内容
下载资源
问答
  • 操作系统有责任高效地使用硬件——对于磁盘设备,这意味着很短的访问时间和磁盘带宽。
  • 磁盘子系统调优

    2016-01-11 22:56:14
    磁盘的许多调优(尤其是对于数据库)集中于避免磁盘访问,因为磁盘访问的延迟相当高。因此,花一些时间对磁盘硬件进行优化是有意义的。 首先要做的是,确保在文件系统上禁用 atime 日志记录特性。atime 是最近访问...

    磁盘在 LAMP 架构中扮演着重要的角色。静态文件、模板和代码都来自磁盘,组成数据库的数据表和索引也来自磁盘。对磁盘的许多调优(尤其是对于数据库)集中于避免磁盘访问,因为磁盘访问的延迟相当高。因此,花一些时间对磁盘硬件进行优化是有意义的。

      首先要做的是,确保在文件系统上禁用 atime 日志记录特性。atime 是最近访问文件的时间,每当访问文件时,底层文件系统必须记录这个时间戳。因为系统管理员很少使用 atime,禁用它可以减少磁盘访问时间。禁用这个特性的方法是,在 /etc/fstab 的第四列中添加 noatime 选项。

      演示如何启用 noatime 的 fstab 示例

      /dev/VolGroup00/LogVol00 / ext3 defaults,noatime 1 1

      LABEL=/boot /boot ext3 defaults,noatime 1 2

      devpts /dev/pts devpts gid=5,mode=620 0 0

      tmpfs /dev/shm tmpfs defaults 0 0

      proc /proc proc defaults 0 0

      sysfs /sys sysfs defaults 0 0

      LABEL=SWAP-hdb2 swap swap defaults 0 0

      LABEL=SWAP-hda3 swap swap defaults 0 0

      有多种磁盘硬件组合,而且 Linux 不一定能够探测出访问磁盘的最佳方式。可以使用 hdparm 命令查明和设置用来访问 IDE 磁盘的方法。hdparm -t /path/to/device 执行速度测试,可以将这个测试结果作为性能基准。为了使结果尽可能准确,在运行这个命令时系统应该是空闲的。

      在 /dev/hd 上执行的速度测试

      # hdparm -t /dev/hda

      /dev/hda:

      Timing buffered disk reads: 182 MB in 3.02 seconds = 60.31 MB/sec

      hdparm 的常用选项

      选项 描述

      -vi 向磁盘查询它支持的设置以及它正在使用的设置。

      -c 查询/启用 (E)IDE 32 位 I/O 支持。hdparm -c 1 /dev/hda 启用这个设置。

      -m 查询/设置每中断多扇区模式。如果设置大于零,设置值就是每个中断可以传输的最大扇区数量。

      -d 1 -X 启用直接内存访问(DMA)传输并设置 IDE 传输模式。hdparm 手册页详细说明了在 -X 后面可以设置的数字。只有在 -vi 说明目前并未使用最快速的模式的情况下,才需要进行这个设置。

      不幸的是,对于 Fiber Channel and Small Computer Systems Interface(SCSI)系统,调优依赖于具体的驱动器。

      必须将有帮助的设置添加到启动脚本中,比如 rc.local。


    转载于:https://blog.51cto.com/8492527/1733974

    展开全文
  • 在使用Azure的过程中,在大多数情况下我们都会使用到存储服务,对于虚拟机来说就是我们的磁盘存储。Azure对于存储来说是划分的非常全面和细致的。...然后在磁盘的访问密钥位置,获取磁盘的访问密...

    在使用Azure的过程中,在大多数情况下我们都会使用到存储服务,对于虚拟机来说就是我们的磁盘存储。Azure对于存储来说是划分的非常全面和细致的。

       

    在我们的磁盘列表中找到需要转换的托管磁盘。

       

    单击右侧的导出按钮。

       

    在导出磁盘的位置设置URL的过期时间,由于是转换,不需要太长的时间。

       

    然后我们复制导出磁盘的URL

       

    然后在磁盘的访问密钥位置,获取磁盘的访问密钥,key1和key2都可以,单击右侧的复制按钮复制key。

       

       

    然后我们登录到Azure PowerShell。

       

       

    然后执行以下的命令,创建一个包含存储帐户密钥的环境变量:(其中1LNE就是我们复制的磁盘访问密钥)

    $Context = New-AzureStorageContext -StorageAccountName "STORAGEACCOUNTNAME" -StorageAccountKey "1LNE**************"

       

       

    然后我们执行以下命令进行存储块复制:

    Start-AzureStorageBlobCopy -AbsoluteUri "<源磁盘Uri>" -DestContainer 'vdisk' -DestBlob "目标磁盘文件" -DestContext $context

       

       

    由于转换的过程相当于是新建一个vhd磁盘,然后将现有的托管磁盘灌入,所以需要的时间还是比较长的。我们可以通过以下命令来获取进度:

    Get-AzureStorageBlobCopyState -Container vidsk -Blob <目标磁盘文件> -Context $context

       

       

    当显示Status为Success的时候,我们就已经完成托管磁盘到非托管磁盘的转换了。

       

       

    对于虚拟机而言,转换完成之后,我们还需要按照之前文章所提到的使用现有磁盘来创建虚拟机,完成整个托管磁盘虚拟机到非托管磁盘虚拟机的转换。具体请参考:

       

    https://blog.51cto.com/reinember/1977539

       

       

    最后说明下,为什么我们要做托管磁盘到非托管磁盘的转换呢?因为托管磁盘和非托管磁盘的计费方式和用途是有所区别的,比如托管磁盘是按照整块磁盘大小进行收费,1TB的托管磁盘,1个月里面无论具体使用了1MB还是900GB,收取的费用都是276.48元;而非托管磁盘则是按照实际使用量进行计费,即便我们创建VHD的时候设置的大小是4TB实际只用1MB,一个月也只给1MB的费用。

    转载于:https://blog.51cto.com/reinember/2085414

    展开全文
  • 文章目录B-树B*树B+树LSM树 B-树 在20世纪80年代,B-树被运用在数据库管理系统上,主要用于解决如何确保一致b树访问模式来支持并发控制和数据恢复问题。...将搜索时间减少到很少次数,即使是对于

    B-树

    在20世纪80年代,B-树被运用在数据库管理系统上,主要用于解决如何确保一致的b树访问模式来支持并发控制和数据恢复的问题。最近,B-树再次被运用于磁盘文件管理上,用于解决磁盘高效读写IO和文件版本管理。例如,zfs是基于B-树实现的高效率IO文件系统解决方案。

    原本B-树算法设计是用于解决高效率访问和维护索引文件在主内存中加载管理的,这导致B-树的三个目标:

    • 增加树的节点大小以最小化搜索,并最大化每次读取时传输的数据量
    • 将搜索时间减少到很少的次数,即使是对于大的集合
    • 支持高效的本地插入、搜索和删除

    B-树的关键观点是树应该自下而上构建,而不是自上而下构建。我们首先将键插入到单个叶节点中。当这个叶子节点溢出时,我们将它分割成两个半满的叶子,并向上提升一个键以形成一个新的根节点。关键的是,由于我们将提升延迟到叶溢出时,所以我们可以选择对叶节点进行最佳分区的键。这个分裂提升操作在B-树的整个生命周期中持续进行。

    B-树是BST的普遍化。持有k-1个键和k个子树引用,而不是在每个节点上持有一个键和指向两个子树的指针。这叫做order-k B-树。所以,BST也称为order-2 B-树。

    尽管我们的示例的阶数很低,但b树节点通常每个节点拥有数百甚至数千个键,每个节点的大小足以填满一个或多个磁盘页。即使只有3的高度,这棵树也拥有超过10亿个键。我们最多需要3个键来找到树中的任意键,并生成精确的大小类型:正是我们正在寻找的比例。

    B-树算法保证了order-k的一些重要性质,以确保有效的搜索、管理和空间利用。

    • 每个树节点最多可以保存k−1个键和k个子树引用
    • 除了根结点,树的每个节点都至少有k/2 - 1个键
    • 所有叶节点都在树的相同深度中出现
    • 节点中的键按升序存储

    搜索

    B-树搜索跟BST的搜索非常相似,但是,我们不需要在每个节点上递归地向左或向右移动,而是需要执行k-way搜索来查看要探测的子树。

    B-树查找函数遍历节点中的键,寻找目标键。如果找到目标键,返回键以及值(e.g.,键的完整记录在数据文件中的位置)。一旦确定目标键不在节点中,我们就递归搜索相应的子树。这将一直持续下去,直到找到目标键,或者要搜索的子树不存在为止。也就是说目标键不包含在树中。

    每次开始一次搜索,调用B-树查找函数btree_search(tg, root, k)开始在树的根节点向下查找。每次搜索的时间复杂度为O(lgn)。

    插入数据

    插入数据,B-树相比于BST要复杂得多。这两种插入算法都搜索保存新键的适当叶节点,如果叶溢出,B-树插入也必须提升一个中值键。

    注意,在插入的每一步,B-树都满足四个必需的属性:节点持有k−1 = 3个键,内部节点拥有至少[3/2−1 ]= 1个键,所有叶节点在树中的深度都是相同的,节点中的键按升序存储。

    每次插入都要遍历树以找到一个目标叶节点,然后再遍历树以进行分割和提升。时间复杂度为O(lgn),与搜索性能相同。

    删除节点数据

    B-树中的删除操作与BST中的删除操作类似。如果我们从叶子节点删除,我们可以直接删除键。如果从内部节点进行删除,则删除键并提升其前任或继任者——分别是内部节点左侧子树中的最大键或右侧子树中的最小键。

    在所有情况下,无论是直接从叶子删除还是提升前任或后继者,都将从叶子节点删除一个键,在叶子中留下L个键。如果L大于等于[k/2 - 1],停止平衡(旋转)操作。如果L<[k/2 - 1],意味着,叶子节点数不够满,我们必须重新平衡树木来纠正这个问题,保持树节点的深度都相等。

    借位。我们首先检查叶子的左子树,然后检查它的右子树(如果它们存在的话),看看它是否有大于k/2−1个键。如果子树中存在满足条件的情况,我们可以借一个子树叶节点的键,同时保证子树中的叶节点树满足叶节点数最小值。

    如果我们从左子树借位,我们执行以下操作:

    • 在父节点中获取拆分左兄弟节点和叶子的键,即拆分键,并将其插入到叶子中
    • 将分割键替换为左子树的最大键

    当我们从order-5B-树中删除一个F键,因为每一个节点必须包含最少[5/2 - 1] = 2个键,不然将导致了叶子的下渗,保证树的平衡。叶子的左子树中叶节点包含了3个键,因此我们可以借用其中的一个键,将其放在父节点中,并将父节点的拆分键移动到到叶子上。从右子树的借位是相同的,除了我们将分割键替换为右子树的最小键。

    合并。如果两个子节点都只有[k/2 - 1]个键,我们将叶子与其左子树节点和父节点的分裂键合并。
    1.合并左同胞键、拆分键和叶子键。这样就产生了一个有k−1个键的节点
    2.删除父键的拆分键和它现在为空的右子树

    两个兄弟节点都没有超过2个键,因此我们将左节点、父节点的拆分键和叶节点合并,形成一个具有4个键的完整叶节点。父节点被更新,以删除它的拆分键和空的右子树。

    在合并后,必须做两道检查。首先,如果父节点是树的根,如果它现在是空的,我们将合并节点作为新的根节点。其次,如果父节点是一个内部节点,并且现在它的键数小于k/2−1,那么它必须使用相同的借用-合并策略进行递归重新平衡。

    B*树

    B*树与B-树最大的区别在于B*树在插入算法的改进。B*树提升了内部节点存储率,从近似地k/2,提升到近似2k/3的利用率。这可以推迟树高度的增加,从而提高搜索性能。

    B*树基本的思想是通过将节点重新分配给左子树或者右子树来达到延迟分裂节点的目的,如果不能重新分配,两个子节点数饱和的节点才进行节点分裂,变成三个2/3饱和度的子节点。相比于B-树直接将饱和节点分裂成两个1/2饱和度的节点,更能够推迟树高度的增加。

    如果一个拥有k个键的叶子节点达到饱和状态,假设左子节点有m< k -1个键,将合并兄弟节点的所有键,包括将要分裂键和左子树的键。这将生成一个由l + m + 1键组成的集合,我们如下所示重新分配这些键。
    1.将第一个[l+m/2]个键留在左同胞中
    2.将分割键替换为位置键
    3.将最后的[l+m/2]个键存储在叶子中

    除了第一部分的[l+m/2]个键在叶节点中,最后一部分的[l+m/2]个键在右兄弟节点中之外,对右兄弟的重新分配是相同的。

    如果向父节点添加两个分割键导致其溢出,则使用相同的重分发分割策略来递归地重新平衡树。

    搜索和删除。搜索B*树和搜索B-树是一样的。高德纳没有提供关于如何从B*树中删除的具体细节。问题是如何在执行删除的同时维护至少保留内部节点的约束——2/3饱和度。在缺少B*树的删除策略的情况下,我们执行B-树删除算法操作,这意味着删除后可能会违反2/3饱和度的要求,解决方案,是在删除节点数据时,补充标记节点,保证饱和度,然后返回结果。

    B+树

    B+树是一个有序的键-值对集合和位于序列集合顶部的索引的组合。序列集是块(通常是磁盘页)的集合,作为双向链表绑定在一起。这些块形成键的b树索引的叶节点,它允许我们快速识别持有目标键的块。

    将所有数据放在索引的叶子中提供了B+树比B-树的许多优势。

    • 序列集的块是链接的,因此扫描一组键值需要搜索第一个键并进行一次线性传递,而不是在B-tree索引上进行多次查询
    • 内部B+树节点只包含键和指针——而普通B树中的键-值对则相反,因此每个节点可以容纳更多的键,这可能导致树更矮

    B+树的一个缺点是,如果在内部节点上找到了目标键,我们仍然必须遍历树的底部,以找到保存键值的叶子。对于B-树,这个值可以立即返回。由于树的高度设计紧凑,这通常是一个我们愿意接受的小损失。

    在B+树中搜索、插入和删除的工作原理与B-树相同,但是要注意的是,所有操作对象都是叶节点,键值对也是存储在叶节点中的。例如,要在B+树中插入一个新的键值对,我们需要执行以下操作。
    1.搜索B+树以找到保存新键的块
    2.如果块中有空间可用,则存储键-值对并停止
    3.如果块已满,将一个新块追加到文件的末尾,保留现有块中的第一个k/2键,并将剩余的k/2键移动到新块中
    4.更新B+树的索引(使用普通的B树插入算法),将新块链接到索引中

    前缀键优化

    B+树的内部节点不包含搜索请求的数据,它们只是简单地将搜索指向一个可能包含目标键的块(叶子节点块)。这意味着我们只需要存储正确分隔块所需的每个键的数量。

    当两个键:Benson和Bolen,分别存储在第一个磁盘块和第二个磁盘块中。父节点使用Benson来定义第一个块包含所有键的值≤Benson(表示键的值在字符排序上都小于等于Bdnson)。然而,我们不需要用整个键来分隔这些块。这将是充分使用中间键值——Bf,因为这将正确地定义第一个块包含的键的值复合≤Bf的数据,第二块包含的键大的值复合>Bf的数据。同样,可以将内部节点中的关键值Cage、Fisher和Wyatt分别更改为D、G和Y,方便区分和扩展。

    一般情况下,为了区分最大密钥kA的块A和最小密钥kB的块B,选择任意这样的分隔键kS需要满足如下要求:kA ≤ ks < kB

    在我们的kA = Benson和kB = Bolen的例子中,kS = Benson满足这个要求,但更短的kS = Bf也满足这个要求。如果kS有以下属性
    1.kS是kA和kB之间的分隔符
    2.没有其他的分隔符kS’比kS更短

    那么kS满足前缀属性。用前缀键构造的B+树被称为简单前缀B+树。

    通过选择最小的kS,我们可以增加在每个内部节点中存储的键的数量,从而产生具有更好搜索性能的扁平化的树。然而,这种改进并不是没有代价的。内部节点现在必须管理可变长度的记录,这意味着固定大小的节点中的条目数量将会变化。为了支持这一点,必须对搜索、插入和删除算法进行修改,以适应当记录变化时,数据在存储空间上的变化。
    分页和指针法,这两种方法在大量写的时候,会造成写放大问题,即写入数据时,需要组织数据在磁盘上的分布,造成分页频繁等拖累数据写入速率。

    性能。性能结果取决于所存储的数据类型。实验结果表明,对于包含400到800页的树,简单前缀B+树所需的磁盘访问次数比B+树少20-25%。

    一种更有效的方法可以沿着树中的任意给定路径删除冗余的前缀信息,这比简单的前缀B+树略有改进(≈2%),但需要50-100%的时间来构建前缀。这表明生成更复杂前缀的开销超过了减少树高度所节省的任何开销。

    LSM树

    为了解决B+树在大量数据写入时产生的写放大问题,催生了LSM树这种数据结构,它牺牲了一部分读取数据的性能,提供了写入大量数据的能力。
    LSM树,不支持数据修改,只支持添加方式,并且对数据段按照键进行排序,并生成主键相关的索引,在内存使用上分为磁盘部分和主内存部分数据,在数据结构上,两部分数据差不多,都分为索引和数据两部分。
    Kafka、HBase和RocksDB以及Cassandra这些产品,在底层的数据结构就是LSM树,当然在实现上各有不同,也导致数据库在功能上的差异,Kafka根据offset进行数据映射读取,速度和效率都很快,HBase与Cassandra是很类似的,因为Cassandra在索引上的差异,使得Cassandra支持二级索引,而HBase不支持,所以对出主键之外的其余字段的条件查询上比较弱,RocksDB是基于内存的键值对数据库,有基于Java的jar版本,Dubbo就使用了RocksDB保存元数据(不知道是不是,没有看Dubbo的源码只是看到pom文件上引入的RocksDB的jar,以后会验证),MySQL的开源版本MariaDB,已经支持基于RocksDB实现的数据库引擎了。
    LSM树在写入性能上有很大的提升,但是在读取和查询方面稍弱,这也是HBase和Kafka等产品在原生上的缺陷。Cassandra在索引上按照用户对字段的索引语句,在字段的列数据上生成额外索引,从而提供了二级索引的功能。
    LSM树在删除数据项时,在数据段上插入墓碑标记(查询时会对此标记数据进行过滤),数据库定时对数据段进行整理时,将标记数据删除,并对数据段中修改记录进行合并、索引重构等相关处理,完成真正的数据段空间回收。
    为保证数据的可靠性,LSM树在完成数据写入之前会首先将数据写入WAL日志,再执行内存数据相关构建的执行,然后返回数据写入成功(中间对于副本的需要根据对应产品的实现,在此不讨论)。产品定时将内存上的数据刷新到磁盘后,对WAL日志会根据产品的设计要求,执行删除或者分段的操作处理,保证数据库意外重启时,减少执行WAL日志进行数据恢复阶段时的等待时间。

    展开全文
  • 此外,考虑到SWD的访问特性,我们提出了一种利用空间和时间局部性的新型写缓存管理。 在六个真实世界中进行的跟踪实验表明,在频繁更新的写入密集型工作负载下,DVS-RAID的性能略低于基于HDD的RAID。 对于某些读取...
  • 禁止操作系统更新文件的atime属性对于读写频繁的数据库文件来说,记录文件的访问时间一般没有用处,却会增加磁盘的负担,影响IO性能。用裸设备(Raw Device)存放InnoDB共享表空间因InnoDB使用缓存机制来缓存索引和...

    使用符号连接分布IO

    利用操作系统的符号连接,将不同的数据库、表、索引指向不同的物理磁盘,从而达到分布磁盘IO的目的。

    禁止操作系统更新文件的atime属性

    对于读写频繁的数据库文件来说,记录文件的访问时间一般没有用处,却会增加磁盘的负担,影响IO性能。

    用裸设备(Raw Device)存放InnoDB共享表空间

    因InnoDB使用缓存机制来缓存索引和数据,操作系统的磁盘IO缓存对其性能不仅没有帮助,甚至还有反作用。在InnoDB缓存充足的情况下,可以考虑使用裸设备来存放共享表空间。

    调整IO调度算法

    Linux实现了4中IO调度算法:

    NOOP算法(No Operation):不对IO请求排序,除了合并请求也不会进行其他任何优化,用最简单的先进先出FIFO队列顺序提交IO请求。NOOP算法主要面向随机访问设备,如SSD。

    最后期限算法(Deadline):除了维护一个拥有合并和排序功能的请求队列外,额外维护两个带有超时的FIFO队列,分别是读请求队列和写请求队列。当调度器发现读/写请求队列中的请求超时,会优先处理这些请求。

    预期算法(Anticipatory):是基于预测的IO算法,和Deadline类似,也维护了三个请求队列。区别在于,Anticipatory处理完一个IO请求后并不会直接返回处理下一个请求,而是等待片刻(默认6ms),等待期间如果有新来的相邻扇区的请求,会直接处理新来的请求。Anticipatory适合写入较多的环境,不适合数据库等随机读较多的环境。

    完全公平队列(Complete Fair Queuing/CFQ):把IO请求按照进程分别放入进程对应的队列中,其公平是针对进程而言的。CFQ以时间片算法为前提,轮转调动队列。

    建议MySQL数据库环境设置为Deadline算法。

    使用磁盘阵列(RAID)

    RAID(Redundant Array of Inexpensive Disks),即廉价磁盘冗余阵列,通常叫做磁盘阵列。

    RAID级别:

    RAID0:也叫条带化。

    RAID1:也叫磁盘镜像。

    RAID10:先做磁盘镜像,再条带化。

    RAID4:像RAID0一样条带化,但额外增加一个磁盘用于纠错。

    RAID5:对RAID4的改进,但将纠错数据也分别写到各个磁盘而不是一个磁盘。

    RAID卡电池充放电问题

    RAID卡都有写缓存(Battery Backed Write Cache),写缓存对IO性能的提升非常明显。为了避免掉电丢失写缓存中的数据,RAID卡都有电池(Battery Backup Unit,简称BBU)。

    RAID缓存策略包括4部分:

    写策略

    WriteBack:将数据写入缓存后直接返回。

    WriteThrough:不使用写缓存,直接写入磁盘才返回。

    预读策略

    ReadAheadNone:不开启预读。

    ReadAhead:开启预读,预先把后面的数据加载入缓存。

    ReadAdaptive:自适应预读,在缓存和I/O空闲的时候进行预读。

    读策略

    Direct:读操作不进行缓存。

    Cached:读操作进行缓存。

    故障策略

    Write Cache OK if Bad BBU:如果BBU出问题,不使用写缓存,从WriteBack自动切换到WriteThrough。

    No Write Cache if Bad BBU:如果BBU出问题,仍然使用写缓存。

    RAID卡电池会定期启动自动校准模式,即定期充放电。期间,RAID卡控制器不会启动BBU。同时(除非修改缓存策略),也会禁用WriteBack写缓存策略,以保证数据完整性,造成系统IO性能会出现较大波动。

    解决方案:

    根据RAID卡电池下次充放电的时间,在业务量较低的时候,提前进行充放电。

    即使电池电量低于警戒值甚至电池放电完毕,强制使用WriteBack写缓存策略。此时一定要有UPS之类的后备电源。

    NUMA架构优化

    目前的商用服务器系统架构大体分为三类(一般SMP或NUMA较多):

    对称多处理器架构(SMP/Symmetric Multi-Processor):一台计算机上汇集了一组CPU,各CPU平等地共享内存、IO等资源。SMP也被称为一致存储访问架构(UMA/Uniform Memory Access)。由于共享,导致SMP服务器的扩展能力非常有限,最受限制的是内存,因每个CPU必需通过相同的总线访问相同的内存资源。

    非一致存储访问架构(NUMA/Non-Uniform Memory Access):一台计算机分为多个节点,每个节点内部拥有多个CPU,节点内部使用共有的内存控制器,节点之间通过互联模块进行连接和信息交互。节点的所有内存对于本节点的所有CPU都是等同的,对于其他节点的所有CPU都是不同的。每个CPU都可以访问整个系统的内存,但访问本地节点的较快,访问非本地节点的较慢。因此,随着CPU数量的增加,系统性能并不能线性增加。

    海量并行处理架构(MPP/Massive Parallel Processing):由多个SMP服务器通过一定的节点互联网络进行连接,每个节点只访问本地资源,不访问其他节点的资源。因而,理论上可以无限扩展。

    NUMA的内存分配策略有4种:

    缺省default:总是在当前进程运行的本地节点分配。其节点之间内存分配不均衡,当某个CPU节点内存不足时,会导致swap产生。

    绑定bind:强制分配到指定节点上。

    交叉interleave:在所有节点或指定节点上交叉分配内存。

    优先preferred:在指定节点上分配,失败则在其他节点上分配。

    MySQL对NUMA特性支持不好。

    展开全文
  • UltimateDefrag是体积小巧,使用简单,速度极快的磁盘碎片整理工具。...该软件还包括一个用于自动化磁盘碎片整理操作计划安排器以及对于计算机启动时磁盘碎片整理,后台磁盘碎片整理等功能支持。
  • 固态磁盘部署指南

    2020-05-12 14:17:11
    对于使用旋转介质的较旧磁盘,跨越大地址范围的访问模式会招致寻道成本。因此,SSD设备具有更好的延迟和吞吐量。 随着使用的块数接近磁盘容量,性能会下降。 对性能的影响程度因供应商而异。 但是,所有设备都会...
  • 操作系统——磁盘调度算法

    千次阅读 2017-07-03 14:35:44
    磁盘是可以提供给多个进程共享的设备,当同时多个设备要访问磁盘,应采用合适的算法使各进程对磁盘的访问时间最小。 先来看磁盘访问时间定义:(1)寻道时间Ts 把磁臂(磁头)移动到指定磁道上所经历的时间。该时间...
  •  研究了很久,自始至终不能够从三者的区别和联系中找到一个大脑与这些概念之间合适的相处方式。对于基本概念和理论理解不... 一是从数据安全方面考虑,二是从系统访问磁盘的性能考虑。一个磁盘的某个分区损坏,...
  • 本文更新于2020-04-05,使用...禁止操作系统更新文件的atime属性对于读写频繁的数据库文件来说,记录文件的访问时间一般没有用处,却会增加磁盘的负担,影响IO性能。用裸设备(Raw Device)存放InnoDB共享表空间因I...
  • 研究了很久,自始至终不能够从三者的区别和联系中找到一个大脑与这些概念之间合适的相处方式。对于基本概念和理论理解不... 一是从数据安全方面考虑,二是从系统访问磁盘的性能考虑。一个磁盘的某个分区损坏,不在...
  • 访问日志不记录静态文件 一个网站会有很多元素,尤其是...这不仅对于服务器的磁盘空间造成影响,更重要的是会影响磁盘的读写速度。还好这些巨量的静态元素请求记录到日志里的意义并不大,所以可以限制这些静态元素...
  • 根据进程请求访问磁盘的先后次序进行调度。 优点:  公平、简单,每个进程的请求依次得到处理 缺点: 平均寻道时间可能较长,仅适用于磁盘请求较少的场合。 2、 最短寻道时间优先(SSTF) 算法简介: 选择...
  • 基本概念 对于磁盘,每个磁道扇区数并不是常量。 绝大多数磁盘都有一些缺陷扇区,因此映射必须用磁盘上其他空闲扇区来替代这些缺陷扇区。 ...访问时间 磁盘调度算法 1、先来先服务算法...
  • 如果一个站点访问量很大,那么访问日志文件增长会非常快,这不仅对于服务器的磁盘空间造成影响,更重要的是会影响磁盘的读写速度。实际上这些巨量的静态元素请求记录到日志里的意义并不大,所以可以限制这些静态元素...
  • UltimateDefrag是我见过速度最快的磁盘碎片整理程序,体积很小巧,使用也很简单,只要...该软件还包括一个用于自动化磁盘碎片整理操作计划安排器以及对于计算机启动时磁盘碎片整理,后台磁盘碎片整理等功能支持。
  • 到RAM磁盘的能力。支持Windows 2000/XP/2003的版本。 对一些数据存取速度要求很高的程序,如数字影像处理或玩3D 游戏装入纹理数据时,受磁盘存取速度的影响,屏幕画面时常 会出现延迟和停顿。SuperSpeed RamDisk这是...
  • 本文更新于2020-04-05,使用...禁止操作系统更新文件的atime属性对于读写频繁的数据库文件来说,记录文件的访问时间一般没有用处,却会增加磁盘的负担,影响IO性能。用裸设备(Raw Device)存放InnoDB共享表空间因I...
  • 本文更新于2020-04-05,使用...禁止操作系统更新文件的atime属性对于读写频繁的数据库文件来说,记录文件的访问时间一般没有用处,却会增加磁盘的负担,影响IO性能。用裸设备(Raw Device)存放InnoDB共享表空间因I...
  • 文件时间记录读取

    千次阅读 2017-08-04 14:29:16
    一个文件有三种时间,分别是:访问时间、修改时间、状态时间,没有创建时间。 但是在Mac OS X下除了Linux上三种时间,可以发现还有创建时间。 各个时间含义大概如下: 创建时间(created) Mac OS X下...
  • 顺序访问 VS 随机访问

    千次阅读 2018-08-09 11:11:35
    hdfs不能对文件做修改,但可以append,hbase做法是对旧版本数据做disable处理,将新数据追加到hfile里面。hive也是只能对自己orc存储格式才能做update,...因为寻道时间是影响磁盘读写速度主要原因。在平常...
  • 一篇值得好好研究的cache...磁盘上的被请求的块的Sequentiality,即他们的spatial locality,对于磁盘的效率是非常的关键的,因为磁盘的throughput在访问顺序块时会一阶的高于访问随机块。不幸的是,块的spatial locali
  • 访问日志切割

    2017-12-21 10:20:07
    磁盘100G,一天一个G日志一直记录总有一天会把整个磁盘占满,虽然不能直接cat或者vim,对于访问日志是不停在后面追加,所以对它来讲不需要打开这个文件,所以也不会影响到什么效率,但是磁盘占满是很危险事情,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 484
精华内容 193
关键字:

对于磁盘的访问时间