'분류 전체보기'에 해당되는 글 11건

  1. 2023.02.13 스픽 후기 (10살 딸아이 + 40대 아저씨 후기, 할인코드)
  2. 2015.06.16 [jMeter] 레코딩하기
  3. 2015.06.16 [jMeter] 설치
  4. 2015.06.11 [Algorithm] 재귀함수와 스택
  5. 2015.03.03 [Oracle] Partition Split
  6. 2014.12.09 [LoadRunner] graph*.dat 파일에서 2번째 열
  7. 2014.11.28 [Oracle] 11g Parameter
  8. 2014.09.15 [UNIX] VI / VIM 단축키
  9. 2014.05.29 [Windows] Setx 명령어
  10. 2014.02.02 파일이름 변경하기

스픽 후기 (10살 딸아이 + 40대 아저씨 후기, 할인코드)

|

말해보카를 2년동안 10살인 딸(2014년생)과 함께하고,
23년 1월 프리미엄 기간이 만료되어
다른 영어 어플을 찾는 중 스픽 이라는 어플을
여러 채널을 통해 알게 되었습니다. 7일간의 무료체험을 하고 나니,
오히려 딸 아이가 재미 있다고
신청해달라고 합니다.

말해보카와의 차이를 간단하게 이야기 해보면 다음과 같습니다.
말해보카
- 단어 위주의 한 문장
스픽
- 회화 위주의 여러 문장 딸에게 말해보카보다 스픽으로 상황(문맥)에 따라 대화 연습을 해 볼 수 있는 점이 더 좋다고 합니다.
저도 이 의견에는 동감하는데,
말해보카를 하면서는 문장에 적절한 단어를 고르는 점 위주라면,
스픽은 문맥에 맞춰서 연습해 볼 수 있는 차이점이 있었습니다.

다음은 스픽 2만원 추가 할인에 대한 링크(할인코드) 입니다.

https://app.usespeak.com/i/IUKMZT

가입하실 때, 저 링크 타고 가시면 최종적으로
요금에서 2만원 할인 받을 수 있습니다. 이상 스픽과 말해보카에 대한 후기였습니다.

And

[jMeter] 레코딩하기

|
jMeter를 이용해 성능테스트, 장애테스트, 가용성테스트 등을 진행 할 수 있다.
이때 테스트 대상이 되는 시나리오는 다음과 같은 조건을 만족하여야 한다.

  • 자주 사용되는 서비스
  • VIP가 자주 방문하는 서비스

위와 같은 조건을 만족하는 서비스를 선정하였으면
Script를 레코딩 한다.

레코딩하는 방법에는 크게 2가지 방법이 있다.

  1. 개발자 도구 및 Fiddler를 이용해서 Request/Response 를 캡쳐하는 방법이다.
  2. Recording Controller를 이용하는 방법이다.

여기서는 2번 방법으로 설명하도록 하겠다.

1. Thread Group 을 추가한다.


2. Thread Group의 이름을 "Recording Script"로 적절히 변경한다.


3. WorkBrench 에 "Http(s) Test Script Recorder"을 추가한다.



4. 다음과 같이 "Http(s) Test Script Recorder"를 수정한다.
브라우저의 Proxy 기능을 사용할 예정이므로 다음과 같이 설정한다.
Port : 9090
Target Controller : Test Plan > Recording Script



5. Browser 의 Proxy설정을 변경한다.(Chrome기준)
주소 : 127.0.0.1
포트 : 9090



6. "Http(s) Test Script Recorder"에서 Start 버튼을 클릭한다. 그리고 브라우저에서 테스트 대상 시나리오에 따라 수행한다. 종료되면 Stop 버튼을 클릭한다.

7. Recording Script(Thread Group)에 생성된 것을 확인 할 수 있다.





'02.IT Stroy > 02L.성능테스트' 카테고리의 다른 글

[jMeter] 설치  (0) 2015.06.16
And

[jMeter] 설치

|

jMeter는 오픈소스기반의 성능 테스트 툴이다.


Java를 기본하여 Swing으로 GUI가 구성되어 있으며,
Command Line으로도 실행이 가능하다.


1. 다운로드 및 설치


http://jmeter.apache.org

