Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

goc profile耗时很长 #155

Closed
lxhao opened this issue Jan 19, 2021 · 7 comments
Closed

goc profile耗时很长 #155

lxhao opened this issue Jan 19, 2021 · 7 comments
Labels
question Further information is requested

Comments

@lxhao
Copy link

lxhao commented Jan 19, 2021

当有很多服务注册在goc server上面,服务被销毁后,获取覆盖率文件耗时很长,如果不手动清理,注册的服务会越来越多,耗时也越来越长。 有参数可以设置跟客服端的请求超时不

@lxhao
Copy link
Author

lxhao commented Jan 20, 2021

指定服务名字清理时,如果服务已经掉线了,也会报错

goc clear --service=xxx

{"error":"Post "http://172.16.71.81:8899/v1/cover/clear\": dial tcp 172.16.71.81:8899: connect: no route to host"}%

@lxhao
Copy link
Author

lxhao commented Jan 20, 2021

服务端可以自动清理不在线的address吗

@CarlJi
Copy link
Collaborator

CarlJi commented Jan 21, 2021

当有很多服务注册在goc server上面,服务被销毁后,获取覆盖率文件耗时很长,如果不手动清理,注册的服务会越来越多,耗时也越来越长。 有参数可以设置跟客服端的请求超时不

这个是说遍历一遍服务消耗的时间很长?(PS: 是否尝试了这个命令 goc profile --force ?)

指定服务名字清理时,如果服务已经掉线了,也会报错

goc clear --service=xxx

{"error":"Post "[http://172.16.71.81:8899/v1/cover/clear](http://172.16.71.81:8899/v1/cover/clear%5C)": dial tcp 172.16.71.81:8899: connect: no route to host"}%

删除服务,用goc remove 命令

@lxhao

@CarlJi
Copy link
Collaborator

CarlJi commented Jan 21, 2021

服务端可以自动清理不在线的address吗

怎样的情况下才能判断服务"不在线"呢?我担心有误伤。

@CarlJi CarlJi added the question Further information is requested label Jan 21, 2021
@Naisisor
Copy link
Contributor

Naisisor commented Jan 26, 2021

服务端可以自动清理不在线的address吗

怎样的情况下才能判断服务"不在线"呢?我担心有误伤。

我也遇到了相同的问题,在容器实践过程中这是非常常见的问题,以下是我处理的方式

c.JSON(http.StatusExpectationFailed, gin.H{"error": fmt.Sprintf("failed to get profile from %s, error %s", addr, err.Error())})

在这行代码下面增加了一下的处理方式,并将 return 移除

err := s.Store.Remove(addr)
if err != nil {
    c.JSON(http.StatusExpectationFailed, gin.H{"error": err.Error()})
    return
}
fmt.Fprintf(c.Writer, "Remove service %s from the center.\n", addr)

这样就可以在 goc profile 时自动移除报错的 service

@CarlJi
Copy link
Collaborator

CarlJi commented Feb 17, 2021

PR #163 当已经修复了这个问题,先关闭。

@CarlJi CarlJi closed this as completed Feb 17, 2021
@HeartIsBeat
Copy link

PR #163 当已经修复了这个问题,先关闭。

我怎么觉得这个并没有修复问题呢?k8s部署的服务,无效的address越来越多
go watchSignal(fn) 根本没启作用,是我哪里用的不对?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants