云服务器内容精选
-
CPU占用率高问题定位 远程登录云服务器。 执行以下命令查看当前系统的运行状态。 top 系统回显样例如图1所示。 图1 回显信息 查看显示结果。 命令回显第一行:20:56:02 up 37 days,1 user, load average: 0.00, 0.01, 0.05的每个字段含义如下: 系统当前时间为20:56:02,该云服务器已运行37天,当前共有1个用户登录, 最近1分钟、最近5分钟和最近15分钟的CPU平均负载。 命令回显第三行:CPU资源总体使用情况。 命令回显第四行:内存资源总体使用情况。 回显最下方显示各进程的资源占用情况。 在top页面,可以直接输入小写“q”或者在键盘上按“Ctrl+C”退出。 除了直接输入命令,您还可以单击VNC登录页面屏幕右上角的“Input Command”,在弹出的对话框中粘贴或者输入相应命令,单击“Send”。 在top运行中常用的内容命令如下: s:改变画面更新频率。 l:关闭或开启第一部分第一行top信息的表示。 t:关闭或开启第一部分第二行Tasks和第三行Cpus信息的表示。 m:关闭或开启第一部分第四行Mem和 第五行Swap信息的表示。 N:以PID的大小的顺序排列进程列表。 P:以CPU占用率大小的顺序排列进程列表。 M:以内存占用率大小的顺序排列进程列表。 h:显示命令帮助。 n:设置在进程列表所显示进程的数量。 通过ll /proc/PID/exe命令可以查看每个进程ID对应的程序文件。
-
CPU使用率高问题处理 对于导致CPU使用率高的具体进程,如果确认是异常进程,可以直接通过top命令终止进程。对于kswapd0进程导致的CPU使用率高的问题,则需要对应用程序进行优化,或者通过增加内存进行系统规格的升级。 kswapd0是系统的虚拟内存管理程序,如果物理内存不够用,系统就会唤醒kswapd0进程,由kswapd0分配磁盘交换空间用作缓存,因而占用大量的CPU资源。 使用top命令终止CPU占用率高的进程 您可以直接在top运行界面快速终止相应的异常进程。操作步骤如下: 在top命令运行的同时,按下小写的“k”键。 输入要终止进程的PID。 进程的PID为top命令回显的第一列数值。例如,要终止PID为52的进程,直接输入“52”后回车。 操作成功后,会出现如图2所示信息,按回车确认。 图2 操作成功示例 kswapd0进程占用导致CPU使用率高 可通过以下步骤排查进程的内存占用情况。 通过top命令查看kswapd0进程的资源使用。 如果kswapd0进程持续处于非睡眠状态,且运行时间较长,可以初步判定系统在持续的进行换页操作,可以将问题转向内存不足的原因来排查。 通过vmstat命令进一步查看系统虚拟内存的使用情况。 如果si和so的值也比较高,说明系统存在频繁的换页操作,系统物理内存不足。 si:每秒从交换区写到内存的大小,由磁盘调入内存。 so:每秒写入交换区的内存大小,由内存调入磁盘。 对于内存不足问题,可以通过free、ps等命令进一步查询系统及系统内进程的内存占用情况,做进一步排查分析。 临时可通过在业务空闲期重启应用或者系统释放内存。 如果要从根本上解决内存不足的问题,需要对服务器内存进行扩容,扩大内存空间。如果不具备扩容的条件,可通过优化应用程序,以及配置使用大页内存来进行缓解。
-
带宽使用率高问题分析 如果是正常业务访问以及正常应用进程导致的带宽使用率高,需要升级服务器的带宽进行解决。如果是非正常访问,如某些特定IP的恶意访问,或者服务器遭受到了CC攻击。或者异常进程导致的带宽使用率高。可以通过流量监控工具nethogs来实时监测统计各进程的带宽使用情况,并进行问题进程的定位。 使用nethogs工具进行排查 执行以下命令,安装nethogs工具。 yum install nethogs -y 安装成功后可以通过netgos命令查看网络带宽的使用情况。 nethogs命令常用参数说明如下: -d:设置刷新的时间间隔,默认为1s。 -t:开启跟踪模式。 -c:设置更新次数。 device:设置要监测的网卡,默认是eth0。 运行时可以输入以下参数完成相应的操作: q:退出nethogs工具。 s:按发送流量大小的顺序排列进程列表。 r:按接收流量大小的顺序排列进程列表。 m:切换显示计量单位,切换顺序依次为KB/s、KB、B、MB。 执行以下命令,查看指定的网络端口每个进程的网络带宽使用情况。 nethogs eth1 回显参数说明如下: PID:进程ID。 USER:运行该进程的用户。 PROGRAM:进程或连接双方的IP地址和端口,前面是服务器的IP和端口,后面是客户端的IP和端口。 DEV:流量要去往的网络端口。 SENT:进程每秒发送的数据量。 RECEIVED:进程每秒接收的数据量。 终止恶意程序或者屏蔽恶意访问IP。 如果确认大量占用网络带宽的进程是恶意进程,可以使用kill PID命令终止恶意进程。 如果是某个IP恶意访问,可以使用iptables服务来对指定IP地址进行处理,如屏蔽IP地址或限速。 使用Web应用防火墙防御CC攻击 若服务遭受了CC攻击,请在Web应用防火墙控制台开启CC安全防护。Web应用防火墙的使用指导请参见配置CC防护策略。
-
配置集群参数 查询TopSQL资源监控信息之前,需要先配置相关的GUC参数,以便能查询到作业的资源监控历史信息或归档信息。步骤如下: 登录GaussDB(DWS)管理控制台。 在“集群管理”页面,找到所需要的集群,单击集群名称,进入集群详情页面。 单击“参数修改”标签页,可以看到当前集群的参数值。 修改参数resource_track_duration值为合适的值,单击“保存”按钮进行保存。 enable_resource_record开关打开后,会引起存储空间膨胀及轻微性能影响,不用时请关闭。 返回集群管理页面,单击右上角的刷新按钮,等待集群参数配置完成。
-
请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限,获取Token接口响应消息头中X-Subject-Token的值即为Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 from_time 否 Long 查询监控数据起始时间,UNIX时间戳,单位毫秒,不填时默认为当前时间 to_time 否 Long 查询数据截止时间,UNIX时间戳,单位毫秒,不填时默认为当前时间 period 否 String 监控数据周期。枚举值,取值范围:real_time(实时数据)、five_minutes(5分钟粒度)、fifteen_to_twenty_minutes(15-20分钟粒度)、one_hour(1小时粒度),不填时默认为real_time 枚举值: real_time five_minutes fifteen_to_twenty_minutes one_hour method 否 String 统计方法。枚举值,取值范围:max(最大值)、min(最小值)、average(平均值),不填时默认为max 枚举值: max min average resource_ids 是 Array of strings 查询的监控资源对象id集合 最小长度:1 最大长度:128 数组长度:1 - 50
-
响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 metric_statistics Array of ResourceStatDataRsp objects 资源统计数据列表 表5 ResourceStatDataRsp 参数 参数类型 描述 statistic String 统计值 unit String 数据单位 metric_name String 监控指标名称 resource_id String 监控资源id device_id String 显卡id
-
请求示例 批量下载监控数据,设置起止时间,实时数据,统计方式为max, 指定资源id列表 https://eihealth.cn-north-4.myhuaweicloud.com/v1/{project_id}/metric-data/batch-stat-metric-data { "from_time" : 1234567891011, "to_time" : 1234567891012, "period" : "real_time", "method" : "max", "resource_ids" : [ 123456789 ] }
-
响应示例 状态码: 200 OK { "metric_statistics" : [ { "statistic" : "12345", "unit" : "bytes/second", "metric_name" : "read_bandwidth", "resource_id" : "123456789", "device_id" : "123456789" } ] }
-
响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 data_points Array of DataPointDto objects 监控数据列表 metric_name String 监控指标名称 resource_id String 监控资源id 表5 DataPointDto 参数 参数类型 描述 timestamp Long 时间戳 unit String 数据单位 value Number 统计结果
-
URI GET /v1/{project_id}/metric-data 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 华为云项目ID,您可以从获取项目ID中获取。 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 from_time 否 Long 查询监控数据起始时间,UNIX时间戳,单位毫秒,不填时默认为当前时间 to_time 否 Long 查询数据截止时间,UNIX时间戳,单位毫秒,不填时默认为当前时间 period 否 String 监控数据周期。枚举值,取值范围:real_time(实时数据)、five_minutes(5分钟粒度)、fifteen_to_twenty_minutes(15-20分钟粒度)、one_hour(1小时粒度),不填时默认为real_time 缺省值:real_time method 否 String 统计方法。枚举值,取值范围:max(最大值)、min(最小值)、average(平均值),不填时默认为max 缺省值:max metric_name 是 String 查询的监控指标名称 resource_id 否 String 查询的监控资源对象id,当查询存储资源和计算节点资源中的集群监控数据时,不需要填写资源id 最小长度:1 最大长度:128 device_id 否 String 显卡id,仅查询裸金属节点的gpu监控时,需要指定 最小长度:1 最大长度:128
-
内存监控 GaussDB(DWS)提供了监控整个集群内存使用状态的视图: 查询pgxc_total_memory_detail视图,必须具有sysadmin权限。 1 SELECT * FROM pgxc_total_memory_detail; 如果查询该视图时出现以下错误,请开启内存管理功能。 1 2 3 SELECT * FROM pgxc_total_memory_detail; ERROR: unsupported view for memory protection feature is disabled. CONTEXT: PL/pgSQL function pgxc_total_memory_detail() line 12 at FOR over EXECUTE statement 用户可通过GaussDB(DWS) 控制台设置enable_memory_limit和max_process_memory参数来开启内存管理功能,方法如下: 登录GaussDB(DWS) 管理控制台。 在左侧导航栏中,单击“集群管理”。 在集群列表中找到所需要的集群,单击集群名称,进入集群“基本信息”页面。 单击“参数修改”页签,修改参数“enable_memory_limit”的值为on,然后单击“保存”。 修改参数“max_process_memory”的值为合适的值,修改建议请参见max_process_memory,然后单击“保存”。 在“修改预览”窗口,确认修改无误后,单击“保存”。修改完成后需要重启集群,参数才会生效。
-
操作步骤 查询所有用户的资源限额和资源实时使用情况。 1 SELECT * FROM PG_TOTAL_USER_RESOURCE_INFO; 得到的结果视图如下: username | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed -----------------------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------ perfadm | 0 | 0 | 0 | 0 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 usern | 0 | 17250 | 0 | 48 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 (2 rows) 其中,IO资源监控字段(read_kbytes、write_kbytes、read_counts、write_counts、read_speed和write_speed)需要在GUC参数enable_user_metric_persistent开启时才有监控数据。 所查各字段说明详见PG_TOTAL_USER_RESOURCE_INFO 。 查询具体某个用户的资源限额和资源实时使用情况。 1 SELECT * FROM GS_WLM_USER_RESOURCE_INFO('username'); 查询结果如下: userid | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed --------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------ 16407 | 18 | 1655 | 6 | 19 | 13787176 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 (1 row) 查询所有用户的资源限额和资源历史使用情况。 1 SELECT * FROM GS_WLM_USER_RESOURCE_HISTORY; 查询结果如下: username | timestamp | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed -----------------------+-------------------------------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+-------------+-------------+------------+------------ usern | 2020-01-08 22:56:06.456855+08 | 0 | 17250 | 0 | 48 | 0 | -1 | 0 | -1 | 88349078 | -1 | 45680 | 34 | 5710 | 8 | 320 | 0 | 0 | 0 userg | 2020-01-08 22:56:06.458659+08 | 0 | 15525 | 33.48 | 48 | 0 | -1 | 0 | -1 | 110169581 | -1 | 17648 | 23 | 2206 | 5 | 123 | 0 | 0 | 0 userg1 | 2020-01-08 22:56:06.460252+08 | 0 | 13972 | 33.48 | 48 | 0 | -1 | 0 | -1 | 136106277 | -1 | 17648 | 23 | 2206 | 5 | 123 | 0 | 0 | 0 对于系统表GS_WLM_USER_RESOURCE_HISTORY,仅当GUC参数enable_user_metric_persistent开启时,才会定期将视图PG_TOTAL_USER_RESOURCE_INFO中的数据保存到历史表中。 所查各字段说明详见GS_WLM_USER_RESOURCE_HISTORY。
-
注意事项 用户监控可以同时监控快慢车道(快车道管控简单作业,慢车道管控复杂作业)所有作业的CPU、IO和内存使用情况,不再受限于仅监控慢车道作业。 当前快车道作业内存和CPU不受控,在快车道运行作业占用资源较多情况下,可能出现已用资源大于资源限制的情况。 DN监控视图中,IO、内存和CPU显示的是本DN上资源池资源使用和资源限制信息。 CN监控视图中,IO、内存和CPU显示的是集群内所有DN资源池资源使用和资源限制的累积和。 DN每隔5s更新一次监控信息,CN每隔5s从DN收集一次用户监控信息,因为各实例单独更新/收集用户监控信息,因此各实例监控信息更新时间可能不一致。 辅助线程中每隔30s自动调用持久化函数,持久化用户监控数据,正常情况下不需要用户单独调用持久化函数持久化用户监控数据。 当用户数量较多,集群规模较大时,查询此类实时视图,因CN/DN间实时通信开销,会有一定的网络延时。 初始管理用户不进行资源监控。
-
简介 多租户管理框架下,用户关联资源池执行查询,用户执行查询所占用的资源将汇总至关联资源池上,通过资源池监控视图,用户可以直观的查询到所有资源池的实时资源使用情况,同时也可以通过资源池监控历史表查询资源池资源的历史使用情况。 资源池监控数据每5s更新一次,但是因为CN和DN时间差,实际监控数据更新时间可能会大于5s,正常不会超过10s。资源池监控数据每30s持久化一次,资源池监控和用户监控逻辑基本一致,因此共用GUC参数控制持久化和老化,使用GUC参数enable_user_metric_persistent控制是否进行资源池监控数据持久化,使用GUC参数user_metric_retention_time控制资源池监控数据老化。 资源池监控的资源包含:快慢车道作业运行和排队信息,CPU、内存以及逻辑IO资源监控信息。涉及的监控视图和历史表如下: 资源池实时运行信息监控视图(单CN):GS_RESPOOL_RUNTIME_INFO。 资源池实时运行信息监控视图(所有CN):PGXC_RESPOOL_RUNTIME_INFO。 资源池实时资源监控视图(单CN):GS_RESPOOL_RESOURCE_INFO。 资源池实时资源监控视图(所有CN):PGXC_RESPOOL_RESOURCE_INFO。 资源池历史资源监控表(单CN):GS_RESPOOL_RESOURCE_HISTORY。 资源池历史资源监控视图(所有CN):PGXC_RESPOOL_RESOURCE_HISTORY。 资源池监控可以同时监控快慢车道所有作业的CPU、IO和内存使用情况,不再受限于仅监控慢车道作业。 当前快车道作业内存和CPU不受控,在快车道运行作业占用资源较多情况下,可能出现已用资源大于资源限制的情况。 DN资源池监控视图中,IO、内存和CPU显示的是本DN上资源池资源使用和资源限制信息。 CN资源池监控视图中,IO、内存和CPU显示的是集群内所有DN资源池资源使用和资源限制的累积和。 DN每隔5s更新一次资源池监控信息,CN每隔5s从DN收集一次资源池监控信息,因为各实例单独更新/收集资源池监控信息,因此各实例监控信息更新时间可能不一致。 辅助线程中每隔30s自动调用持久化函数,持久化资源池监控数据,正常情况下不需要用户单独调用持久化函数持久化资源池监控数据。
-
操作步骤 查询资源池的作业实时运行情况。 1 SELECT * FROM GS_RESPOOL_RUNTIME_INFO; 得到的结果视图如下: nodegroup | rpname | ref_count | fast_run | fast_wait | slow_run | slow_wait -----------+--------------+-----------+----------+-----------+----------+----------- vc1 | p2 | 10 | 0 | 0 | 0 | 0 vc2 | p3 | 10 | 5 | 5 | 0 | 0 vc2 | p4 | 0 | 0 | 0 | 0 | 0 vc1 | default_pool | 0 | 0 | 0 | 0 | 0 vc2 | default_pool | 0 | 0 | 0 | 0 | 0 vc1 | p1 | 20 | 5 | 5 | 3 | 7 (6 rows) 其中: ref_count为引用当前资源池信息的作业数,语句从进入管控到结束一直占用该计数; fast_run和slow_run为负载管理记账信息,只有管控(fast_limit/slow_limit大于0)时该值才有效; 该视图仅在CN上有效,持久化信息保存在GS_RESPOOL_RESOURCE_HISTORY中; 各字段说明详见GS_RESPOOL_RUNTIME_INFO。 查询资源池的资源限额和资源实时使用情况。 1 SELECT * FROM GS_RESPOOL_RESOURCE_INFO; 得到的结果视图如下: nodegroup | rpname | cgroup | ref_count | fast_run | fast_wait | fast_limit | slow_run | slow_wait | slow_limit | used_cpu | cpu_limit | used_mem | estimate_mem | mem_limit |read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed -----------+--------------+---------------------+-----------+----------+-----------+------------+----------+-----------+------------+----------+-----------+----------+--------------+-----------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------ vc1 | p2 | DefaultClass:Rush | 10 | 0 | 0 | -1 | 0 | 0 | 10 | 9.97 | 48 | 20 | 0 | 11555 | 8 | 2880 | 1 | 360 | 1 | 589 | 0 | 0 vc2 | p3 | DefaultClass:Rush | 10 | 5 | 5 | 5 | 0 | 0 | 10 | 4.98 | 48 | 11 | 0 | 11555 | 0 | 848 | 0 | 106 | 0 | 173 | 0 | 0 vc2 | p4 | DefaultClass:Rush | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 vc1 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 vc2 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 vc1 | p1 | DefaultClass:Rush | 20 | 5 | 5 | 5 | 3 | 7 | 3 | 7.98 | 48 | 16 | 768 | 11555 | 8 | 2656 | 1 | 332 | 1 | 543 | 0 | 0 (6 rows) 该视图在CN和DN上均有效,DN上CPU、内存和IO为本DN资源消耗情况,CN上CPU、内存和IO为集群内所有DN上资源消耗的累加和; estimate_mem仅在动态负载管理情况下CN上有效,显示资源池估算内存记账情况; IO监控信息仅在enable_logical_io_statistics开启时才会记录; 各字段说明详见GS_RESPOOL_RESOURCE_INFO。 查询资源池的资源限额和资源历史使用情况。 1 SELECT * FROM GS_RESPOOL_RESOURCE_HISTORY ORDER BY timestamp DESC; 得到的结果视图如下: timestamp | nodegroup | rpname | cgroup | ref_count | fast_run | fast_wait | fast_limit | slow_run | slow_wait | slow_limit | used_cpu | cpu_limit | used_mem | estimate_mem | mem_limit | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed | send_speed | recv_speed -------------------------------+--------------+--------------+---------------------+-----------+----------+-----------+------------+----------+-----------+------------+----------+-----------+----------+--------------+-----------+-------------+--------------+-------------+--------------+------------+-------------+------------+------------ 2022-03-04 09:41:57.53739+08 | vc1 | p2 | DefaultClass:Rush | 10 | 0 | 0 | -1 | 0 | 0 | 10 | 9.97 | 48 | 20 | 0 | 11555 | 0 | 2320 | 0 | 290 | 0 | 474 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc1 | p1 | DefaultClass:Rush | 20 | 5 | 5 | 5 | 3 | 7 | 3 | 7.98 | 48 | 16 | 768 | 11555 | 0 | 1896 | 0 | 237 | 0 | 387 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc2 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc1 | default_pool | DefaultClass:Medium | 0 | 0 | 0 | -1 | 0 | 0 | -1 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc2 | p4 | DefaultClass:Rush | 0 | 0 | 0 | -1 | 0 | 0 | 10 | 0 | 48 | 0 | 0 | 11555 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 2022-03-04 09:41:57.53739+08 | vc2 | p3 | DefaultClass:Rush | 10 | 5 | 5 | 5 | 0 | 0 | 10 | 4.99 | 48 | 11 | 0 | 11555 | 0 | 880 | 0 | 110 | 0 | 180 | 0 | 0 2022-03-04 09:41:27.335234+08 | vc2 | p3 | DefaultClass:Rush | 10 | 5 | 5 | 5 | 0 | 0 | 10 | 4.98 | 48 | 11 | 0 | 11555 | 0 | 856 | 0 | 107 | 0 | 175 | 0 | 0 该监控信息来自资源池监控历史表,enable_user_metric_persistent开启时每30秒记录一次; 该表数据保存时间由GUC参数user_metric_retention_time控制; 各字段说明详见GS_RESPOOL_RESOURCE_HISTORY。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格