Actual combat! Use Arthas to locate the timeout problem of the Spring Boot interface and let the application take off ~

ClickFollowOfficial account:Internet Architect, backend reply2TGet2TB< strong>Learning resources! Previous article: Sharing of useful learning materials for 2T architects Background The company has a channel system that is specifically used to interface with third-party channels. It has no business logic and mainly does work such as message conversion and parameter verification, which serves as a link between […]

Use Arthas to locate the timeout problem of Spring Boot interface

Reprint: https://mp.weixin.qq.com/s/KG-tMcJtOrXEJG42oq89cg Nginx-reverse proxy-> channel system [jboss@VM_0_139_centos ~]$ ping 10.0.0.139 PING 10.0.0.139 (10.0.0.139) 56(84) bytes of data. 64 bytes from 10.0.0.139: icmp_seq=1 ttl=64 time=0.029 ms 64 bytes from 10.0.0.139: icmp_seq=2 ttl=64 time=0.041 ms 64 bytes from 10.0.0.139: icmp_seq=3 ttl=64 time=0.040 ms 64 bytes from 10.0.0.139: icmp_seq=4 ttl=64 time=0.040 ms # Since the log is ok, […]

How to use viewer filtering and search functions to locate data?

Foreword We’ve discussed how Observation Cloud enables more comprehensive data correlation analysis by connecting built-in views to viewers. (See “Built-in view linkage viewer to achieve data correlation analysis”) The viewer mentioned here is actually a comprehensive and powerful data viewing and analysis tool. It provides a variety of search and filtering methods, and supports combinations […]

Easy to control! How Prometheus monitors indicators and quickly locates faults

Prometheus monitors business indicators Now that Kubernetes has become the de facto container orchestration standard, the deployment of microservices has become very easy. However, as the scale of microservices expands, the challenges brought by service governance will also become greater and greater. In this context, the concept of service observability emerged. In a distributed system, […]

C++ (Qt) software debugging—linux uses dmesg to locate the program crash location (14)

C++ (Qt) software debugging-linux uses dmesg to locate program crash location (14) Article directory C++ (Qt) software debugging—linux uses dmesg to locate the program crash location (14) 1 Introduction 2. ELF file 3. Commonly used tools 4. Use dmesg to locate the abnormal location 1.1 Exceptions occur in executable programs 1.2 Exception occurs in dynamic […]

Actual combat! Use Arthas to locate the timeout problem of the Spring Boot interface and let the application take off ~

