- 2024-11-17Secs学习二
Secs学习之路HSMSHSMS报文格式连接测试HSMSHSMS使用TCP/IP通讯,设定ip和端口,并定义报文格式,在设备端的设定为客户端模式(active),工厂端的是服务端(passive)模式。HSMS状态机如下图所示。此图中描述的行为定义了HSMS的基本要求:附属标准可能会进一步扩展这些或其他
- 2024-09-15JVM频繁GC分析
本文记录一次频繁GC的分析问题查看项目日志发现GC频繁,几乎几秒钟一次查看GC日志[GC(AllocationFailure)[PSYoungGen:6816K->320K(8192K)]82693K->76229K(187904K),0.0032930secs][Times:user=0.01sys=0.00,real=0.00secs][GC(AllocationFailure)[PSYou
- 2024-08-14线上问题排查——磁盘满
现象群里反馈管理后台登录不上了,我一访问,整个界面空白,没有提示,打开F12,发现控制台提示js、css等静态资源报net::ERR_HTTP2_PROTOCOL_ERROR,客户端可以下载到服务端资源,第一次碰到这个,StackOverflow走起net::ERR_HTTP2_PROTOCOL_ERROR是关于什么的?可能出现的问题非常多,包括
- 2024-01-23dotnet注册服务 secs4net secs
secs_learn/Program.cs此文件是应用程序的入口点,用于配置和启动主机。使用Host.CreateDefaultBuilder(args)创建一个默认配置的主机构建器,自动加载环境变量、配置文件等设置。.ConfigureServices(...)方法中,通过services.AddHostedService<DeviceWorker>()注册DeviceWor
- 2024-01-19半导体基础SECS协议 - GEM300
GEM(GenericEquipmentModel)定义了Fab中各个场景下设备行为及其所使用SECS消息。GEM300的定义内容是GEM在300mm晶圆Fab的特化内容。本篇将简要介绍GEM300所涉协议、其中重要SEMI协议(E87、E40、E90、E39)、GEM300生产设备类型及其Load操作。 一、SignificanceofGEM3001.3
- 2023-12-28JVM的GC学习
JVM的GC学习2023-12-28T17:20:25.182+0800:7.363:[FullGC(MetadataGCThreshold)[PSYoungGen:29067K->0K(13002752K)][ParOldGen:16K->26768K(16252928K)]29083K->26768K(29255680K),[Metaspace:20543K->20543K(1069056K)],0.0838171secs][Times:
- 2023-12-13给祖传系统做了点 GC调优,暂停时间降低了 90%
问题描述公司某规则引擎系统,在每次发版启动会手动预热,预热完成当流量切进来之后会偶发的出现一次长达1-2秒的YoungGC(流量并不大,并且LB下的每个节点都会出现该情况)在这次长暂停之后,每一次的年轻代GC暂停时间又都恢复在20-100ms以内2秒虽然看起来不算长吧,但规则引擎每次执行也才
- 2023-11-20半导体基础SECS协议(SECS - II)
SECS-II协议定义了使用如SECS-I、HSMS等传输协议在设备和主机之间交换的消息的形式和含义,是SECS四项基础协议中的核心。往下,HSMS、SECS-I等物理协议为其服务,通过某种传输介质,在设备间传输SECS-II消息(此时SECS-II消息存储在物理层协议消息结构的DATA部分中,详见随笔-HS
- 2023-11-06半导体基础SECS协议(SECS-I)
阅读导言可知,在SECS协议的基础结构中,SECS-I是一项物理链路协议,采用了R232串口的物理连接方式,定义设备在链路上使用的消息格式以及一些消息交互行为。以下介绍将大致以消息传输与消息格式两部分进行。1.消息传输-物理传输*:STARTBitLSB1 2 3 4
- 2023-11-03半导体基础SECS协议(导言)
SECS,全称SEMIEquipmentCommunicationStandards(SEMI设备通讯标准),SECS基础一般包括以下四个标准—— SECS-I、SECS-II、GEM以及HSMS,它们间的层次结构大致如下图所示: 其中,SECS-I与HSMS都规定了设备在物理链路上的消息格式、传输行为等内容,区别在于使用的物理实
- 2023-11-01大量生成字节码导致元空间溢出问题排查
前几天生产环境出现了一个问题,gc日志里面某一个时间段出现了大量的FullGC,而且都是回收元空间内存失败了,最终导致了JVM停止运行,微服务中的某个服务发生了宕机。下面记录下排查该问题的过程。首先我们根据服务器的CPU核心数和内存大小,设置了元空间的最大值为512M,这是前提。在服务G
- 2023-08-2712、从0到1实现SECS协议之SECS-I协议编码与解码
12、从0到1实现SECS协议之SECS-I协议编码与解码1、SECS-I协议编码与解码实现这个感觉没有啥特别好说的,根据协议慢慢理解就好了,代码实现如下:packagepacketsimport( "encoding/binary" "fmt")/*------------------------------------- secs头-----------------------
- 2023-08-2711、从0到1实现SECS协议之HSMS协议中的handler
11、从0到1实现SECS协议之HSMS协议中的handler前面实现了发送事件的处理机制,接下来我们即将实现ISecsHandler接口,将前面实现的各种功能组合起来,从而提供一个完整可用的服务。1、handler的具体实现packagehandlerimport( "context" "errors" "fmt" "github.com/loopl
- 2023-08-2713、从0到1实现SECS协议之优先级队列(SECS-I)
13、从0到1实现SECS协议之优先级队列(SECS-I)逻辑和HSMS协议中的优先级队列一样,只不过存储的数据变了而已。1、并发安全的优先级队列packagequeueimport( "secs-gem/common" "secs-gem/secs/packets" "secs-gem/secsgem" "container/heap" "context" "sync
- 2023-08-18C# SECS/GEM协议
一、概念 SECS/GEMI标准(制造设备通信和控制的通用模型)指的是一组用于管理制造设备和工厂主机系统之间通信的半导体行业标准,由国际半导体协议SEMI发起并维护。GEM基于其他较低级别的标准,如下:图片后补协议名称用途SECS-I定义RS-232通信的标准(报文)HSMS定义TCP/
- 2023-08-08【JVM技术指南】「GC内存诊断-故障问题排查」一文教你如何打印及分析JVM的GC日志(实战分析上篇)
当我们在开发Java应用程序时,JVM的GC(垃圾回收)是一个非常重要的话题。GC的作用是回收不再使用的内存,以便程序可以继续运行。在JVM中,GC的日志记录了GC的详细信息,包括GC的类型、时间、内存使用情况等。在本文中,我们将介绍JVMGC日志的格式、含义和分析方法。JVMGC日志格式JVMGC日志的
- 2023-08-07【JVM技术指南】「GC内存诊断-故障问题排查」一文教你如何打印及分析JVM的GC日志(实战分析上篇)
当我们在开发Java应用程序时,JVM的GC(垃圾回收)是一个非常重要的话题。GC的作用是回收不再使用的内存,以便程序可以继续运行。在JVM中,GC的日志记录了GC的详细信息,包括GC的类型、时间、内存使用情况等。在本文中,我们将介绍JVMGC日志的格式、含义和分析方法。JVMGC日志格式JVMGC日志的
- 2023-08-0308、从0到1实现SECS协议之HSMS协议中的connection
前面实现优先级队列,现在就准备开始实现HSMS协议中如何处理connection。在之前定义的接口中,我们定义了IConnection接口,现在我们先来实现这个接口。我们知道,此软件既可以作为Host端,主动去连接equipment,也是可以作为equipment端,让其他系统来连接我们的系统。因此,connect
- 2023-07-11JVM(六)堆
JVM(六)堆1核心概述几乎所有的对象实例和数组都是分配在堆上的(栈不会存储数组和对象,栈帧中的局部变量表只会存储指向堆中实例的引用)一个Java进程对应一个JVM实例,一个JVM实例只存在一个堆内存,堆也是内存管理的核心区域堆和方法区是线程共享的,但堆也有划分的线程私有缓冲区
- 2023-06-11JVM 数据存储介绍及性能优化
JVM内存模式介绍Java虚拟机内存模型是Java程序运行的基础。为了能使Java应用程序正常运行,JVM虚拟机将其内存数据分为程序计数器、虚拟机栈、本地方法栈、Java堆和方法区等部分。程序计数器(ProgramCounterRegister)程序计数器(ProgramCounterRegister)是一块很小内
- 2023-05-27Python协程:从yield/send到yield from再到async/await
Python中的协程大概经历了如下三个阶段:最初的生成器变形yield/send引入@asyncio.coroutine和yieldfrom在最近的Python3.5版本中引入async/await关键字一、生成器变形yield/send普通函数如果出现了yield关键字,那么该函数就不再是普通函数,而是一个生成器。importrandom
- 2023-05-2403、SECS-I 协议介绍
03、SECS-I协议介绍上一篇我们学习了SECS-II协议,对SECS-II协议有了初略的了解,现在我们再来一起学习SECS-I协议。文章的内容基本上来自参考资料和自己看的文档,若有侵权,请联系删除,谢谢。SECS-I属于传输协议标准,主要定义了电气规格、传输速度、交握码等物理信息。1、SEC
- 2023-05-23ruby on rails 方法小结
1.获取两个日期之间的月份和年份的唯一数组require'date'defdoit(first,last)first=first<<1(12*last.year+last.month-12*first.year-first.month+1).times.map{|i|(first=first>>1).strftime("%b%Y")}endfirst=Da
- 2023-05-2201、SECS的基本概念
最近做的项目跟半导体设备相关,需要学习SECS相关的内容,把自己的学习记录分享出来,如有不足甚至错误的地方,请不吝赐教,十分感谢!文章内容基本都是SECS协议的内容和参考的资料,只不过是加了自己的理解部分,特此记录下。1、SECS的定义SECS的全称是:SEMIEquipmentCommunicationStanda
- 2023-05-2202、SECS-II 通信协议介绍
这里我们先学习SECS-II协议,给我的感受是先学完SECS-II协议,再去学习SECS-I和HSMS协议更加容易理解,所以这里我先介绍SECS-II协议。文章的内容基本上来自参考资料和自己看的文档,若有侵权,请联系删除,谢谢。1、SECS-II概述消息协议用于在主机和设备(HostandEquipme