多线程 False Sharing问题-ok

本文深入探讨了多处理器环境中出现的FalseSharing问题,解释了当线程间数据访问导致不必要的缓存一致性开销时如何影响性能,并提供了几种有效的解决方案。

在多处理器,多线程情况下,如果两个线程分别运行在不同的CPU上,而其中某个线程修改了cache line中的元素,由于cache一致性的原因,另一个线程的cache line被宣告无效,在下一次访问时会出现一次cache line miss,哪怕该线程根本无效改动的这个元素,因此出现了False Sharing问题【1】。

如下图所示,thread1修改了memory灰化区域的第[2]个元素,而Thread0只需要读取灰化区域的第[1]个元素,由于这段memory被载入了各自CPU的硬件cache中,虽然在memory的角度这两种的访问时隔离的,但是由于错误的紧凑地放在了一起,而导致了,thread1的修改,在cache一致性的要求下,宣告了运行Thread0的CPU0的cache line非法,从而出现了一次miss,导致从小从memory中读取到cache line中,而一致性的代价付出了,但结果并不是thread0所care的,导致了效率的降低。关于实验可以参考[2]。

 

因此在多核编程情况下,要特别注意False Sharing问题。

解决的方法可以是:详细参见【1】

__declspec (align(64)) int thread1_global_variable;
__declspec (align(64)) int thread2_global_variable;

或者是

  1. struct ThreadParams 
  2.   // For the following 4 variables: 4*4 = 16 bytes 
  3.   unsigned long thread_id; 
  4.   unsigned long v; // Frequent read/write access variable 
  5.   unsigned long start; 
  6.   unsigned long end; 
  7.  
  8.   // expand to 64 bytes to avoid false-sharing  
  9.   // (4 unsigned long variables + 12 padding)*4 = 64 
  10.   int padding[12]; 
  11. }; 
  12.  
  13. __declspec (align(64)) struct ThreadParams Array[10]; 

 

 

 

 


 

在做多线程程序的时候,为了避免使用锁,我们通常会采用这样的数据结构:根据线程的数目,安排一个数组, 每个线程一个项,互相不冲突. 从逻辑上看这样的设计无懈可击,但是实践的过程我们会发现这样并没有提高速度. 问题在于cpu的cache line. 我们在读主存的时候,数据同时被读到L1,L2中去,而且在L1中是以cache line(通常64)字节为单位的. 每个Core都有自己的L1,L2,所以每个线程在读取自己的项的时候, 也把别人的项读进去, 所以在更新的时候,为了保持数据的一致性, core之间cache要进行同步,  这个会导致严重的性能问题. 这就是所谓的False sharing问题, 有兴趣的同学可以wiki下.

具体的参考文章: http://software.intel.com/en-us/articles/avoiding-and-identifying-false-sharing-among-threads/

解决方法很简单:
把每个项凑齐cache line的长度,实现隔离.

typedef union {
    erts_smp_rwmtx_t rwmtx;
    byte cache_line_align__[ERTS_ALC_CACHE_LINE_ALIGN_SIZE(
				sizeof(erts_smp_rwmtx_t))];
} erts_meta_main_tab_lock_t;
或者
_declspec (align(64)) int thread1_global_variable;
__declspec (align(64)) int thread2_global_variable;

这就是为什么在高性能服务器中到处看到cache_line_align, 号称是避免cache的trash.

类似valgrind和intel vtune的工具可以做这个层次的性能微调.

 

 

【1】http://software.intel.com/en-us/articles/avoiding-and-identifying-false-sharing-among-threads/

【2】http://www.codeproject.com/KB/threads/FalseSharing.aspx