위 URL에서 설치 받을 수 있다.
단, JAVA1.6버전 이 후 버전이 요구된다.


2. jMeter Plugin 설치


기본적으로 설치되는 jMeter는 기본적인 기능만 설치되어 있다.
Staandard Set에서 제공하는 기능 중 Graphs(Response Times Over Time, Transactions per Second, Active Thread Over Time) 와 Stepping Thread Group 기능을 사용하기 위해 Plugin을 설치하자.
Plugin설치는 아주 쉽다.

http://jmeter-plugins.org

위 url에 접속하여 Standard Set을 다운로드하고,
jMeter를 설치한 디렉토리의 lib에 압축해제한다.

단, jMeter 2.8버전 이 후 버전 또는 JAVA1.6버전 이 후 버전이 요구된다.


'02.IT Stroy > 02L.성능테스트' 카테고리의 다른 글

[jMeter] 레코딩하기  (0) 2015.06.16
And

[Algorithm] 재귀함수와 스택

|

재귀함수
- 함수의 시작점이 다시 돌아가 자기 자신을 호출하는 것

재귀함수의 종류
- 전위 운행
- 중위 운행
- 후위 운행
- 단계 운행

예제 - Factorial
호출 구조




스택(Stack)
- 프로그램을 실행하는 데 필요한 공간

스택 프레임(Stack Frame)
- 하나의 메서드를 호출하는데 필요한 메모리
- 메서드 하나당 하나의 스택 프레임이 필요




플랫폼별 스택 크기
Windows IA32 - 64 KB
Windows IA64 - 320 KB
Linux IA32 - 128KB
Linux IA64 - 1024KB (1MB)
Windows x86_x64 - 128KB
Linux x86_x64 - 256 KB
Solaris Sparc - 512KB

스택 크기 조정 옵션
- Format : -Xss<size>[g|G|m|M|k|K]
- java -Xss512k myAPP


# Andorid Stack 크기 : 8KB / 256KB(MAX)


꼬리재귀
- 재귀함수에서 호출된 함수가 리턴 될 때 원래 자리로 돌아와야 하는 이유는 ​호출한 부분 다름에 다른 내용이 포함되어 있으면 그 내용을 계속 처리하기 위해서이다.
- 원래 위치로 돌아 갔을 때 할 일이 남아 있지 않기에 함수가 호출된 위치를 기억해 둘 필요 없음.

And

[Oracle] Partition Split

|

Partition Table 에 대해서 Split 하는 방법

상황
- RANGE Partition Table에서 2015년 03월 Partition을 생성하지 않고 2015년도 Partition을 생성한 경우

1. Split 할 Partition에 대해서 건수 확인
SELECT COUNT(1) AS CNT
FROM [OWN].[TAB] PARTITION(P201504);

2. [Split이전] Partition 에 대한 정보 확인
SELECT TABLE_OWNER,
TABLE_NAME,
PARTITION_NAME,
TABLESPACE_NAME,
HIGH_VALUE
FROM DBA_TAB_PARTITIONS
WHERE TABLE_NAME = '[TAB]';

3. Split Partition
ALTER TABLE [OWN].[TAB]
SPLIT PARTITION P201504 AT ('20150399999999')
INTO (PARTITION P201503, PARTITION P201504_02);

4. Partition Name 변경
ALTER TABLE [OWN].[TAB]
RENAME PARTITION P201504_02
TO P201504;

5. [Split이후]Partition 에 대한 정보 확인
SELECT TABLE_OWNER,
TABLE_NAME,
PARTITION_NAME,
TABLESPACE_NAME,
HIGH_VALUE
FROM DBA_TAB_PARTITIONS
WHERE TABLE_NAME = '[TAB]';

6. Split한 Partition 에 대해 연결된 Local Index Rename
ALTER INDEX [OWN].[TAB]_PK
RENAME PARTITION P201504_2 TO P201504;
ALTER INDEX [OWN].[TAB]_IX01
RENAME PARTITION P201504_2 TO P201504;

7. UNUSABLE Index에 대해서 Rebuild
ALTER INDEX [OWN].[TAB]_PK
REBUILD PARTITION P201503 ONLINE;
ALTER INDEX [OWN].[TAB]_PK
REBUILD PARTITION P201504 ONLINE;
ALTER INDEX [OWN].[TAB]_IX01
REBUILD PARTITION P201503 ONLINE;
ALTER INDEX [OWN].[TAB]_IX01
REBUILD PARTITION P201504 ONLINE;

8. Split이후 Partition에 대해서 건수 확인
SELECT COUNT(1) AS CNT
FROM [OWN].[TAB] PARTITION(P201503);

And

[LoadRunner] graph*.dat 파일에서 2번째 열

|

timestamp로 엑셀에서 치환하기

=(((A1/60)/60)/24) + DATE(1970,1,1) + (9/24)

마지막 (9/24)는 GMT + 값

And

[Oracle] 11g Parameter

|
Google Docs에 정리


db_block_size
- Oracle Database Block Size로 I/O 기준이 됨
- 8192/8192 (Default/Recommand)

db_file_multiblock_read_count
- Table Scan시 최소의 I/O 양으로 OLTP 성(8), 배치성(16 or 32)
- ?/16 (Default/Recommand)

disk_asynch_io
- Oracle Datafile에 대한 async I/O 처리하여 성능개선
- TRUE/TRUE(Default/Recommand)

db_keep_cache_size
- Keep Buffer에 유지하여 특정 Object에 대한 DISK I/O 성능 이슈 발생 설정
- 0/0(Default/Recommand)

db_cache_advice
- 검증, 성능/부하 테스트 단계까지 on, 운영 단계에서 Off 권고
- statistics_level에 따라 설정/off(Default/Recommand)

result_cache_max_size
- SQL Query 의 결과에 대해 저장되며, 0으로 설정할 경우 result cache disable
- Shared Pool Size 내에서 할당 됨. Shared Pool Size 산정 시 고려
- 성능/검증 Test를 통해 Disable할지 고려
- shared_pool_size에 자동 / default (Default/Recommand)

db_writer_processes
- RAC 및 부하가 큰 DB의 Data File에 대한 I/O가 높을 경우 4로 Tunning
- Async I/O 설정을 전제로 함.
- CPU가 적으나 대량 I/O 인 경우 설정
- 1/cpu_count / default (Default/Recommand)

open_cursors
- Session당 Open 가능한 cursor
- 일반적으로 500 이상 발생 시 Application 검증 필요
- 개발 단계시 모니터링 항목
- 300/300 (Default/Recommand)

session_cached_cursors
- 동일 SQL이 잦은 Parsing이 발생할 때 설정 시 유리
- LRU로 관리 됨.
- 50 / 50 (Default/Recommand)

db_name
- Database 이름

db_domain
- 128자 이내로 세팅
- 숫자, _, $ 미사용

background_dump_dest
- Alert로그 및 Background Process 관련 Trace 위치
- OS 설정에 따름 / (/log/diag/rdbms/db명/SID명/trace) (Default/Recommand)

core_dump_dest
- UNIX에서만 사용되는 파라미터
- Oracle Core 파일 떨어지는 위치
- OS 설정에 따름 / (/log/diag/rdbms/db명/SID명/cdump) (Default/Recommand)

max_dump_file_size
- Log 저장 영역 여유율을 고려하여 설정
- UNLIMITED / UNLIMITED (Default/Recommand)

statistics_level
- 자동 튜닝, 분석 Data 수집 기본 기능
- TYPICAL / TYPICAL (Default/Recommand)

timed_statistics
- time 관련 통계 정보 수집
- statistics_level 에따라 설정 / TRUE (Default/Recommand)

db_block_checking
- Data, Memory Corruption 방지
- DB 정합성 유지를 위해 적용 검토 필요함.
- True 설정 시, 약 1% ~ 10% overhead
- FALSE/FALSE (Default/Recommand)

db_block_checksum
- Memory Corruption 방지
- Default 는 Typical 이며 약 1% ~ 2%의 overhead
TRUE 는 약 5% 의 overhead
- DML 전에도 Checksum 확인
- DB 정합성 유지를 위해 적용 검토 필요함.
- Typical / FALSE (Default/Recommand)

user_dump_dest
- user process에 의해 debugging 되는 trace 파일 떨어지는 곳
- OS설정에 따라 감 / (/log/diag/rdbms/DB명/SID명/trace) (Default/Recommand)

diagnostic_dest
- Bdump, Udump에 대응되는 정보가 저장되는 경로
- OS설정에 따라 감 / (/log) (Default/Recommand)

distributed_lock_timeout
- 분산 Transaction에 대한 Lock 대기 시간이 필요시 대기 시간 튜닝
- Global transaction timeout < session timeout < distributed_lock_timeout (DB설정)
- OS설정에 따라 감 / 1000 (Default/Recommand)

db_files
- datafile 가능 한 수
- OS설정에 따라 감 / 2000 (Default/Recommand)

audit_file_dest
- audit trail 걸때 지정되는 위치
- OS설정에 따라 감 / (/log/diag/rdbms/DB명/SID명/adump)

nls_timestamp_format
- timestamp format 세팅
- nls 설정에 따름 / YYYY-MM-DD HH24:MI:SS:FF6 (Default/Recommand)

nls_timestamp_tz_format
- timestamp timezone format 세팅
- nls 설정에 따름 / timezone 필요시 설정 (Default/Recommand)

nls_data_format
- data format 세팅
- nls 설정에 따름 / YYYY-MM-DD (Default/Recommand)

job_queue_processes
- 오라클 내부에서 수행되는 Job(dbms_job) 을 위해 생성되는 Job Process 최대 개수
- 1000/1000 (Default/Recommand)

optimizer_mode
- first_rows_n(1, 10, 100, 1000) : 옵티마이저가 각 rows 값들이 나오기 위한 cost_based 사용
- all_rows : 옵티마이저가 해당 결과값을 나오기 위한 cost_based 사용
- Index Scan 또는 Full Table Scan을 해야하는지 선택
- all_rows / all_rows (Default/Recommand)

optimizer_dynamic_sampling
- 주기적인 통계정보 수립, SQL 수행 시 통계정보가 없는 테이블에 대해 통계정보 수집
- DBA가 주기적으로 모든 테이블에 대해 통계정보 수집
- 샘플 블록 개수가 64개로 적절한 실행계획을 기대하기 어려움
- 샘플 블록 개수를 늘이면 파싱이 오래 거림, 반복적인 샘플링 발생
- 동적 샘플링 정보는 저장하지 않음
- 2 / 0 (Default/Recommand)

optimizer_index_caching
- Cost-based Optimizer가 Nested Loop 성으로 수립되도록 수집하도록 유도
- 0 / 0 (Default/Recommand)

optimizer_index_cost_adj
- Access Path 수립 시 Index 에 대한 친화도를 조절
- 낮을 수록 Index 사용
- 100 / 100 (Default/Recommand)

optimizer_secure_view_merging
- SYS유저가 생성한 Dict View를 타 유저가 참조하는 경우 성능 저하 발생
- Query Rewrite 사용하기 위해 반드시 FALSE 설정
- TRUE / FALSE (Default/Recommand)

parallel_adaptive_multi_user
- PX 사용 시 다중 사용자의 성능을 향상시키는 알고리즘 사용
- TRUE : Query 수행되는 시점의 System Load에 따라 자동으로 Parallel Degree 를 줄여서 Query 수행
32 -> 16 -> 8 ....
- 가능한 Parallel을 보장하기 위해 FALSE 로 세팅
- TRUE/FALSE (Default/Recommand)

parallel_force_local
- PX(Parallel Execution)을 한 인스턴스로 고정함
- 필요시, Session 단위 변경 실시
- FALSE / TRUE (Default/Recommand)

parallel_execution_message_size
- 만약 Top 5 Timed Events에 PX qref latch가 상위에 올라오는 경우 16384byte 상위 검토 필요함
- 16384 / 16384 / (Default/Recommand)

sga_target
- ASMM(Automatic Shared Memory Management) 기능으로 모니터링 후 SGA 튜닝하여 고정 할 지 결정
- 대용량 메모리인 경우 50% 검토
- 0 / 전체 메모리의 30% 할당 (Default/Recommand)

sga_max_size
- 최대 SGA SIZE 값으로 sga_target으로만 설정함

db_cache_size
- db_cache_size 설정 후 V$DB_CACHE_ADVICE 뷰 참고해서 튜닝
- 미 설정 후 튜닝하여 설정

shared_pool_size
- "ASM" 사용 시 증가.
- db_cache_size 늘리는 경우 같이 늘려줘야 함.
- RAC인 경우 GES, GCS 추가 사용함
- 미 설정 후 튜닝하여 설정

shared_pool_reserved_size
- 대량 shared pool 5%
- 자동 설정에 따른 5% / 튜닝하여 설정 검토

java_pool_size
- java class, method 사용을 위한 메모리 영역

lock_sga
- Memory 사용률이 높은 경우 TRUE 권고(80% 이상 가능 시)
- FALSE/FALSE (Default/Recommand)

large_pool_size
- Memory의 약 1% 할당
- 만약, Parallel 을 다수 사용하며, MTS, RMAN을 사용 시 늘린다.
- PUMP 사용이 만흥 DB에 한해 1GB이상 설정

log_buffer
- 오라클 Internal 알고리즘에 의해 세팅됨

log_checkpoints_to_alert
- checkpoint 시작 종료 시간을 alert log 통해 볼수 있음.
- 적용 권장
- FALSE / TRUE (Default/Recommand)

log_archive_format
- %t : thread number
- %r : resetlogs ID
- %s : log sequence number
- %S : log sequence number 이나 없는값은 0으로 채움
- %T : thread number이나 없는 값은 0으로 채움
- %a : activation ID
- %d : database ID
- OS설정에 따라 감 / arch_DB명%t_%s_%r.arc (Default/Recommand)

fast_start_mttr_target
- Instance Recovery 시 복구를 600초 내에 끝낼 수 있도록 설정하는 값
- 단, write complete waits, Incremental Checkpoint 이벤트가 빈번히 발생하는 경우, 값을 늘리도록 함.
- 0 / 0 (Default/Recommand)

log_archive_dest_1
- Archive File 떨어질 위치
- 공유 영역

log_archive_dest_2
- Archive File 떨어질 위치
- Local 영역

audit_sys_operations
- Sys user가 어떤 것을 Operation 하는 지 보는 Parameter
- FALSE / TRUE (Default/Recommand)

sec_case_sensitive_logon
- Login ID, Password에 대한 Case Sensitive설정
- 11g 이상 부터
- TRUE / FALSE

07_DICTIONARY_ACCESSIBILITY
- select any table 권한으로 SYS Schema의 Object를 조회하도록 설정
- FALSE/FALSE (Default/Recommand)

remote_login_passwordfile
- NONE : 패스워드 파일 무시, OS에 의해서 권한을 부여 받음.
- EXCLUSIVE : 패스워드 파일 사용, SYS or NON-SYS 계정을 넣음. 1개DB 내 1개 Instance 사용
- EXCLUSIVE / EXCLUSIVE (Default/Recommand)

audit_trail
- Oracle audit 기능의 사용 시 로그 생성 문제로 시스템 부하 발생
- 10g=NONE, 11g=DB로 Default정책 변경
- NONE / NONE (Default/Recommand)

processes
- Oracle 프로세스 개수
- 만약 대형 시스템인 경우 5000이상 늘리며,
또한 Fail-Over 고려하여 2~3배 수 설정
- 100 / 2000 (Default/Recommand)

pga_aggregate_target
- Memory-intensive SQL operators에 사용
(sort, group by, hash-join, bitmap merge, bitmap create)
- 메모리 사용률 확인 필요
- 향후 부하테스트 이후 조정 참고사항 임
- 메모리 과다 낭비 하지 않도록 조정 필요
- 10MB or 20% SGA

workarea_size_policy
- PGA방식의 sort사용
- 효율적인 Memory 사용과 성능을 위해 권고
- AUTO / AUTO (Default/Recommand)

undo_management
- UNDO space 관리를 위해 자동
- AUTO / AUTO (Default/Recommand)

undo_tablespace
- 전체 DB의 5% 할당

recyclebin
- Recycle BIN DROP 시 유용하게 사용 가능
- on / on (Default/Recommand)

cluster_database
- Single : FALSE / RAC : TRUE

instance_number
- rac 인 경우

local_listener
- listener.ora에 기입되어 있는 network 및 address 명으로 기입 함
- 같은 machine 내에 있는 Instance 의 listener 임
- tnsnames.ora 에도 등록해야 함
- 해당 기능을 세팅하면 pmon이 listener 상태를 모니터링 함

global_txn_process
- 11g New Feature
- Global Distributed Trancation에 대한 Instance별 관리
- default 권고

thread
- RAC에서 Instance가 사용하는 redo thread number

spfile
- rman 사용 시 spfile로 전환하며, pfile형태로 관리

deferred_segment_creation
- 실제 데이터 추가 되기 전까지 segment 생성 지연
- TRUE/FALSE (Default/Recommand)

control_file_record_keep_time
- control file content에 대한 보관기간으로 Archive File에 대한 정보를 저장하기 위해 백업정책에 따라 결정
- 7 / 40 (Default/Recommand)

log_archive_min_succeed_dest
- archive 다중화 구성 시 destination의 여러가지 문제로 특정번호 지정하여 성공시 계속 사용 가능하는 옵션
- 1 / 1 (Default/Recommand)

_optim_peek_user_binds
- 초기 Plan 수립 시 특정 bind에 대하여 Peaking하여 반영하는 기능
- 안정적인 Plan 수립을 위해 기능 Disable
- 예상 실행 계획과 실제 실행 계획이 다를 수 있음.
- TRUE / FALSE (Default/Recommand)

_fast_full_scan_enabled
- Index 전체를 읽어 Index를 사용하는 의미가 없음
- 업무 SQL에서 Index Fast Full Scan이 유용한 경우는 없음
- 필요시 Hint 로 유도
- TRUE / FALSE (Default/Recommand)

_optimizer_adaptive_cursor_sharing
- Bind Variable Peaking와 동일한 문제
- SQL하나에 서로 다른 실행계획이 다수 발생
- Cursor 과다 생성으로 Shared Pool 부족할 수 있음
- TRUE / FALSE (Default/Recommand)

_optimizer_join_factorization
- UNION / UNION ALL 은 대부분 실행 계획 부리를 목적으로 작성
- Join Factorization은 실행 계획 분리를 방해
- TRUE / FALSE (Default/Recommand)

_optimizer_skip_scan_enabled
- Data 분포가 특별한 케이스에서만 효과 있음
- 대부분의 경우 성능을 악화.
- TRUE/ FALSE (Default/Recommand)


And

[UNIX] VI / VIM 단축키

| 2014. 9. 15. 18:29
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

[Windows] Setx 명령어

|

WIndows의 환경 변수를 CMD를 사용하여 변경 시킬 수 있도록 하는 명령어


ex) setx JAVA_HOME "C:\Program Files\Java" -M


MSDN

http://technet.microsoft.com/en-us/library/cc755104.aspx

And

파일이름 변경하기

|

Python 3.3.3 버전 기준.


최하위 디렉토리명을 기준으로 파일명 일괄로 변경하기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#-*- coding: utf-8 -*-
#renmamer.py
 
import os
import sys
 
def usage():
    print("""
Usage(make by Teddy)
=====
python %s %%dirPath%%
=====
""" % (sys.argv[0]))
 
# 재귀적으로 하위 디렉토리 검색
def search(dirName, count=1):
    flist = os.listdir(dirName)
    for f in flist:
        next = os.path.join(dirName, f)
        if os.path.isdir(next):
            search(next)
        else:
            doFileWork(next, count)
            count = count + 1
 
# 파일 이름 변경         
def doFileWork(fileName, count):
    ext = os.path.splitext(fileName)[-1]                         # 확장자
    newFileName = os.path.split(os.path.split(fileName)[0])[-1]  # 새파일이름
    dirName = os.path.dirname(fileName)                          # 디렉토리명
    dest = os.path.join(dirName, newFileName + "_%3s%s" % (str(count).zfill(3), ext))
    os.rename(fileName, dest)
 
# Main()
if len(sys.argv) == 2:
    print("***Start***")
    search(sys.argv[1])
    print("***End***")
else:
    usage()



renamer.py


And
prev | 1 | 2 | next