Helloeveryone,IamBucaiChen~ Background Thecompanyhasachannelsystemthatisspecificallyusedtointerfacewiththird-partychannels.Ithasnobusinesslogicandmainlydoesworksuchasmessageconversionandparameterverification,whichservesasalinkbetweenthepreviousandthefollowing. Recently,Ihavebeenoptimizingtheresponsetimeoftheinterfaceandoptimizingthecode,butthetimestilldoesnotmeettherequirements;thereisastrangetime-consumingproblemofabout100ms.Aftertherequestprocessingtimeisprintedintheinterface,itisstilldifferentfromthecaller’sresponsetime.Thedifferenceisabout100ms.Forexample,theprogramrecords150ms,butthecaller’swaitingtimeisabout250ms. Thedetailedpositioning&solutionprocessatthattimeisrecordedbelow(infact,thesolutionisverysimple,thekeyliesinhowtopositionandfindasolutiontotheproblem) Locationprocess Analyzingcode Thechannelsystemisacommonspring-bootwebproject,usingintegratedtomcat.Afteranalyzingthecode,Ifoundthattherewasnothingspecial,nospecialfiltersorinterceptors,soIinitiallyruledoutthatitwasabusinesscodeproblem. Analyzethecallingprocess Afterthisproblemoccurred,wefirstconfirmedthecallingprocessoftheinterface.Sinceitisaninternaltest,therearefewercallprocesses. Nginx-reverseproxy->channelsystem Thecompanyisacloudserver,andthenetworkisalsothecloud’sintranet.Sincethecauseoftheproblemisnotclear,weusethetroubleshootingmethodtofirstconfirmwhetherthereisaproblemwiththeservernetwork. FirstconfirmwhetherthereisaproblemwiththesendingendtoNginxHost: [jboss@VM_0_139_centos~]$ping10.0.0.139 PING10.0.0.139(10.0.0.139)56(84)bytesofdata. 64bytesfrom10.0.0.139:icmp_seq=1ttl=64time=0.029ms 64bytesfrom10.0.0.139:icmp_seq=2ttl=64time=0.041ms 64bytesfrom10.0.0.139:icmp_seq=3ttl=64time=0.040ms 64bytesfrom10.0.0.139:icmp_seq=4ttl=64time=0.040ms Judgingfromthepingresults,thereisnoproblemwiththedelayfromthesendingendtotheNginxhost.Next,checkthenetworkfromNginxtothechannelsystem. #Sincethelogisok,Iwillcopytheabovelogdirectlyhere. [jboss@VM_0_139_centos~]$ping10.0.0.139 PING10.0.0.139(10.0.0.139)56(84)bytesofdata. 64bytesfrom10.0.0.139:icmp_seq=1ttl=64time=0.029ms 64bytesfrom10.0.0.139:icmp_seq=2ttl=64time=0.041ms 64bytesfrom10.0.0.139:icmp_seq=3ttl=64time=0.040ms 64bytesfrom10.0.0.139:icmp_seq=4ttl=64time=0.040ms Judgingfromthepingresults,thereisnoproblemwiththenetworkdelayfromNginxtothechannelsystemserver. Sincethenetworkseemstobefine,youcancontinuethetroubleshootingmethod,cutoffNginx,andconnecttheclientdirectlytotheserverofthechannelsystemthroughtheloopbackaddress(localhost)toavoidgoingthroughthenetworkcard/dns,narrowthescopeoftheproblemandseeifitcanberepaired.Now(thisapplicationandaddressweresimulatedbymelater,andthetestwasanemptyinterface): [jboss@VM_10_91_centostmp]$curl-w”@curl-time.txt”http://127.0.0.1:7744/send success http:200 dns:0.001s redirect:0.000s time_connect:0.001s time_appconnect:0.000s time_pretransfer:0.001s time_starttransfer:0.073s size_download:7bytes speed_download:95.000B/s ———- time_total:0.073stotalrequesttime Judgingfromthecurllog,callinganemptyinterfacethroughtheloopbackaddressalsotakes73ms.Thisisstrange.Itskipsalltheintermediatecallingnodes(includingfilters&interceptors,etc.)anddirectlyrequeststheapplicationofanemptyinterface,whichtakes73ms.Pleaserequestagainandsee: [jboss@VM_10_91_centostmp]$curl-w”@curl-time.txt”http://127.0.0.1:7744/send success http:200 dns:0.001s redirect:0.000s time_connect:0.001s time_appconnect:0.000s time_pretransfer:0.001s time_starttransfer:0.003s size_download:7bytes speed_download:2611.000B/s ———- […]

[C++] Operator overloading case – String class ③ (Overloading left shift << operator | Tips for using custom classes | Direct access to private pointer members of the class | Allocate specified size memory for the pointer and initialize it to 0)

Article directory 1. Overloading the left shift

Technical summary of Agui Tianshan: Flask searches and locates Ztree tree nodes

Without further ado, here’s the source code in the picture above 1. First look at the renderings 2. Front-end page part: 1)Page <!DOCTYPE html> <HTML> <HEAD> <TITLE>Ewangda Agui Tianshan’s Ztree practice</TITLE> <meta http-equiv=”content-type” content=”text/html; charset=UTF-8″> <link rel=”stylesheet” href=”/static/css/bootstrapStyle/bootstrapStyle.css” type=”text/css”> <link href=”/static/bootstrap/css/bootstrap.min.css” rel=”stylesheet” /> <script type=”text/javascript” src=”/static/js/jquery-2.2.0.min.js”></script> <script type=”text/javascript” src=”/static/ztree/js/jquery.ztree.core-3.5.js”></script> <script type=”text/javascript” src=”/static/ztree/js/jquery.ztree.excheck-3.5.js”></script> <script type=”text/javascript” src=”/static/ztree/js/jquery.ztree.exedit-3.5.js”></script> […]