D:\Java\jdk-21.0.2\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:14750,suspend=y,server=n "-javaagent:C:\Users\c30080007\AppData\Local\JetBrains\IntelliJIdea2025.1\captureAgent\debugger-agent.jar=file:///C:/Users/C30080~1/AppData/Local/Temp/capture2549969830400237981.props" -javaagent:D:\appfile\yalustudio\agent\gaia-studio-agent-1.0.0-SNAPSHOT.jar -Dfoundation.console.group=c30080007 -Dfoundation.console.appName=rbitreeservice -Dfoundation.console.enabled=true -Dfoundation.console.url=http://hissit.huawei.com/gaia/console/admin -Dfoundation.console.discovery.enabled=true -Djalor.web.requestSecurity-filter.enabled=false -DyaluStudioConvertRealRequestApiUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/application/query-actual-route -DyaluStudioQueryEurekaGroupUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/application/query-eureka-group -DyaluStudioAddRecordingRulesUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/record/playback/add-result -DyaluStudioAddDeployUnitRunInfoUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/application/deploy-unit-run-info -DyaluStudioGetPublicDeployUnitInstancesUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/application/public-deploy-unit-instances -DyaluStudioAddEurekaGroupUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/application/eureka-group -DyaluStudioIsLocalIpAddressUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/plugin/judgment/ip/address -DlocalDebugUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/plugin/local-deploy -DconfigInfoUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/config/link -DgetClustersActiveProfileUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/ads/clusters-params -DyaluStudioDataReporterUrl=https://gaia-studio.dp-beta.huawei.com/gaia-studio/gateway/services/v1/operation-record/add-record -Ddebug.deployId=ee9dd83b3eed3da997f7ece2f75886b4 -DappId=com.huawei.cbg.it.tree -DappName=rbitreeservice -DenvJsonFilePath=C:\Users\c30080007\AppData\Roaming\JetBrains\IntelliJIdea2025.1\scratches\http-client.env.json -DwriteEnvFileSuccessLog=yaluStudioWriteEnvSuccess -Dauthor=c30080007 -Dgroup=c30080007 -DparentGroup=kwe_dev -DoperationId=28945c5d-91c3-4ec5-b9e9-525354f36b84 -DmicroserviceId=null -DrepoUrl=https://codehub-dg-g.huawei.com/CBGIT_Public/GaiaDesignDevCenter/YaluRBIService.git -DpluginActiveEnv=uat --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/jdk.internal.access=ALL-UNNAMED --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.sql/java.sql=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED --add-opens=java.naming/com.sun.naming.internal=ALL-UNNAMED --add-opens=java.desktop/java.beans=ALL-UNNAMED --add-opens=java.desktop/sun.awt=ALL-UNNAMED --add-opens=java.logging/java.util.logging=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -DuseLocalConfig=false -agentpath:C:\Users\c30080007\AppData\Local\Temp\idea_libasyncProfiler_dll_temp_folder33236\libasyncProfiler.dll=version,jfr,event=wall,interval=10ms,cstack=no,file=C:\Users\c30080007\IdeaSnapshots\MainApplication_2025_11_26_085526.jfr,dbghelppath=C:\Users\c30080007\AppData\Local\Temp\idea_dbghelp_dll_temp_folder7\dbghelp.dll,log=C:\Users\c30080007\AppData\Local\Temp\MainApplication_2025_11_26_085526.jfr.log.txt,logLevel=DEBUG -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false -Ddebugger.agent.enable.coroutines=true -Dkotlinx.coroutines.debug.enable.flows.stack.trace=true -Dkotlinx.coroutines.debug.enable.mutable.state.flows.stack.trace=true -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\c30080007\AppData\Local\Temp\classpath1229258484.jar com.huawei.cbgit.tree.MainApplication 已连接到地址为 ''127.0.0.1:14750',传输: '套接字'' 的目标虚拟机 11-26 08:55:27.521 INFO YaluStudioAgent : yaluStudioIsCloudDeploy=null 11-26 08:55:27.524 INFO AgentStarter : agent file dir is [D:\appfile\yalustudio\agent] 11-26 08:55:27.527 INFO AgentStarter : agent param: {} 11-26 08:55:27.528 INFO ConfigUtils : useLocalConfig is [false] OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 11-26 08:55:27.986 INFO StudioServerClient : Config Info DTO request success, config link http://appconfig-beta.huawei.com/ConfigCenter/services/saasConfigcenterGetConfig?application_id=com.huawei.cbg.it.tree&sub_application_id=rbitreeservice&region=cn-west-hcd-1&environment=kwe_dev&version=1.0 11-26 08:55:28.099 INFO KmsClient : start decrypt 11-26 08:55:28.246 INFO KmsClient : end decrypt 11-26 08:55:28.246 INFO ConfigUtils : useLocalConfig is [false] 11-26 08:55:28.246 INFO StudioServerClient : get cluster param: com.yalu.studio.huawei.it.yalu.client.req.ClustersParamsReq@1eba372c 11-26 08:55:30.062 INFO ConfigUtils : useLocalConfig is [false] =============================================================================== Starting server... 11-26 08:55:32.529 INFO HuaweiSecurity2CryptoImplIntercepto : agent init default keyPathParams 11-26 08:55:32.546 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:32.617 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:32.662 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:32.707 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:32.752 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:32.798 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:32.844 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:32.889 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:32.935 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:32.982 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:33.029 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:33.074 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:33.119 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:33.165 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] 11-26 08:55:33.212 INFO DecryptCustomInterceptor : RootKeyGeneratorDynamicSaltImpl rootKeySystemParts field is null, secret from [Synchronous Configuration Item] . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.4.5) 11-26 08:55:43.780 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/auth/jwt/public-key?algorithm=ALL, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:55:44.166 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/auth/token, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:55:44.356 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/programs/client-backup-endpoints?endpoint=https://iam.his-op-beta.huawei.com, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:55:44.366 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/programs/client-register, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:55:45.456 INFO StudioServerClient : saveEurekaInfo request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=com.huawei.cbg.it.tree, eurekaAppName=rbitreeservice, eurekaGroup=c30080007, eurekaApplicationName=COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE, eurekaRegistrationCenterAddress=http://paas.register.his-beta.huawei.com/msa/register/v2/, useCxf=true) 11-26 08:55:45.844 INFO StudioServerClient : deploy id: ee9dd83b3eed3da997f7ece2f75886b4 11-26 08:55:46.491 INFO StudioServerClient : parent env port [52770] 11-26 08:55:46.493 INFO GetEurekaInstanceClient : eurekaRegistrationCenterAddress is [http://paas.register.his-beta.huawei.com/msa/register/v2/], eurekaApplicationName is [COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:55:46.493 INFO GetEurekaInstanceClient : serviceDiscoveryUrl is [http://paas.register.his-beta.huawei.com/msa/register/v2/apps/COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:55:46.539 INFO EurekaDiscoveryClientRegisterInterc : select parent env group is [dev] 11-26 08:55:46.540 INFO StudioServerClient : saveParentEnvGroup request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=null, eurekaAppName=null, eurekaGroup=dev, eurekaApplicationName=null, eurekaRegistrationCenterAddress=null, useCxf=true) 11-26 08:55:47.175 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:55:52.178 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:55:56.180 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} WARNING: A Java agent has been loaded dynamically (D:\java\maven\repository\net\bytebuddy\byte-buddy-agent\1.17.0\byte-buddy-agent-1.17.0.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release [Component]Starting [RedisClient].............................................Sync [cost 17ms] [Component]Starting [dataSourceStartup].......................................Async[cost 1ms] Application: rbitreeservice Foundation version: 4.0.1.1 App group: c30080007 Server profile: dev Server port: 8003 context-path: /rbi-tree/gateway logback-path: /applog/rbitreeservice/logs Logging configuration: commons-logback-4.0.1.1.jar!/logback.xml Server Startup cost 25215 ms Required startup components are not ready yet, please wait some seconds to send requests! =============================================================================== 11-26 08:56:01.182 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} All startup components are ready to accept request! 11-26 08:56:05.184 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:08.688 INFO CubeLoadBalancerClientInterceptor : serviceId is [com.huawei.cbgit.gaia.samgovern:samcomonservice] 11-26 08:56:08.688 INFO CubeLoadBalancerClientInterceptor : eurekaCubeInstanceClass is [com.huawei.cube.rt.discovery.eureka.EurekaCubeInstance] 11-26 08:56:08.688 INFO CubeLoadBalancerClientInterceptor : eurekaCubeInstanceConstructor name is [com.netflix.appinfo.InstanceInfo] 11-26 08:56:08.712 INFO StudioServerClient : getParentEnvGroup request param: {deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:08.818 INFO CubeLoadBalancerClientInterceptor : cube loadbalancer curGroup is [c30080007] 11-26 08:56:08.818 INFO CubeLoadBalancerClientInterceptor : cube loadbalancer commonEnvGroup is [dev] 11-26 08:56:08.819 INFO CubeLoadBalancerClientInterceptor : agent select port: [60657], appName: [COM.HUAWEI.CBGIT.GAIA.SAMGOVERN:SAMCOMONSERVICE] 11-26 08:56:09.501 INFO StudioServerClient : is local ip address [false] 11-26 08:56:10.085 INFO StudioServerClient : is local ip address [false] 11-26 08:56:10.085 INFO RestTemplateWithDirectInterceptor : RestTemplateWithDirectInterceptor result: com.huawei.cube.rt.core.http.OkHttp3ClientHttpRequest 11-26 08:56:10.186 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:10.674 INFO StudioServerClient : is local ip address [false] 11-26 08:56:11.280 INFO StudioServerClient : is local ip address [false] 11-26 08:56:15.190 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:15.495 INFO StudioServerClient : saveEurekaInfo request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=com.huawei.cbg.it.tree, eurekaAppName=rbitreeservice, eurekaGroup=c30080007, eurekaApplicationName=COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE, eurekaRegistrationCenterAddress=http://paas.register.his-beta.huawei.com/msa/register/v2/, useCxf=true) 11-26 08:56:15.599 INFO StudioServerClient : deploy id: ee9dd83b3eed3da997f7ece2f75886b4 11-26 08:56:16.198 INFO StudioServerClient : parent env port [52770] 11-26 08:56:16.198 INFO GetEurekaInstanceClient : eurekaRegistrationCenterAddress is [http://paas.register.his-beta.huawei.com/msa/register/v2/], eurekaApplicationName is [COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:56:16.198 INFO GetEurekaInstanceClient : serviceDiscoveryUrl is [http://paas.register.his-beta.huawei.com/msa/register/v2/apps/COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:56:16.223 INFO EurekaDiscoveryClientRegisterInterc : select parent env group is [dev] 11-26 08:56:16.224 INFO StudioServerClient : saveParentEnvGroup request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=null, eurekaAppName=null, eurekaGroup=dev, eurekaApplicationName=null, eurekaRegistrationCenterAddress=null, useCxf=true) 11-26 08:56:20.192 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:25.196 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:30.198 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:34.200 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:38.202 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:43.205 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:46.376 INFO StudioServerClient : saveEurekaInfo request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=com.huawei.cbg.it.tree, eurekaAppName=rbitreeservice, eurekaGroup=c30080007, eurekaApplicationName=COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE, eurekaRegistrationCenterAddress=http://paas.register.his-beta.huawei.com/msa/register/v2/, useCxf=true) 11-26 08:56:46.496 INFO StudioServerClient : deploy id: ee9dd83b3eed3da997f7ece2f75886b4 11-26 08:56:46.671 INFO StudioServerClient : saveEurekaInfo request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=com.huawei.cbg.it.tree, eurekaAppName=rbitreeservice, eurekaGroup=c30080007, eurekaApplicationName=COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE, eurekaRegistrationCenterAddress=http://paas.register.his-beta.huawei.com/msa/register/v2/, useCxf=true) 11-26 08:56:46.779 INFO StudioServerClient : deploy id: ee9dd83b3eed3da997f7ece2f75886b4 11-26 08:56:47.036 INFO StudioServerClient : parent env port [52770] 11-26 08:56:47.036 INFO GetEurekaInstanceClient : eurekaRegistrationCenterAddress is [http://paas.register.his-beta.huawei.com/msa/register/v2/], eurekaApplicationName is [COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:56:47.036 INFO GetEurekaInstanceClient : serviceDiscoveryUrl is [http://paas.register.his-beta.huawei.com/msa/register/v2/apps/COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:56:47.060 INFO EurekaDiscoveryClientRegisterInterc : select parent env group is [dev] 11-26 08:56:47.061 INFO StudioServerClient : saveParentEnvGroup request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=null, eurekaAppName=null, eurekaGroup=dev, eurekaApplicationName=null, eurekaRegistrationCenterAddress=null, useCxf=true) 11-26 08:56:47.207 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:47.411 INFO StudioServerClient : parent env port [52770] 11-26 08:56:47.411 INFO GetEurekaInstanceClient : eurekaRegistrationCenterAddress is [http://paas.register.his-beta.huawei.com/msa/register/v2/], eurekaApplicationName is [COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:56:47.411 INFO GetEurekaInstanceClient : serviceDiscoveryUrl is [http://paas.register.his-beta.huawei.com/msa/register/v2/apps/COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:56:47.436 INFO EurekaDiscoveryClientRegisterInterc : select parent env group is [dev] 11-26 08:56:47.436 INFO StudioServerClient : saveParentEnvGroup request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=null, eurekaAppName=null, eurekaGroup=dev, eurekaApplicationName=null, eurekaRegistrationCenterAddress=null, useCxf=true) 11-26 08:56:52.210 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:56:56.212 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:01.213 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:06.215 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:10.218 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:14.220 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:17.209 INFO StudioServerClient : saveEurekaInfo request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=com.huawei.cbg.it.tree, eurekaAppName=rbitreeservice, eurekaGroup=c30080007, eurekaApplicationName=COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE, eurekaRegistrationCenterAddress=http://paas.register.his-beta.huawei.com/msa/register/v2/, useCxf=true) 11-26 08:57:17.326 INFO StudioServerClient : deploy id: ee9dd83b3eed3da997f7ece2f75886b4 11-26 08:57:17.564 INFO StudioServerClient : saveEurekaInfo request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=com.huawei.cbg.it.tree, eurekaAppName=rbitreeservice, eurekaGroup=c30080007, eurekaApplicationName=COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE, eurekaRegistrationCenterAddress=http://paas.register.his-beta.huawei.com/msa/register/v2/, useCxf=true) 11-26 08:57:17.661 INFO StudioServerClient : deploy id: ee9dd83b3eed3da997f7ece2f75886b4 11-26 08:57:17.925 INFO StudioServerClient : parent env port [52770] 11-26 08:57:17.925 INFO GetEurekaInstanceClient : eurekaRegistrationCenterAddress is [http://paas.register.his-beta.huawei.com/msa/register/v2/], eurekaApplicationName is [COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:57:17.926 INFO GetEurekaInstanceClient : serviceDiscoveryUrl is [http://paas.register.his-beta.huawei.com/msa/register/v2/apps/COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:57:17.950 INFO EurekaDiscoveryClientRegisterInterc : select parent env group is [dev] 11-26 08:57:17.952 INFO StudioServerClient : saveParentEnvGroup request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=null, eurekaAppName=null, eurekaGroup=dev, eurekaApplicationName=null, eurekaRegistrationCenterAddress=null, useCxf=true) 11-26 08:57:18.238 INFO StudioServerClient : parent env port [52770] 11-26 08:57:18.238 INFO GetEurekaInstanceClient : eurekaRegistrationCenterAddress is [http://paas.register.his-beta.huawei.com/msa/register/v2/], eurekaApplicationName is [COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:57:18.238 INFO GetEurekaInstanceClient : serviceDiscoveryUrl is [http://paas.register.his-beta.huawei.com/msa/register/v2/apps/COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:57:18.261 INFO EurekaDiscoveryClientRegisterInterc : select parent env group is [dev] 11-26 08:57:18.262 INFO StudioServerClient : saveParentEnvGroup request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=null, eurekaAppName=null, eurekaGroup=dev, eurekaApplicationName=null, eurekaRegistrationCenterAddress=null, useCxf=true) 11-26 08:57:19.223 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:23.224 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:27.226 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:32.229 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:37.231 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:42.232 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:46.234 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:48.114 INFO StudioServerClient : saveEurekaInfo request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=com.huawei.cbg.it.tree, eurekaAppName=rbitreeservice, eurekaGroup=c30080007, eurekaApplicationName=COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE, eurekaRegistrationCenterAddress=http://paas.register.his-beta.huawei.com/msa/register/v2/, useCxf=true) 11-26 08:57:48.227 INFO StudioServerClient : deploy id: ee9dd83b3eed3da997f7ece2f75886b4 11-26 08:57:48.391 INFO StudioServerClient : saveEurekaInfo request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=com.huawei.cbg.it.tree, eurekaAppName=rbitreeservice, eurekaGroup=c30080007, eurekaApplicationName=COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE, eurekaRegistrationCenterAddress=http://paas.register.his-beta.huawei.com/msa/register/v2/, useCxf=true) 11-26 08:57:48.487 INFO StudioServerClient : deploy id: ee9dd83b3eed3da997f7ece2f75886b4 11-26 08:57:48.788 INFO StudioServerClient : parent env port [52770] 11-26 08:57:48.788 INFO GetEurekaInstanceClient : eurekaRegistrationCenterAddress is [http://paas.register.his-beta.huawei.com/msa/register/v2/], eurekaApplicationName is [COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:57:48.788 INFO GetEurekaInstanceClient : serviceDiscoveryUrl is [http://paas.register.his-beta.huawei.com/msa/register/v2/apps/COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:57:48.812 INFO EurekaDiscoveryClientRegisterInterc : select parent env group is [dev] 11-26 08:57:48.813 INFO StudioServerClient : saveParentEnvGroup request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=null, eurekaAppName=null, eurekaGroup=dev, eurekaApplicationName=null, eurekaRegistrationCenterAddress=null, useCxf=true) 11-26 08:57:49.104 INFO StudioServerClient : parent env port [52770] 11-26 08:57:49.104 INFO GetEurekaInstanceClient : eurekaRegistrationCenterAddress is [http://paas.register.his-beta.huawei.com/msa/register/v2/], eurekaApplicationName is [COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:57:49.104 INFO GetEurekaInstanceClient : serviceDiscoveryUrl is [http://paas.register.his-beta.huawei.com/msa/register/v2/apps/COM.HUAWEI.CBG.IT.TREE:RBITREESERVICE] 11-26 08:57:49.130 INFO EurekaDiscoveryClientRegisterInterc : select parent env group is [dev] 11-26 08:57:49.132 INFO StudioServerClient : saveParentEnvGroup request param: RegistryEurekaInfo(deployId=ee9dd83b3eed3da997f7ece2f75886b4, eurekaAppId=null, eurekaAppName=null, eurekaGroup=dev, eurekaApplicationName=null, eurekaRegistrationCenterAddress=null, useCxf=true) 11-26 08:57:51.235 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:57:55.237 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:58:00.240 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:58:05.242 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:58:09.244 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4} 11-26 08:58:14.246 INFO StudioServerClient : getTargetUrl request param: {sendUrl=https://iam.his-op-beta.huawei.com/iam/common/health-check?re_connect=false, deployId=ee9dd83b3eed3da997f7ece2f75886b4}
11-27
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值