本文简单介绍Opentcs的本地开发调试
环境准备
- 我们准备的是Opentcs5.x ,因为老项目的限制,暂时不考虑高版本。
- Openjdk必须是13.x 请格外注意
- 如果要开发GUI界面,必须使用Netbean IDE开发,因为Opentcs用的可视化组件中,很多是Netbean独有的Swing组件,其他的Idea是打不开的。
本文简单介绍Opentcs的本地开发调试
本文介绍OpenTCS的核心架构和基本概念。
OpenTCS采用模块化设计,主要包含以下核心组件:
在日常的系统运维和故障排查中,资源泄漏是一个常见但又令人头疼的问题。文件句柄泄漏、TCP 连接泄漏、UDP 套接字泄漏等问题如果不及时发现和处理,往往会导致系统性能下降甚至服务不可用。
传统的排查方式需要在服务器上执行各种命令,然后手动分析输出结果,不仅效率低下,还容易遗漏关键信息。为了解决这个痛点,我开发了一套在线可视化工具,让资源泄漏的问题定位变得简单高效。
ctbots.com 提供了三个专门的资源泄漏分析工具:
某些特殊的硬件,安装pve时,会出现白屏的情况,导致无法可视化GUI安装,处理方式如下:
进入Debug模式后操作如下:
cd /etc/X11
Xorg -configure
mv xorg.conf.new xorg.conf
用top、htop这些工具只能告诉你进程用了多少内存,却看不到内存到底是怎么分布的。我开发了一个在线可视化工具,让内存分析变得更轻松。
pmap就像是给进程内存拍个"全家福",它能显示一个进程的所有内存映射区域。
# 显示详细信息
pmap -x 1234
如果历史上曾经发生过性能问题,但是却没有监控系统采集过数据,那么很可能就剩下sar这一条路了。sar就像是系统的"体检报告",能告诉你CPU、内存、磁盘、网络在过去一段时间里到底发生了什么。
sar的全称是System Activity Reporter,系统活动报告器。简单说,它每隔几分钟就会把系统的各种性能指标记录下来。不像top或htop只能看当前状态,sar能让你回到过去,看看昨天晚上2点系统到底发生了什么。
但是使用sar有一个很大成本,就是没有比较好的可视化工具来显示sar的数据,大多数情况下,只能人肉去翻看,定位问题的成本很高。
说到Linux系统调试,strace绝对是个神器。我平时排查问题的时候,经常遇到这样的情况:程序莫名其妙地慢了,或者某个服务突然不工作了,但从日志里又看不出什么端倪。这时候strace就派上用场了,它能帮你看到程序到底在底层做了什么。
简单来说,strace就是个"偷听器"。它能监听你的程序和Linux内核之间的所有对话。每当你的程序想要读个文件、写个网络包、分配点内存,都得通过系统调用跟内核沟通。strace就把这些对话全部记录下来,让你一目了然。
比如你运行一个简单的ls
命令:
Linux系统内存管理中,Slab是内核用于高效分配小块内存的重要机制。通过分析Slab内存使用情况,可以有效发现内核内存泄漏、缓存过度占用等问题。
具体的现象可能如下:
# free -h 显示可用内存很少
total used free shared buff/cache available
Mem: 15Gi 2.1Gi 256Mi 128Mi 13Gi 12Gi
# 但是drop cache后内存回收有限
echo 3 > /proc/sys/vm/drop_caches
Nexus常见报错问题处理
具体的报错可能如下:
xxxxxx: Layer already exists
yyyyyy: Layer already exists
errors:
blob unknown:blob unknown to registry
blob unknown:blob unknown to registry
blob unknown:blob unknown to registry
这里对经常接触到的监控系统,进行分类概述,在特定的场景下,适用不同的监控系统。
官网地址:https://github.com/louislam/uptime-kuma
一个简单的在线监控系统,使用nodejs编写,无agent部署。
优势: