/resources파일 import 시 문의 드립니다.

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

/resources파일 import 시 문의 드립니다.

Lee JiHoon
안녕하세요.
계정테스트를 위해 파일 1개 50MB 정도의 계정 정보 파일을 resources에 올려놓고 부하테스트를 진행 중
원활히 진행이 되지 않아 궁금한 부분 문의 드립니다.

1. 스크립트 관련 ( Jython 사용 )
  1) __init__() 에서 해당 파일 open
    self.agent_file = open("./resources/oauth2_peter_result.txt", "r")
    self.file_content= self.agent_file.readlines()
  2) __call__()에서 사용
    oauth_token = self.file_content[random.randrange(0, len(self.file_content))]
  3) __del__()에서 해당 파일 close
    self.agent_file.close()

게시글 참고해서 작성을 하였고, 프로세스에서 생성된 쓰레드들은 해당 프로세스의 공유메모리로 해당 파일을 공유해서 사용하는지 궁금합니다.
( call()구간에서 쓰레드들이 각자 일하고, init과 end에서 프로세스에서 1번씩만 하는것인지? )

2. 기본 설정 관련
 - 에이전트 수와 resouces 파일 배포 수가 동일한지?
   에이전트가 10개이면 파일배포 10번인지?

  - 스크립트 수정이 조금씩 발생하여 새로운 테스트를 진행해야 하지만, resources 파일이 동일한 경우 기존 테스트에 사용했던 resources파일을 사용할 수는 없는지? (배포 시간이 너무 오래 걸려서...)

  - 저 같은 경우의 부하테스트시에는 프로세스/쓰레드 수 설정이 중요할 것 같은데요. 프로세스수를 낮게하고 쓰레드 수를 높이는게 resources 사용을 줄일 수 있는 내용이 맞는지 문의드립니다.

감사합니다.
Reply | Threaded
Open this post in threaded view
|

Re: /resources파일 import 시 문의 드립니다.

songeunwoo
This post was updated on .
안녕하세요. 문의주신 내용 답변 드립니다.
1.스크립트 관련
설정해주신 내용들은 각 스레드들이 작업을 하기 전에 지속적으로 init , call , del을 호출하여 작업을 진행합니다.
프로세스의 스레드들이 각각 호출하기 때문에 메모리상에 올려두어 공유를 하시고 싶으시다면, 전역 변수같이 셋팅을 하여 사용하시면 좋을듯 합니다.
2.기본 설정 관련
에이전트마다 각각 리소스를 로드해서 사용하기에 에이전트가 10개이면 파일배포 10번 이라고 보시면 됩니다.
리소스 용량이 크시다면, 각 에이전트가 구동 되는 서버의 절대경로로 import 하여 사용하시는 방법도 생각해 보시기 바랍니다.

감사합니다.
Reply | Threaded
Open this post in threaded view
|

Re: /resources파일 import 시 문의 드립니다.

Gisoo.Gwon
In reply to this post by Lee JiHoon
설명을 좀 더 추가하자면,,
__init__ 은 쓰래드의 초기화 단계에서 수행되는 영역입니다.
즉 vuser 수만큼 쓰래드가 생성되기 때문에 vuesr수만큼 __init__ 메소드가 수행됩니다.
아래와 같이 전역변수영역에서 파일을 로드해주세요.
그렇지 않으면 vuser수만큼 파일을 로드하게 됩니다.

```
from ... import ...
# 전역변수 초기화
class TestRunner
    __init__ # Thread 초기화
    __call__ # 테스트로 초기화 후 무한 반복
```

추가로 전역변수 영역은 프로세스 별로 독립적으로 할당되기 때문에
vuser가 똑같이 10이라도 1 process * 10 Thread와 10 process * 1 Thread는 차이가 있습니다.
- 1 process * 10 Thread : 전역변수 영역이 하나 생성되고, __init__을 10번 수행
- 10 process * 1 Thread : 전역ㅂ견수 영역이 열개 생성되고, __init__을 10번 수행
Reply | Threaded
Open this post in threaded view
|

Re: /resources파일 import 시 문의 드립니다.

Lee JiHoon
In reply to this post by songeunwoo
답변 주셔서 감사합니다~! ^^
Reply | Threaded
Open this post in threaded view
|

Re: /resources파일 import 시 문의 드립니다.

Lee JiHoon
In reply to this post by Gisoo.Gwon
답변 주셔서 감사합니다 ^^

그럼 요지는,

1. #전역변수 초기화 에서 file을 열고 (쓰레드끼리 공유)
2. Process수를 최소화하고 Thread수를 많이 확보하여 Virtual User를 높이는 방법이 좋겠네요?

라고 이해하면 될까요?


감사합니다~!