海光终端c86_3g,内存32g,voi模式,在使用his打开多个病例时出现堆内存溢出,但是在资源管理器查看内存正常,如何排查是不是与云桌面有关
软件报错如下:java.lang.QutOfMemoryError: unable to create new native thread
(0)
关键矛盾点:
错误类型:unable to create new native thread
表明是线程创建失败(与进程/线程数限制相关)
物理内存充足(32GB未耗尽)
VOI模式特殊性:系统运行在本地终端,但受云桌面策略管控
检查华三管理控制台策略:
进程/线程限制策略:
登录云桌面管理平台 → 策略管理 → 检查是否设置单用户最大进程数或最大线程数
默认VOI策略可能限制非系统进程(如Java进程)
资源隔离策略:
确认是否启用内存隔离或CPU配额功能(可能虚报"内存正常")
安全沙箱限制:
HIS若运行在云桌面安全沙箱内,可能被限制线程创建能力
临时验证:
# 在云桌面终端运行(需管理员权限)
cat /proc/sys/kernel/pid_max # 检查系统最大进程数
ulimit -u # 检查用户级线程数限制
对比测试:在相同硬件但未安装云桌面客户端的系统运行HIS,观察是否复现
Linux系统(海光C86默认):
# 关键检查命令
grep "Max processes" /proc/<java_pid>/limits # 检查Java进程限制
cat /proc/sys/kernel/threads-max # 系统全局线程上限
cat /proc/sys/vm/max_map_count # 映射区域限制(影响线程创建)
ps -eLf | wc -l # 实时统计系统线程总数
常见诱因:
kernel.pid_max
或 kernel.threads-max
值过低(建议≥32768)
/etc/security/limits.conf
中用户级 nproc
限制
max_map_count
不足(建议≥262144)
JVM配置问题:
# 检查HIS的JVM参数
ps -ef | grep his | grep -E 'Xmx|Xss'
线程栈大小(-Xss
)过大 → 减少栈大小(如 -Xss256k
)
堆内存(-Xmx
)过大 → 挤压线程可用空间
应用层问题:
使用 jstack <pid>
导出线程栈 → 分析HIS是否存在线程泄漏
监控线程数增长:watch -n 1 'ps -T <pid> | wc -l'
检测内存真实性:
# 安装独立监控工具(绕过云桌面代理)
sudo apt install htop
htop --filter=java
检查内核日志:
dmesg -T | grep -i "oom" # 内核OOM事件
journalctl -b -k | grep -i "thread"
紧急措施:
# 临时提高系统限制(需root)
echo 120000 > /proc/sys/kernel/threads-max
echo 65530 > /proc/sys/kernel/pid_max
echo 262144 > /proc/sys/vm/max_map_count
云桌面策略调整:
管理台 → 策略组 → 禁用 进程限制和内存隔离策略
JVM优化:
- -Xmx16g -Xss1m
+ -Xmx8g -Xss256k # 降低堆/栈占用
+ -XX:CICompilerCount=2 # 减少编译线程
终极验证:
绕过云桌面启动系统:重启终端 → 按F2进BIOS → 从本地硬盘直接启动 → 测试HIS
若问题消失 → 确认为云桌面策略导致
若仍存在 → HIS应用或OS层问题
📌 向华三技术支持提工单必带信息:
- •
/var/log/h3c/workspace
日志- •
终端SN号及策略组ID
- •
grep "policy" /etc/h3c/conf/*.conf
输出- •
java -XX:+PrintFlagsFinal
的JVM参数报告
通过此流程可明确区分云桌面策略限制、操作系统配置、应用缺陷三类根源,80%的类似案例源于云桌面的安全策略过度约束。
(0)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论