-
昇腾平台文生文大模型安装技术洞察 1. 检查环境 1.1 确保NPU设备无异常 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数,用来确认对应卡数已经挂载npu-smi info -t board -i 1 | egrep -i "software|firmware" #查看驱动和固件版本1.2 确保docker无异常 docker -v #检查docker是否安装yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch641.3配置IP转发 vim /etc/sysctl.conf 设置 net.ipv4.ip_forward=1source /etc/sysctl.conf 2. 制作容器2.1 获取镜像 docker pull swr.cn-southwest-2.myhuaweicloud.com/ei_ascendcloud_devops/llm_inference:906_a2_20250821 这是运行大模型服务的镜像。 2.2 启动容器 docker run -itd \--device=/dev/davinci0 \--device=/dev/davinci1 \--device=/dev/davinci2 \--device=/dev/davinci3 \--device=/dev/davinci4 \--device=/dev/davinci5 \--device=/dev/davinci6 \--device=/dev/davinci7 \-v /etc/localtime:/etc/localtime \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /etc/ascend_install.info:/etc/ascend_install.info \--device=/dev/davinci_manager \--device=/dev/devmm_svm \--device=/dev/hisi_hdc \-v /var/log/npu/:/usr/slog \-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \-v /sys/fs/cgroup:/sys/fs/cgroup:ro \-v ${dir}:${container_model_path} \--net=host \--name ${container_name} \${image_id} \/bin/bash --name ${container_name}:容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 {image_id} 为docker镜像的ID,可通过docker images查询 实例:docker run -itd \--device=/dev/davinci0 \--device=/dev/davinci1 \--device=/dev/davinci2 \--device=/dev/davinci3 \--device=/dev/davinci4 \--device=/dev/davinci5 \--device=/dev/davinci6 \--device=/dev/davinci7 \-v /etc/localtime:/etc/localtime \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /etc/ascend_install.info:/etc/ascend_install.info \--device=/dev/davinci_manager \--device=/dev/devmm_svm \--device=/dev/hisi_hdc \-v /var/log/npu/:/usr/slog \-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \-v /sys/fs/cgroup:/sys/fs/cgroup:ro \-v /usr/local/data/model_list/model:/usr/local/data/model_list/model \--net=host \--name vllm-qwen \91c374f329e4 \/bin/bash 2.3 制作容器环境 运行命令:docker exec -it -u ma-user ${container_name} /bin/bash export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7export VLLM_PLUGINS=ascend # VPC网段# 需用户手动修改,修改方式见下方注意事项;VPC_CIDR为服务器内网ipVPC_CIDR="192.168.0.0/16" VPC_PREFIX=$(echo "$VPC_CIDR" | cut -d'/' -f1 | cut -d'.' -f1-2)POD_INET_IP=$(ifconfig | grep -oP "(?<=inet\s)$VPC_PREFIX\.\d+\.\d+" | head -n 1)POD_NETWORK_IFNAME=$(ifconfig | grep -B 1 "$POD_INET_IP" | head -n 1 | awk '{print $1}' | sed 's/://')echo "POD_INET_IP: $POD_INET_IP"echo "POD_NETWORK_IFNAME: $POD_NETWORK_IFNAME" # 指定通信网卡export GLOO_SOCKET_IFNAME=$POD_NETWORK_IFNAMEexport TP_SOCKET_IFNAME=$POD_NETWORK_IFNAMEexport HCCL_SOCKET_IFNAME=$POD_NETWORK_IFNAME# 多机场景下配置export RAY_EXPERIMENTAL_NOSET_ASCEND_RT_VISIBLE_DEVICES=1 # 开启显存优化export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True# 配置通信算法的编排展开位置在Device侧的AI Vector Core计算单元export HCCL_OP_EXPANSION_MODE=AIV# 指定可使用的卡,按需指定export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7# 指定绑核,按需指定export CPU_AFFINITY_CONF=1export LD_PRELOAD=/usr/local/lib/libjemalloc.so.2:${LD_PRELOAD}# 默认启用 ascend-turbo-graph模式,指定启动插件export VLLM_PLUGINS=ascend_vllm# 如果使用 acl-graph 或者 eager 模式,指定启动插件 # export VLLM_PLUGINS=ascend# 指定vllm后端 v1export VLLM_USE_V1=1# 指定vllm版本export VLLM_VERSION=0.9.0 export USE_MM_ALL_REDUCE_OP=1export MM_ALL_REDUCE_OP_THRESHOLD=256 # 不需要设置以下环境变量unset ENABLE_QWEN_HYPERDRIVE_OPTunset ENABLE_QWEN_MICROBATCHunset ENABLE_PHASE_AWARE_QKVO_QUANTunset DISABLE_QWEN_DP_PROJ source /home/ma-user/AscendCloud/AscendTurbo/set_env.bash 2.4 运行大模型API服务 nohup python -m vllm.entrypoints.openai.api_server \--model /usr/local/data/model_list/model/QwQ-32B \--max-num-seqs=256 \--max-model-len=512 \--max-num-batched-tokens=512 \--tensor-parallel-size=4 \--block-size=128 \--host=192.168.0.127 \--port=18186 \--gpu-memory-utilization=0.95 \--trust-remote-code \--no-enable-prefix-caching \--additional-config='{"ascend_turbo_graph_config": {"enabled": true}, "ascend_scheduler_config": {"enabled": true}}' > QwQ-32B.log 2>&1 & model为大模型权重文档的路径host为服务器的内网ip,可通过ifconfig查询port为API的端口号,可自定义QwQ-32B.log为写入的日志文档,可自定义 2.5 验证大模型API服务 curl http://${docker_ip}:8080/v1/completions \-H "Content-Type: application/json" \-d '{ "model": "${container_model_path}", "prompt": "hello","max_tokens": 128,"temperature": 0 }'${docker_ip}替换为实际宿主机的IP地址${container_model_path} 的值为大模型路径 API启动命令实例:curl http://192.168.0.127:18186/v1/completions \-H "Content-Type: application/json" \-d '{ "model": "/usr/local/data/model_list/model/QwQ-32B", "prompt": "What is moon","max_tokens": 128,"temperature": 0.5 }' 返回结果实例: {"id":"cmpl-e96e239e2a3b490da361622879eb9c2c","object":"text_completion","created":1757919227,"model":"/usr/local/data/model_list/model/QwQ-32B","choices":[{"index":0,"text":"light made of?\n\nWhat is moon made of?\n\nPlease tell me if those questions are the same.\nOkay, so I need to figure out what moonlight is made of and what the moon itself is made of. Let me start by breaking down each question.\n\nFirst, \"What is moonlight made of?\" Hmm, moonlight. I know that the moon doesn't produce its own light. So, moonlight must be reflected sunlight, right? Like, the sun shines on the moon, and then the moon reflects that light back to Earth. So, if that's the case, then moonlight is just sunlight that's been reflected","logprobs":null,"finish_reason":"length","stop_reason":null,"prompt_logprobs":null}],"usage":{"prompt_tokens":3,"total_tokens":131,"completion_tokens":128,"prompt_tokens_details":null},"kv_transfer_params":null}
-
问题现象:扩容提交,提交按钮卡住分析:F12打开,控制表有报错解决方案:1)源码sources中找到对应的断点 this.unibuyByPass=xxxx2)在此处打断点,然后刷新页面3)控制台输入 this.unibuyByPass=false 回车
-
1.查看对应的底层规格select c.* from rds_cluster_spec a ,rds_cluster_instance_resspec b,rds_resSpecAttr cwhere a.id=b.cluster_spec_id and b.instance_spec_id=c.specIdand a.code='console界面显示的规格名';2.在serviceOM查看新规格对应的规格ID3.更新映射表updaterds_resSpecAttr set value='新底层规格'wherespecId='xxx' and attrcode='flavor';--新底层规格ID,xxx对应替换
-
问题现象ECF 安装Common MySQL 失败DWS_安装GaussDB 失败定位信息界面查看日志,有如下关键信息ERROR:check the etcd node xx.xx.xx.xx:22379 healthy is fail从hcc后台curl 对应ip端口网络不通xx.xx.xx.xx:22379解决方案联系ETCD检查etcd服务是否正常,修复后重试
-
1. 升级前操作问题现象:租户面进入数据库内核升级,内核升级执行失败。进入沙箱,在$GAUSSLOG/om/gs_upradectl*日志中发现,执行升级失败,执行回滚失败。查看cn-1-1节点的$GAUSSLOG/om/gs_local*日志。升级SQL对系统表的更新导致锁等待超时失败处理方法:1)升级前检查并设置环境中死锁配置参数值。gsql postgresql://:8000/postgres?application_name='OM' -r -c 'show deadlock_timeout'参数小于10min,则执行下面命令设置gs_guc reload -Z datanode -Z coordinator -N all -I all -c 'deadlock_timeout=10min'2)重入。根据2章节进行处理3)如果guc参数有设置升级完成后,恢复guc参数gs_guc reload -Z datanode -Z coordinator -N all -I all -c 'deadlock_timeout=获取的值'2.升级中规避方法问题现象:升级SQL对系统表的更新导致锁等待观察方法:登录集群第一个cn节点,切换Ruby用户,进入沙箱。根据如下命令查看升级进度。tail -f $GAUSSLOG/om/gs_upgradectl*.log当日志刷新执行到 '-t update_catalog'。登录数据库观察锁情况。循环执行如下SQL:SELECT datname, query_start, query FROM pgxc_stat_activity WHERE application_name='OM'; SELECT 'EXECUTE DIRECT ON(' || nodename || ') ''SELECT pg_terminate_backend('||pid||')'';' kill_query, dbname, query FROM pgxc_lock_conflicts ;说明:升级过程中执行的命令和其他语句锁冲突,锁超时报错(升级的时候冲突,回滚的时也会冲突,所以不仅会导致升级卡住,还会导致回滚卡住)处理方法:登录集群第一个cn节点,切换Ruby用户,进入沙箱。 执行如下SQL获取冲突SQL。将卡住升级的SQL语句全杀掉。例如:SELECT 'EXECUTE DIRECT ON(' || nodename || ') ''SELECT pg_terminate_backend('||pid||')'';' kill_query, dbname, query FROM pgxc_lock_conflicts where query not ilike '%ADD COLUMN%';①带 ADD COLUMN 的是升级执行的语句,其余全杀②杀语句的多条命令一起执行,一起杀。否则可能死锁导致命令快速失败。kill的SQL直接通过查询语句获取。
-
问题现象:重启裸金属实例后,bond0,bond0.xxx前两个网卡ip没有挂上应对措施:登录BMC,root用户手动重启bms-network-config服务service bms-network-config restart加固措施:将service bms-network-config restart加入到自启服务中echo 'service bms-network-config restart'>> /etc/rc.d/rc.local
-
触发条件:该问题为操作系统xfs内部实现bug,存在于EulerOS 2.9之前的所有历史版本。故障现象:数据库实例进程状态变为D状态,进程hang,集群状态无法降级。业务阻塞,数据库实例进程无法kill,需要重启OS恢复。判断方法:步骤1:使用管理员用户登录数据库。步骤2:对数据库环境进行检查。如果OS为EulerOS 2.9之前的所有历史版本,则继续执行下面的步骤,进行D进程确认;否则跳过。步骤3:执行如下命令获取进程状态ps -elf | grep gaussdb步骤4:如果gaussdb进程处于D状态(僵死状态)时,则通过如下方法检查是触发了xfs的D进程bug。通过步骤3获取到gaussdb进程的pid。查看进程栈信息。如果栈信息是如下内容,则表示当前进程是僵死在write_cache_pages函数中。【措施和方案】給当前的数据库环境打xfs热补丁。具体实现参见 https://bbs.huaweicloud.com/forum/thread-0207147167992868006-1-1.html
-
【措施和方案】请联系DWS运维人员,提变更保障整改。在support中下载xfs热补丁包规避措施步骤:使用root用户登录需要部署补丁的机器,进入/root目录将附件中的xfs_files.tar.gz包拷贝至补丁机器的/root目录,并解压缩;创建临时文件/root/fix_patch_by_self.sh为解压缩后的文件fix_patch_by_self.sh赋权: chmod +x /root/fix_patch_by_self.sh执行热补丁部署sh fix_patch_by_self.sh -i回滚热补丁(选做)sh fix_patch_by_self.sh -u
-
1. 问题现象:进程偶发性D住并且无法恢复,其堆栈信息如下:2 原因说明: Xfs在执行do_writepages时产生死锁。xfs write死锁,IO现场Hang。 3 问题处理 补丁修改内容参考:参加附件xfs_patch.txt4 OS分析参考 https://lore.kernel.org/all/20181218043626.GA31274@dastard/T/
-
1. 背景EulerOS 2.9之前的版本存在xfs 读写bug。当触发操作系统中xfs的bug时,会导致gaussdb进程成为僵尸进程,集群不可用。目前HCS大多数局点都存在风险,开发此脚本进行全网排查。排查原理:1、当EulerOS且内核版本(uname -a)大于4.19.87时,不涉及此问题;2、当OS为EulerOS SP9 和EulerOS SP10时,不涉及此问题。2. 使用要求机器已安装集群集群互信正常(集群属主用户SSH登陆免密)3. 使用方法 实现脚本参加附件check_kernel_version.txt检查脚本。在使用前先将文件后缀.txt修改为.py。HCS:将脚本上传至集群任意节点的沙箱内/home/Ruby/目录下登陆沙箱内执行命令: python /home/Ruby/check_kernel_version.py将结果进行截图或文本复制。ESL:将脚本上传至任意数据节点/home/omm/目录下root登陆此数据节点,执行以下命令:chown omm: /home/omm/check_kernel_version.pychmod +x /home/omm/check_kernel_version.py 3. 执行以下命令:su - ommsource /opt/huawei/Bigdata/mppdb/.mppdbgs_profilepython /home/omm/check_kernel_version.py 4. 将结果进行截图或文本复制。
-
诉求:在节点安装监控工具,需要打开xxxx端口解决措施:1.修改节点防火墙设置:1)iptables -I INPUT 1 -p tcp —dport {要放通的端口} -j ACCEPT2)修改配置文件 /etc/sysconfig/iptables.save 参考8000端口进行配置,永久生效2.租户侧安全组放通对应的端口,入方向设置为any等3.修改完成可以尝试监控eth1网卡, curl ip:端口 或者 telnet ip 端口
-
华为云开发者日·2023年度创享峰会来啦!参加“使用Mindformers大模型套件快速构建 ChatGLM6B推理”项目,提出你的建议有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来吧【体验项目】使用Mindformers大模型套件快速构建 ChatGLM6B推理【活动时间】2023年12月20日-12月31日【参与方式】直接在此活动帖下方回帖提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“使用Mindformers大模型套件快速构建 ChatGLM6B推理”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
-
【问题现象】升级完成后,提交时失败【日志现象】ERROR:The database cannot be created during the database upgrade【解决措施】检查upgrade_mode的值,如果为2,则将其修改为0,重新提交即可gs_guc reload -Z datanode -Z coordinator -N all -I all -c 'upgrade_mode=0'然后提交重试
-
问题现象:jsonb中小于1的小数没有0,导致报错ERROR: XXX invalid input syntax for type jsonDETAIL: Token "." is invalid解决方案:behavior_compat_options参数中增加'display_leading_zero'具体措施:1.查看参数值 behavior_compat_options:show behavior_compat_options2.增加值 display_leading_zero 设置后全局生效:gs_guc reload -Z coordinator -Z datanode -N all -I all -c "behavior_compat_options= 'xx,display_leading_zero'"--xx 表示系统初始配置配置参数,display_leading_zero是新增配置项,追加到最后整改后影响:小数点前为0的,比如0.001,以前select语句的输出是.001,修改后为0.001
-
现象:存在reindex失败的问题,主键冲突报错 规避方法:1、查询表定义(\d+ $table),找到索引列对应的字段2、用找到的字段查询(如:id)$table=lts.lts_task_t groupselect id::text ,count(1) as num from lts.lts_task_t group by 1 having num >1;3、随意再找另一个非空字段(如:tsk_group_id)排查SELECT xc_node_id,tsk_group_id,xmin FROM lts.lts_task_t WHERE id::text::bigint = 44727;4、起事务执行(tsk_group_id以及xmin均为第3步查出的结果)start transaction;select tsk_group_id from lts.lts_task_t where tsk_group_id=1118 and xmin=9247872954;---查出唯一1条记录时在进行删除delete job_id from lts.lts_job_running_log_t where job_id=15 and xmin=9247873466;如果xmin一样,则建议删除时间早的记录commit;
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签