华为云用户手册

  • Redis应用场景 很多大型电商网站、 视频直播 和游戏应用等,存在大规模数据访问,对数据查询效率要求高,且数据结构简单,不涉及太多关联查询。这种场景使用Redis,在速度上对传统磁盘数据库有很大优势,能够有效减少数据库磁盘IO,提高数据查询效率,减轻管理维护工作量,降低数据库存储成本。Redis对传统磁盘数据库是一个重要的补充,成为了互联网应用,尤其是支持高并发访问的互联网应用必不可少的基础服务之一。 以下举几个典型样例: (电商网站)秒杀抢购 电商网站的商品类目、推荐系统以及秒杀抢购活动,适宜使用Redis缓存数据库。 例如秒杀抢购活动,并发高,对于传统关系型数据库来说访问压力大,需要较高的硬件配置(如磁盘IO)支撑。Redis数据库,单节点QPS支撑能达到10万,轻松应对秒杀并发。实现秒杀和数据加锁的命令简单,使用SET、GET、DEL、RPUSH等命令即可。 加锁部分,可参考最佳实践:使用D CS 实现分布式锁 (视频直播)消息弹幕 直播间的在线用户列表,礼物排行榜,弹幕消息等信息,都适合使用Redis中的SortedSet结构进行存储。 例如弹幕消息,可使用ZREVRANGEBYSCORE排序返回,在Redis 5.0中,新增了zpopmax,zpopmin命令,更加方便消息处理。 (游戏应用)游戏排行榜 在线游戏一般涉及排行榜实时展现,比如列出当前得分最高的10个用户。使用Redis的有序集合存储用户排行榜非常合适,有序集合使用非常简单,提供多达20个操作集合的命令。 可参考最佳实践:使用DCS实现排行榜功能 (社交APP)返回最新评论/回复 在web类应用中,常有“最新评论”之类的查询,如果使用关系型数据库,往往涉及到按评论时间逆排序,随着评论越来越多,排序效率越来越低,且并发频繁。 使用Redis的List(链表),例如存储最新1000条评论,当请求的评论数在这个范围,就不需要访问磁盘数据库,直接从缓存中返回,减少数据库压力的同时,提升APP的响应速度。
  • Memcached(已停售)典型应用场景 Memcached主要存储字符串类的简单key-value数据。 静态页面缓存。 Web页面的内容片段,包括HTML, CSS 和图片等静态数据,内容修改操作少,读取频繁,可以缓存到DCS Memcached实例,提高网站的访问性能。 数据库前端缓存。 在动态系统中存在对大量数据读多写少的场景,如社交、博客网站大量查询用户信息、好友信息、文章信息等。为了减少磁盘数据库负载,提升性能,这些经常需要从数据库读取的数据,可以缓存在Memcached中。 适宜缓存的数据主要有: 经常被读取,实时性要求不高,且可以自动过期的数据。 例如网站首页最新文章列表、某某排行等数据,虽然新数据不断产生,但对用户体验影响比较小。这类数据可使用典型的缓存策略,设置合理的过期时间,当数据过期以后再从数据库中读取。为了让编辑或者其它人员能马上看到效果,可以再定一个缓存清除/刷新策略。 经常被读取并且实时性要求强的数据。 比如用户的好友列表,用户文章列表,用户阅读记录等。这类数据首先被载入到Memcached中,当发生更改(添加、修改、删除)时就刷新缓存数据。 秒杀功能。 商品下单操作,牵涉数据库读取,写入订单,更改库存,及事务一致性要求, 对于使用传统型数据库的平台来说,秒杀活动阶段要避免订单创建后库存缺货,同时提供流畅的用户体验,压力巨大。 可以利用Memcached的incr/decr功能, 在内存中存储商品的库存量, 秒杀的抢单过程主要在内存中完成,速度非常快,抢单成功即得一个订单号,这时再去支付页面完成订单的后续操作。 不适用Memcached的应用场景: 单个缓存对象大于1M Memcached单个缓存对象的value值不能超过1M。超过1M的场景,建议使用Redis。 Key的长度大于250字符 如确需使用Memcached,可将key先进行md5,得到散列值,然后存储key对应的散列值。 业务需要保证数据高可靠 开源Memcached不支持持久化数据,无法存副本、备份以及数据迁移。 注意:DCS的Memcached主备版本实现了数据持久化,具体可联系技术支持。 对数据结构和处理有高级要求 Memcached只支持key-value简单结构,不支持链表、集合等高级数据结构以及排序等一系列复杂操作。
  • Redis企业版与基础版差异 DCS企业版,其内核为KeyDB,KeyDB是Redis的高性能分支,专注于多线程、内存效率和高吞吐量,将Redis原来的主线程拆分成了多个worker线程。每个worker线程都负责监听端口,accept请求,读取数据和解析协议,实现了Redis的多线程。 表1 企业版和基础版的能力对比 对比项 DCS基础版 DCS企业版 兼容开源Redis版本 兼容开源Redis 4.0/5.0/6.0,单线程 KeyDB内核,兼容开源Redis 6.0,多线程 性能 单分片QPS达10万/秒,最大时延1ms 企业版高性能型:单分片QPS达40万/秒 企业版存储型:单分片QPS达7万/秒 最大时延1ms 实例规格 提供单机、主备、集群、读写分离多种实例类型: 单机、主备实例可选择128MB-64G缓存容量 读写分离实例可选择8G-32G多种缓存容量 集群实例最大规格达2048GB 目前仅提供主备实例类型,可选择企业版高性能型和企业版存储型: 企业版高性能型可选择8GB-64GB内存容量 企业版存储型可选择8GB-32GB内存容量,最大存储容量(SSD磁盘容量)可达256GB 更多企业版高性能型和存储型的差异请参考表2。 数据安全 支持细粒度授权和IP白名单 除单机实例外,均支持持久化和数据备份 支持跨AZ容灾 支持异常自动切换 支持一键在线扩容和变更缓存类型 支持细粒度授权和安全组配置 支持持久化和数据备份 支持跨AZ容灾 支持异常自动切换 支持一键在线扩容 表2 企业版高性能型和存储型的差异 对比项 企业版高性能型 企业版存储型 QPS 单分片QPS达40万/秒,性能高于存储型。 单分片QPS达7万/秒。 存储方式 不支持SSD存储,纯内存。 使用aof的方式做数据持久化。 内存+SSD磁盘。 使用内存缓存热数据,全量数据存储在SSD磁盘中。 支持的备份文件格式 aof、rdb。 rdb。 父主题: 产品规格差异
  • Redis与Memcached差异 Redis和Memcached都是非常受欢迎的开源内存数据库,相对关系型数据库,Redis和Memcached使用都简单,且具备高性能。 同为Key-Value数据库,该如何选择? Memcached适用于数据结构模型简单的场景。Redis适用于数据结构复杂、需要持久化存储数据、存储大key的场景。 具体细节比较,请参考下表。 表1 Redis与Memcached的对比概览 对比项 Redis Memcached(已停售) 延时 内存数据库,亚毫秒级延时。 内存数据库,亚毫秒级延时。 易用性 语法简单,易用性强。 语法简单,易用性强。 分布式存储 支持集群方式水平扩展。 支持分布式存储。 多语言客户端 支持Java、C、Python等三十几种语言的客户端连接。 支持Java、C、Python等十几种语言的客户端连接。 线程/进程 单核单线程。 单线程通信,避免不必要的上下文切换与竞争。 采用非阻塞IO(IO多路复用),减少多客户端连接时的资源消耗。 支持多线程,可扩展。 可通过增加CPU数量,提升Memcached性能。 持久化存储 支持。 可将每一次写入操作(数据的增加、删除、修改)记录到磁盘文件(AOF文件)中。 支持。 说明: 开源Memcached不支持持久化存储,华为云Memcached支持持久化存储。 数据结构 支持哈希、列表、集合、有序集合等复杂的数据结构。有更多的应用场景。 支持简单的字符串。 Lua脚本支持 支持。 不支持。 快照备份 支持。 快照定期产生,因此不能保证数据100%不丢失。 Redis会fork一个子进程用于生成快照,当数据较多时,可能产生Redis服务短暂中断。 不支持。 数据迁移 支持。 可通过RDB快照恢复,或者AOF文件回放的方式,将数据备份并迁移到新的Redis实例上。 不支持。 Key的Value限制 Key的值最大可以有1G。 1M。 多数据库 Redis单机和主备支持多个数据库,默认256个DB。 Proxy集群和Cluster集群只支持一个数据库,为DB0。 不支持。 由以上对比可知,Redis与Memcached都具有简单易用,性能优越的特点。但在数据结构存储、持久化、备份与迁移、脚本支持等方面有所差异,建议您结合实际应用场景,选择最合适的缓存引擎。 Memcached比较合适小型静态数据的缓存场景,只需要直接读取,不做进一步运算和处理,如html代码片段。 Redis有丰富的数据结构,应用场景更为广泛。 父主题: 产品规格差异
  • 为什么无法卸载云硬盘 云硬盘可分为系统盘和数据盘,两种云硬盘卸载操作有所不同。 卸载系统盘:系统盘当前仅支持离线卸载,因此运行状态的弹性云服务器需关机后卸载系统盘。 Linux系统盘挂载点通常为“/dev/vda”,Windows系统的系统盘通常为C盘。 云耀云服务器L实例不支持卸载系统盘。 卸载数据盘:数据盘支持离线卸载和在线卸载。 Linux数据盘挂载点通常为“/dev/vda”以外的挂载点,Windows系统的数据盘通常为C盘以外的盘符。 离线卸载:弹性云服务器需处于“关机”状态,处于运行状态需关机后进行数据盘卸载。 在线卸载:部分操作系统支持在线卸载,即在弹性云服务器处于“运行中”状态进行卸载。关于在线卸载的更多详细信息,请参见在线卸载磁盘。 父主题: 云硬盘卸载问题
  • 如何监控云硬盘使用情况 云硬盘的部分监控指标需要安装Agent才能查看。 云服务器安装Agent的具体操作,请参见《 云监控 用户指南》的“安装配置Agent”章节。 表1 磁盘相关监控指标说明 指标 指标名称 指标含义 取值范围 测量对象(维度) 监控周期(原始指标) disk_free (Agent) 磁盘剩余存储量 该指标用于统计测量对象磁盘的剩余存储空间。 单位:GB 采集方式(Linux):执行df -h命令,查看Avail列数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_total (Agent) 磁盘存储总量 该指标用于统计测量对象磁盘存储总量。 单位:GB 采集方式(Linux):执行df -h命令,查看Size列数据。 挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_used (Agent) 磁盘已用存量 该指标用于统计测量对象磁盘的已用存储空间。 单位:GB 采集方式(Linux):执行df -h命令,查看Used列数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_usedPercent (Agent) 磁盘使用率 该指标用于统计测量对象磁盘使用率,以百分比为单位。计算方式为: 磁盘已用存储量/磁盘存储总量。 单位:百分比 采集方式(Linux):通过计算Used/Size得出。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 0-100% 云服务器 - 挂载点 1分钟 父主题: 云硬盘容量问题
  • 安装Agent监控云硬盘使用情况 云硬盘的部分监控指标需要安装Agent才能查看。 云服务器安装Agent的具体操作,请参见《云监控用户指南》的“安装配置Agent”章节。 表1 磁盘相关监控指标说明 指标 指标名称 指标含义 取值范围 测量对象(维度) 监控周期(原始指标) disk_free (Agent) 磁盘剩余存储量 该指标用于统计测量对象磁盘的剩余存储空间。 单位:GB 采集方式(Linux):执行df -h命令,查看Avail列数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_total (Agent) 磁盘存储总量 该指标用于统计测量对象磁盘存储总量。 单位:GB 采集方式(Linux):执行df -h命令,查看Size列数据。 挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_used (Agent) 磁盘已用存量 该指标用于统计测量对象磁盘的已用存储空间。 单位:GB 采集方式(Linux):执行df -h命令,查看Used列数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 ≥0 GB 云服务器 - 挂载点 1分钟 disk_usedPercent (Agent) 磁盘使用率 该指标用于统计测量对象磁盘使用率,以百分比为单位。计算方式为: 磁盘已用存储量/磁盘存储总量。 单位:百分比 采集方式(Linux):通过计算Used/Size得出。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 采集方式(Windows):使用WMI接口GetDiskFreeSpaceExW获取磁盘空间数据。挂载点前缀路径长度不能超过64个字符,必须以字母开头,只能包含0-9/a-z/A-Z/-/./~。 0-100% 云服务器 - 挂载点 1分钟
  • Linux手动查看云硬盘使用情况 以弹性云服务器的操作系统为“CentOS 7.4 64bit”为例,根据是否查看可用容量,分为以下两种情况: 只查看磁盘总容量:执行 lsblk 命令。 回显类似如下信息: [root@ecs-test-0001 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk └─vda1 253:1 0 40G 0 part / vdb 253:16 0 40G 0 disk └─vdb1 253:17 0 40G 0 part 表示当前的弹性云服务器有两块磁盘,“/dev/vda”是系统盘,磁盘总容量为40GiB,“/dev/vdb”是数据盘,磁盘总容量为40GiB。 查看磁盘总容量和可用容量:磁盘必须已挂载并且初始化,执行 df -TH 命令可以查看。 回显类似如下信息: [root@ecs-0001 ~]# df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 43G 2.0G 39G 5% / devtmpfs devtmpfs 509M 0 509M 0% /dev tmpfs tmpfs 520M 0 520M 0% /dev/shm tmpfs tmpfs 520M 7.2M 513M 2% /run tmpfs tmpfs 520M 0 520M 0% /sys/fs/cgroup tmpfs tmpfs 104M 0 104M 0% /run/user/0 /dev/vdb1 ext4 43G 51M 40G 1% /mnt/sdc 表示当前的弹性云服务器有两个磁盘分区,系统盘“/dev/vda1”分区总容量为43GiB,已用2GiB,可用容量为39GiB;“/dev/vdb1”分区总容量为43GiB,已用51MB,可用容量为40GiB。
  • 检查分区的初始磁柱编号是否4KiB对齐 登录云服务器并切换为root用户。 进行性能测试之前,请执行以下步骤,确认磁盘分区的初始磁柱编号是否已经4KiB对齐。 fdisk -lu 回显类似如下信息: [root@ecs-centos sdc]# fdisk -lu Disk /dev/xvda: 10.7 GiB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x7db77aa5 Device Boot Start End Blocks Id System /dev/xvda1 * 2048 20968919 10483436 83 Linux Disk /dev/xvdb: 10.7 GiB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/xvdc: 53.7 GiB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x3cf3265c Device Boot Start End Blocks Id System /dev/xvdc1 2048 41943039 20970496 83 Linux 如果start对应的初始磁柱编号能被8整除,则表示4KiB对齐。 如果start对应的初始磁柱编号不能被8整除,则表示未4KiB对齐,如需继续测试请删除原有分区,重新按照4KiB对齐选择初始磁柱编号。 删除分区并重新按照4KiB对齐选取初始磁柱编号会导致磁盘原有数据的丢失,请谨慎操作。
  • 排查思路 测试云硬盘性能时,云硬盘本身以及压测条件都起着重要的作用。 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。 部分操作会导致磁盘原有数据丢失,建议使用裸盘进行性能测试。 图1 排查思路 表1 排查思路 可能原因 处理措施 分区的初始磁柱编号非4KiB对齐 检查分区的初始磁柱编号是否4KiB对齐。 非4KiB对齐请删除原有分区,重新按照4KiB对齐选择初始磁柱编号。 测试盘不是裸盘 请重新购买裸盘挂载至弹性云服务器进行测试。 压测条件设置不合理 为了发挥出多核并发的系统性能,压测出目标性能指标,建议设置为多核,并且合理安排队列。 数据块大小设置不合理 重新设置数据块大小。 测试IOPS时,建议将数据块设置为一个较小的值,如4k。 测试吞吐量时,建议将数据块设置为一个较大的值,如1024k。
  • 挂载的弹性云服务器数量已达到最大 问题现象:挂载按钮为灰色。 解决思路: 非共享云硬盘:单击挂载按钮提示“只有可用状态的磁盘才能挂载”。 非共享云硬盘只能挂载至一台弹性云服务器,状态为“正在使用”说明已挂载,您可以先卸载云硬盘使状态变为“可用”,然后挂载至目标弹性云服务器。 共享云硬盘:单击挂载按钮提示“共享盘最大挂载16个云服务器”。 共享云硬盘最多可挂载至16台弹性云服务器,您可以根据业务情况,将云硬盘从某台弹性云服务器卸载,然后挂载至目标弹性云服务器。
  • 排查思路 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。 表1 排查思路 问题现象 可能原因及处理措施 在“挂载磁盘”页面找不到目标云服务器。 查看云硬盘和云服务器是否位于同一可用区。 ISO镜像创建的弹性云服务器只建议用来装机,部分功能受限,不支持挂载云硬盘操作。 挂载按钮为灰色。 挂载的弹性云服务器数量已达到最大。 查看云硬盘是否已加入到复制对中。 挂载共享云硬盘提示操作系统类型不对。 解决方法请参考检查共享云硬盘挂载的多台云服务器操作系统是否一致。
  • 查看云硬盘和云服务器是否位于同一可用区 问题现象:单击“挂载”后,在“挂载磁盘”页面找不到目标弹性云服务器。 解决思路:云硬盘只能挂载至同一区域内同一可用区的弹性云服务器,“挂载磁盘”页面的列表已筛选出符合条件的弹性云服务器。 不再需要云硬盘内数据,直接删除或退订即可,然后购买与弹性云服务器在同一个可用区的云硬盘进行挂载使用。 需要云硬盘内的数据,可通过以下方式在其他可用区创建一个具有相同数据的云硬盘。 通过云硬盘创建备份。 图1 创建备份 再从备份创建新的云硬盘,创建过程中可以为云硬盘重新选择“可用区”,同时您也可以修改“磁盘类型”和“高级配置”等参数。 图2 从备份创建云硬盘 创建完成后,单击“挂载”,在“挂载磁盘”页面即可找到目标弹性云服务器。
  • 随弹性云服务器购买的系统盘或数据盘可以换挂载点吗 该场景仅讨论在原弹性云服务器上的挂载点切换。挂载至其他弹性云服务器请参见系统盘和数据盘之间可以随意转换吗。 随弹性云服务器购买的系统盘:卸载后,可以挂载至原弹性云服务器用作系统盘或数据盘。 每个弹性云服务器只能有一块系统盘,如果原弹性云服务器已有新的系统盘,则无法挂载用作系统盘。 随弹性云服务器购买的数据盘:卸载后,只能挂载至原弹性云服务器用作数据盘,无法用作系统盘。 父主题: 云硬盘挂载问题
  • 扩容后的云硬盘能否使用扩容前的备份或快照回滚数据 可以。如果云硬盘在扩容前创建了备份或快照,扩容操作不会影响原有的备份或快照,扩容后的云硬盘可以通过扩容前的备份或快照回滚数据。 回滚数据后的云硬盘状态等同于在控制台上扩容但未扩展分区和文件系统的云硬盘,要想使用新增容量,必须登录云服务器扩展分区和文件系统。 扩展磁盘分区和文件系统操作请参见: 扩展分区和文件系统(Windows) 分区和文件系统扩展概述(Linux) 父主题: 云硬盘扩容问题
  • Linux CentOS 6.5等较老版本的操作系统用fdisk创建分区时,默认为非4KiB对齐选择初始磁柱编号,对性能有较大的影响,建议针对该类操作系统,在创建分区时4KiB对齐选取初始磁柱编号。 本文以“CentOS 7.2 64位”操作系统为例,不同操作系统的格式化操作可能不同,本文仅供参考,具体操作步骤和差异请参考对应操作系统的产品文档。 测试性能前请先安装fio性能测试工具。 登录云服务器并切换为root用户。 进行性能测试之前,请执行以下步骤,确认磁盘分区的初始磁柱编号是否已经4KiB对齐。 fdisk -lu 回显类似如下信息: [root@ecs-centos sdc]# fdisk -lu Disk /dev/xvda: 10.7 GiB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x7db77aa5 Device Boot Start End Blocks Id System /dev/xvda1 * 2048 20968919 10483436 83 Linux Disk /dev/xvdb: 10.7 GiB, 10737418240 bytes, 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/xvdc: 53.7 GiB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x3cf3265c Device Boot Start End Blocks Id System /dev/xvdc1 2048 41943039 20970496 83 Linux 如果start对应的初始磁柱编号能被8整除,则表示4KiB对齐,请执行3进行性能测试。 如果start对应的初始磁柱编号不能被8整除,则表示未4KiB对齐,如需继续测试请删除原有分区,重新按照4KiB对齐选择初始磁柱编号。 删除分区并重新按照4KiB对齐选取初始磁柱编号会导致磁盘原有数据的丢失,请谨慎操作。 执行以下命令,使用fio工具测试磁盘性能。 测试随机写IOPS:fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/opt/fiotest/fiotest.txt -name=Rand_Write_IOPS_Test 测试随机读IOPS:fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/opt/fiotest/fiotest.txt -name=Rand_Read_IOPS_Test 测试写吞吐量:fio -direct=1 -iodepth=32 -rw=write -ioengine=libaio -bs=1024k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/opt/fiotest/fiotest.txt -name=Write_BandWidth_Test 测试读吞吐量:fio -direct=1 -iodepth=32 -rw=read -ioengine=libaio -bs=1024k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/opt/fiotest/fiotest.txt -name=Read_BandWidth_Test 测试单队列随机读时延:fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=60 -group_reporting -filename=/opt/fiotest/fiotest.txt -name=Rand_Read_LATE_Test 使用fio工具进行裸盘性能测试时,不能在已创建文件系统的磁盘上测试,因为fio性能测试会破坏文件系统,导致磁盘变为只读,需要删除后重新购买。 请尽量不要在保存业务数据的磁盘上进行测试。如果需要,请按照以下建议操作: 在测试开始前对磁盘数据进行备份,防止误操作造成数据丢失。 在测试命令中指定filename参数为某个文件,例如-filename=/opt/fiotest/fiotest.txt。 测试fio相关参数说明如表1所示。 表1 参数说明 参数 说明 direct 定义是否使用direct IO,可选值如下: 值为0,表示使用buffered IO 值为1,表示使用direct IO iodepth 定义测试时的IO队列深度。 此处定义的队列深度是指每个线程的队列深度,如果有多个线程测试,意味着每个线程都是此处定义的队列深度。fio总的IO并发数=iodepth * numjobs。例如: 单线程,且-iodepth=32,则该线程的IO队列深度为32,fio总的IO并发数=32*1=32。 多线程(3个线程),且-iodepth=32,则3个线程的IO队列深度均为32,fio总的IO并发数=32*3=96。 rw 定义测试时的读写策略,可选值如下: 随机读:randread 随机写:randwrite 顺序读:read 顺序写:write 混合随机读写:randrw ioengine 定义fio如何下发IO请求,通常有同步IO和异步IO: 同步IO一次只能发出一个IO请求,等待内核完成后才返回。这样对于单个线程IO队列深度总是小于1,但是可以透过多个线程并发执行来解决。通常会用16~32个线程同时工作把IO队列深度塞满。 异步IO则通常使用libaio这样的方式一次提交一批IO请求,然后等待一批的完成,减少交互的次数,会更有效率。 bs 定义IO的块大小(block size),单位是k、K、m和M等,默认IO块大小为4 KB。 size 定义测试IO操作的数据量,如果未指定runtime这类参数,fio会将指定大小的数据量全部读/写完成,然后才停止测试。 该参数的值,可以是带单位的数字,比如size=10G,表示读/写的数据量为10GiB;也可是百分数,比如size=20%,表示读/写的数据量占该设备总文件的20%的空间。 numjobs 定义测试的并发线程数。 runtime 定义测试时间。 如果未配置,则持续将size指定的文件大小,以每次bs值为分块大小读/写完。 group_reporting 定义测试结果显示模式,group_reporting表示汇总每个进程的统计信息,而非以不同job汇总展示信息。 filename 定义测试文件(设备)的名称。 此处选择文件,则代表测试文件系统的性能。例如:-filename=/opt/fiotest/fiotest.txt 此处选择设备名称,则代表测试裸盘的性能。例:-filename=/dev/vdb 须知: 如果在已经分区、并创建文件系统,且已写入数据的磁盘上进行性能测试,请注意filename选择指定文件,以避免覆盖文件系统和原有数据。 name 定义测试任务名称。
  • 操作须知 测试性能时,如果分区的初始磁柱编号是非4KiB对齐,则对性能影响较大,请先确保分区的初始磁柱编号已经4KiB对齐,再开始测试。 测试共享云硬盘性能时,必须满足以下要求: 共享云硬盘必须同时挂载至多台云服务器(弹性云服务器或者裸金属服务器)。 当共享云硬盘挂载至多台弹性云服务器时,这些弹性云服务器必须位于同一个策略为“反亲和性”的云服务器组内。 如果弹性云服务器不满足反亲和性,则共享云硬盘性能无法达到最佳。
  • 为什么无法从快照回滚恢复数据 如果无法从快照回滚数据,可能原因如下: 源云硬盘状态为“可用”或者“回滚数据失败”时才能回滚数据。如果源云硬盘状态为“正在使用”,请先卸载云硬盘再执行回滚数据操作,回滚成功后重新挂载云硬盘即可。 开头为“autobk_snapshot_vbs_”、“manualbk_snapshot_vbs_”、“autobk_snapshot_csbs_”、“manualbk_snapshot_csbs_”的快照,是创建备份时系统自动生成的快照。该快照仅支持查看详细信息,无法用于回滚数据。 父主题: 云硬盘快照问题
  • 排查思路 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。 图1 排查思路 表1 排查思路 可能原因 处理措施 包周期云硬盘存在未生效的续费订单 解决方法请参考包周期云硬盘存在未生效的续费订单 包周期云硬盘存在未支付的扩容订单 解决方法请参考包周期云硬盘存在未支付的扩容订单 共享云硬盘未从所有弹性云服务器卸载 解决方法请参考共享云硬盘未从所有弹性云服务器卸载
  • 功能特性 漏洞管理服务可以帮助您快速检测出您的网站、主机、移动应用存在的漏洞,提供详细的漏洞分析报告,并针对不同类型的漏洞提供专业可靠的修复建议。 网站漏洞扫描 具有OWASP TOP10和WASC的漏洞检测能力,支持扫描22种类型以上的漏洞。 支持使用Ajax、JavaScript、Flash等技术构建网站,支持使用Tomcat、Apache、Nginx、IIS等Web容器部署的网站。 扫描规则云端自动更新,全网生效,及时涵盖最新爆发的漏洞。 支持静态页面和动态页面扫描。 支持HTTPS扫描。 一站式漏洞管理 提供漏洞修复建议。如果您需要查看修复建议,请购买专业版、高级版或者企业版。 支持下载扫描报告,用户可以离线查看漏洞信息。如果您需要下载扫描报告,请购买专业版、高级版或者企业版。 支持重新扫描。 支持弱密码扫描 多场景可用 支持操作系统(RDP协议、SSH协议)、数据库(如Mysql、Redis)等常见中间件弱口令检测。 丰富的弱密码库 丰富的弱密码匹配库,模拟黑客对各场景进行弱口令探测。 支持端口扫描 扫描服务器端口的开放状态,检测出容易被黑客发现的“入侵通道”。 自定义扫描 支持任务定时扫描。 支持基于用户名密码登录、基于自定义Cookie登录。 支持Web 2.0高级爬虫扫描。 支持自定义Header扫描。 支持手动导入探索文件来进行被动扫描。 主机 漏洞扫描 支持深入扫描 通过配置验证信息,可连接到服务器进行OS检测,进行多维度的补丁、已知漏洞、配置检测。 支持操作系统典型服务协议SSH、SSL/TLS的识别和已知漏洞扫描。 支持内网扫描 可以通过跳板机方式访问业务所在的服务器,适配不同企业网络管理场景。 支持中间件扫描 丰富的扫描场景 支持主流Web容器、前台开发框架、后台微服务技术栈的版本漏洞和配置合规扫描。 多扫描方式可选 支持通过标准包或者自定义安装等多种方式识别服务器的中间件及其版本,全方位发现服务器的漏洞风险。 二进制成分分析 全方位风险检测 对软件包/固件进行全面分析,基于各类检测规则,获得相关被测对象的开源软件、信息泄露、安全配置、安全编译选项等存在的潜在风险。 支持各类应用 支持对桌面应用(Windows和Linux)、移动应用程序(APK、IPA、Hap等)、嵌入式系统固件等的检测。 专业分析指导 提供全面、直观的风险汇总信息,并针对不同的扫描告警提供专业的解决方案和修复建议。 移动应用安全 移动应用安全服务能快速扫描您的应用,并提供详细的检测报告,协助您快速定位修复问题。 全自动化测试 您只需上传Android、HarmonyOS应用文件提交扫描任务,即可输出详尽专业的测试报告。 支持工信部等4部委的合规要求进行检测,主要检测内容包括隐私声明和行为一致性检测、权限检测、隐私检测、安全问题检测等内容的自动化检测。 详细的测试报告 详尽的在线测试报告,一键即可下载,报告提供包括问题代码行、修复建议、调用栈信息、违规问题场景截图、关联隐私策略片段等信息。 支持第三方SDK隐私声明解析 针对第三方SDK隐私声明存在“表格”与“外链”两种展示方式。通过插桩方式获取应用隐私声明的url,继而提取并深度分析隐私声明内容。 支撑鸿蒙应用扫描 率先支持鸿蒙应用安全漏洞、隐私合规问题扫描。
  • 响应示例 状态码: 200 OK { "nodes" : [ { "name" : "string", "internal_ip" : "string", "hostname" : "string", "allocatable" : { "cpu" : 0, "memory" : 0, "storage" : 0, "pods" : 0 }, "capacity" : { "cpu" : 0, "memory" : 0, "storage" : 0, "pods" : 0 }, "allocated_resources" : { "request" : { "cpu" : 0, "memory" : 0, "storage" : 0, "pods" : 0 }, "limit" : { "cpu" : 0, "memory" : 0, "storage" : 0, "pods" : 0 } }, "status" : "string", "architecture" : "string", "labels" : { }, "node_type" : "string", "kernel_version" : "string", "os_image" : "string", "container_runtime_version" : "string", "kubernetes_version" : "string", "create_time" : "string" } ] }
  • 响应示例 状态码: 200 OK { "name" : "string", "internal_ip" : "string", "hostname" : "string", "allocatable" : { "cpu" : 0, "memory" : 0, "storage" : 0, "pods" : 0 }, "capacity" : { "cpu" : 0, "memory" : 0, "storage" : 0, "pods" : 0 }, "allocated_resources" : { "request" : { "cpu" : 0, "memory" : 0, "storage" : 0, "pods" : 0 }, "limit" : { "cpu" : 0, "memory" : 0, "storage" : 0, "pods" : 0 } }, "status" : "Ready", "architecture" : "string", "labels" : { }, "node_type" : "string", "kernel_version" : "string", "os_image" : "string", "container_runtime_version" : "string", "kubernetes_version" : "string", "create_time" : "string" }
  • URI GET /v3/{project_id}/clusters/{cluster_id}/nodes/{node_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法请参见 获取项目ID。 cluster_id 是 String 边缘集群ID 最小长度:1 最大长度:64 node_name 是 String 节点名称 最小长度:1 最大长度:64
  • SDK列表 表1介绍了CAE提供的支持的SDK列表,您可以在GitHub仓库查看SDK历史更新、获取安装包以及查看指导文档。 表1 SDK列表 编程语言 Github地址 参考文档 Java huaweicloud-sdk-java-v3 Java SDK使用指导 Python huaweicloud-sdk-python-v3 Python SDK使用指导 Go huaweicloud-sdk-go-v3 Go SDK使用指导
  • 日志字段说明 本章节介绍了AntiDDoS日志包含的日志字段。 表2 全量日志字段说明 字段 说明 logType 日志类型。默认为“ip_attack_sum”,攻击日志。 deviceType 上报日志的设备类型。默认为“CLEAN”,清洗设备。 inKbps 入流量(单位:kbps)。 maxPps 入流量峰值(单位:pps)。 dropPps 丢弃的流量均值(单位:pps)。 maxAttackInBps 攻击流量峰值时刻的入流量值(单位:bps)。 currentConn 当前连接数。 zoneIP 防护的IP。 logTime 日志产生的时间。 attackType 攻击类型,对应的攻击类型请参考表3。 inPps 入流量(单位:pps)。 maxKbps 入流量峰值(单位:kbps)。 dropKbps 丢弃的流量均值(单位:kbps)。 startTime 攻击开始时间。 endTime 攻击结束时间,为空时则表示攻击还未结束。 maxAttackInConn 攻击流量峰值时刻的连接数。 newConn 新建连接数。 表3 攻击类型说明 数值 攻击类型 0-9 自定义服务攻击 10 Syn Flood攻击 11 Ack Flood攻击 12 SynAck Flood攻击 13 Fin/Rst Flood攻击 14 并发连接数超过阈值 15 新建连接数超过阈值 16 TCP分片报文攻击 17 TCP分片BandWidth limit攻击 18 TCP BandWidth limit攻击 19 UDP flood攻击 20 UDP分片攻击 21 UDP分片BandWidth limit攻击 22 UDP BandWidth limit攻击 23 ICMP BandWidth limit攻击 24 Other BandWidth limit攻击 25 总流量限流 26 HTTPS Flood攻击 27 HTTP Flood攻击 28 保留 29 DNS Query Flood攻击 30 DNS Reply Flood攻击 31 Sip Flood攻击 32 黑名单丢弃 33 HTTP URL行为异常 34 TCP分片abnormal丢弃流量 35 TCP abnormal丢弃流量 36 UDP分片abnormal丢弃流量 37 UDP abnormal丢弃流量 38 ICMP abnormal攻击 39 Other abnormal攻击 40 Connection Flood攻击 41 域名劫持攻击 42 DNS投毒攻击报文 43 DNS反射攻击 44 超大DNS报文攻击 45 DNS源请求速率异常 46 DNS源回应速率异常 47 DNS域名请求速率异常 48 DNS域名回应包速率异常 49 DNS请求报文TTL异常 50 DNS报文格式异常 51 DNS Cache匹配丢弃攻击 52 端口扫描攻击 53 TCP Abnormal攻击(tcp 报文标记位异常) 54 BGP攻击 55 UDP关联防范异常 56 DNS NO such Name异常 57 Other 指纹攻击 58 防护对象限流攻击 59 HTTP慢速攻击 60 恶意软件防范 61 域名阻断 62 FILTER过滤 63 Web攻击抓包 64 SIP源限速攻击
  • 云审计 服务支持的Anti-DDoS操作列表 云审计服务(Cloud Trace Service, CTS )记录了Anti-DDoS相关的操作事件,方便用户日后的查询、审计和回溯,具体请参见云审计服务用户指南。 云审计服务支持的Anti-DDoS操作列表如表1所示。 表1 CTS支持的Anti-DDoS操作列表 操作名称 事件名称 开启Anti-DDoS防护 OPEN_ANTIDDOS 修改Anti-DDoS防护配置 UPDATE_ANTIDDOS 设置LTS全量日志配置 UPDATE_LTS_CONFIG 批量添加/编辑TMS资源标签 UPDATE_RESOURCE_TAGS 批量删除TMS资源标签 DELETE_RESOURCE_TAGS 更新租户的告警提醒配置情况 UPDATE_ALERT_CONFIG 修改流量清洗阈值默认档位 UPDATE_DEFAULT_CONFIG 删除流量清洗阈值默认档位 DELETE_DEFAULT_CONFIG 父主题: 审计
  • 日志字段说明 本章节介绍了DDoS原生高级防护日志包含的日志字段。 表2 关键字段说明 字段 说明 currentConn 当前连接数。 maxInPps 入报文峰值(单位:pps)。 newConn 新建连接数。 deviceType 上报日志的设备类型。默认为“CLEAN”,清洗设备。 attackTypes 攻击类型,具体请参考表3。 zoneIP 防护的IP。 logType 日志类型。默认为“ip_attack_sum”,攻击日志。 maxDropPps 攻击报文峰值(单位:pps)。 maxInKbps 入流量峰值(单位:kbps)。 startTime 攻击开始时间。 endTime 攻击结束时间,为空时则表示攻击还未结束。 maxDropKbps 攻击流量峰值(单位:kbps)。 attackStatus 攻击状态。 ATTACK:攻击状态。 NORMAL:正常状态。 表3 攻击类型说明 数值 攻击类型 0-9 自定义服务攻击 10 Syn Flood攻击 11 Ack Flood攻击 12 SynAck Flood攻击 13 Fin/Rst Flood攻击 14 并发连接数超过阈值 15 新建连接数超过阈值 16 TCP分片报文攻击 17 TCP分片BandWidth limit攻击 18 TCP BandWidth limit攻击 19 UDP flood攻击 20 UDP分片攻击 21 UDP分片BandWidth limit攻击 22 UDP BandWidth limit攻击 23 ICMP BandWidth limit攻击 24 Other BandWidth limit攻击 25 总流量限流 26 HTTPS Flood攻击 27 HTTP Flood攻击 28 保留 29 DNS Query Flood攻击 30 DNS Reply Flood攻击 31 Sip Flood攻击 32 黑名单丢弃 33 HTTP URL行为异常 34 TCP分片abnormal丢弃流量 35 TCP abnormal丢弃流量 36 UDP分片abnormal丢弃流量 37 UDP abnormal丢弃流量 38 ICMP abnormal攻击 39 Other abnormal攻击 40 Connection Flood攻击 41 域名劫持攻击 42 DNS投毒攻击报文 43 DNS反射攻击 44 超大DNS报文攻击 45 DNS源请求速率异常 46 DNS源回应速率异常 47 DNS域名请求速率异常 48 DNS域名回应包速率异常 49 DNS请求报文TTL异常 50 DNS报文格式异常 51 DNS Cache匹配丢弃攻击 52 端口扫描攻击 53 TCP Abnormal攻击(tcp 报文标记位异常) 54 BGP攻击 55 UDP关联防范异常 56 DNS NO such Name异常 57 Other 指纹攻击 58 防护对象限流攻击 59 HTTP慢速攻击 60 恶意软件防范 61 域名阻断 62 FILTER过滤 63 Web攻击抓包 64 SIP源限速攻击
  • 日志字段说明 本章节介绍了DDoS高防日志包含的日志字段。 表2 实例攻击日志字段说明 字段 说明 ip 被攻击IP。 ip_id 被攻击IP的ID。 attack_type 攻击的类型。 attack_protocol 该字段尚未使用,默认是0。 attack_start_time 攻击开始时间,毫秒级时间戳。 attack_status 攻击状态。 ATTACK:攻击中。 NORMAL:攻击结束。 drop_kbits 分钟级别的最大攻击流量,单位“bit”。 attack_pkts 分钟级别的最大攻击报文数。 duration_elapse 已结束安全事件的持续时间,单位“秒”。 end_time 攻击结束时间,毫秒级时间戳。未结束的安全事件,该字段为0。 max_drop_kbps 攻击流量的峰值,单位“kbps”。 max_drop_pps 攻击报文的峰值,单位“pps”。 表3 实例攻击详情字段说明 字段 说明 attackStatus 攻击状态。 attackType 攻击状态。 ATTACK:攻击中。 NORMAL:攻击结束。 attackTypeDescCn 攻击类型(中文)。 attackTypeDescEn 攻击类型(英文)。 attackUnit 攻击单位。 attacker 攻击来源。 attackerKbps 攻击流量峰值,单位“kbps”。 attackerPps 攻击流量峰值,单位“pps”。 direction 日志方向。 inbound:入方向。 outbound:出方向。 dropKbits 丢弃的流量总数,单位“kbits”。 dropPackets 丢弃的报文总数。 duration 攻击持续时间,单位“秒”。 handleTime 处理日志时间。 logTime 日志时间。 logType 日志类型。 maxDropKbps IP丢弃流量峰值,单位“kbps”。 maxDropPps IP丢弃流量峰值,单位“pps”。 port 端口号。 startTimeAlert 异常开始时间。 timeScale 时间标识(处理分钟级或小时级数据的标识)。 valid 是否成功解析到日志。 writeTime 持久化时间。 zoneIP 防护IP。 startTimeAttack 攻击开始时间。 startTimeKey 对于同一个攻击不同时间的唯一标识。
  • 新旧版训练代码适配的差异 旧版训练中,用户需要在输入输出数据上做如下配置: #解析命令行参数 import argparse parser = argparse.ArgumentParser(description='MindSpore Lenet Example') parser.add_argument('--data_url', type=str, default="./Data", help='path where the dataset is saved') parser.add_argument('--train_url', type=str, default="./Model", help='if is test, must provide\ path where the trained ckpt file') args = parser.parse_args() ... #下载数据参数至容器本地,在代码中使用local_data_path代表训练输入位置 mox.file.copy_parallel(args.data_url, local_data_path) ... #上传容器本地数据至obs路径 mox.file.copy_parallel(local_output_path, args.train_url)
  • 如何提高训练作业资源利用率 适当增大batch_size:较大的batch_size可以让GPU/NPU计算单元获得更高的利用率,但是也要根据实际情况来选择batch_size,防止batch_size过大导致内存溢出。 提升数据读取的效率:如果读取一个batch数据的时间要长于GPU/NPU计算一个batch的时间,就有可能出现GPU/NPU利用率上下浮动的情况。建议优化数据读取和数据增强的性能,例如将数据读取并行化,或者使用NVIDIA Data Loading Library(DALI)等工具提高数据增强的速度。 模型保存不要太频繁:模型保存操作一般会阻塞训练,如果模型较大,并且较频繁地进行保存,就会影响GPU/NPU利用率。同理,其他非GPU/NPU操作尽量不要阻塞训练主进程太多的时间,如日志打印,保存训练指标信息等。
共100000条