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

지속적인 Exception 발생 #977

Open
kyongbok opened this issue Feb 8, 2024 · 4 comments
Open

지속적인 Exception 발생 #977

kyongbok opened this issue Feb 8, 2024 · 4 comments

Comments

@kyongbok
Copy link

kyongbok commented Feb 8, 2024

1ms / 2ms 정도되는 서비스들이 굉장히 많이 발생하는 시스템입니다.

서버에서 다음과 같은 로그들이 계속 발생하며, cpu 가 다른 수집서버보다 높은 편입니다.
기존에 설정이 없었을때는 발생하지 않았던것으로 기억합니다.

수집서버 버전 2.20

수집 서버 로그 (반복적 수시 발생)
java.lang.ArrayIndexOutOfBoundsException: 4
at scouter.io.DataInputX.toLong(DataInputX.java:173)
at scouter.server.db.io.IndexKeyFile.get(IndexKeyFile.scala:96)
at scouter.server.db.text.TextPermIndex.get(TextPermIndex.scala:86)
at scouter.server.db.TextPermRD$.getString(TextPermRD.scala:34)
at scouter.server.db.TextRD$.getString(TextRD.scala:35)
at scouter.server.core.app.XLogGroupUtil$.makeGroupHash(XLogGroupUtil.scala:46)
at scouter.server.core.app.XLogGroupUtil$.process(XLogGroupUtil.scala:41)
at scouter.server.core.XLogCore$.calc(XLogCore.scala:41)
at scouter.server.core.XLogCore$$anonfun$2.apply$mcV$sp(XLogCore.scala:60)
at scouter.server.util.ThreadScala$$anon$2.run(ThreadScala.scala:27)

수집 대상 설정(일부)

#XLog sampling mode enabled
xlog_sampling_enabled=true

#XLog sampling bound millisecond - step1(lowest : range - from 0 to here)
xlog_sampling_step1_ms=50

#XLog sampling step1 percentage(%)
xlog_sampling_step1_rate_pct=1

#(deprecated) XLog Ignore Time

- for backward compatibility. Use xlog_sampling_xxx options instead

xlog_lower_bound_time_ms=1


xlog_sampling_step1_rate_pct=1
를 2로 변경하면 빈도가 떨어집니다. 데이터의 변환이 올바르지 않은듯합니다.

@kyongbok
Copy link
Author

에러를 유발하는 ,
IndexKeyFile.scala 의 95라인

if(looping > conf.log_index_traversal_warning_count) {
Logger.println("S152", 10, "[warn] too many index deep searching. " + (if (key.length == 7) DataInputX.toLong(key,0) else ....

부분의 log_index_traversal_warning_count 값을 100 -> 1000 으로 변경하여
회피하는 것으로 설정하여 더이상 나지는 않게되었습니다.

해당 설정값이 무엇을 의미하는지요.

@kyongbok
Copy link
Author

CPU 이슈는 .data file 이 커져서 발생하는 문제 확인 , 삭제 후 cpu 감소 확인.

@gunlee01
Copy link
Member

위에 언급한 로그는 경고성 로그입니다. index가 너무 깊어지면 자원 소모량이 많아지게 됩니다. 이 상황을 인지하여 index 사이즈를 늘이거나 하는데 활용하기 위한 참고 정보로 생각하시면 됩니다.

@kyongbok
Copy link
Author

text_service.data 파일이 20G 이상 커지면서 발생하였는데,

hook_service_patterns=com.xxx.proxy.tcpserver.ReactorTcpServer.*, .... 등으로 모두 class 를 등록하였으나,

xlog 에 다음과 같은 service 들이 찍히고 있어 , 최종적으로 text_service.data 파일이 커지는것 아닌가 싶습니다.

service = 00000040HDC.....
service = 00000040KMS.....

이런 것들은 service 가 아닌 , 실제로 통신할때 주고 받은 값들인데,
pattern 에도 맞지 않는데 , 왜 xlog 에 찍힐까요

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

No branches or pull requests

2 participants