버추얼 박스에 파일을 복사해서 여러게 vm을 부팅할때 uuid 충돌로 되지를 않는다 그것을 해결 하기 위한 방법이다 http://michail.flouris.net/2011/11/virtualbox-vm-disk-clone-uuid-problem/ 해당 사이트를 보고 해결 했다. VBoxManage internalcommands setvdiuuid 파일명 VBoxManage internalcommands sethduuid 파일명
삽질 했다 attr이 제대로 동작하지 않아서 찾아보니깐 prop를 쓰는게 맞는거 같다
#인코딩 변경 iconv -f cp949 -t utf8 json_code.properties > json_code.properties.utf8
http://www.jdev.it/encrypting-passwords-in-tomcat 위에 url을 참고로 톰캣 DataSource user 정보 암호화 시키는 소스를 만들어 보았다. 위에 나와 있는 방법은 tomcat jdbc가 포함된 7.0 이상 버전에서만 작동해서 톰캣 API를 참조로 tomcat DBCP 수정해서 암호화 하도록 만들었다. 첨부한 jar파일을 톰캣 lib 밑에 넣어주고 사용하면 된다 톰캣 7.0.55 버전과 6.0.41버전으로 테스트를 해보았다. Resource 설정 7.0 이상 7.0이하 소스코드 https://code.google.com/p/my-tag-lib/
port 80번의 경우 root권한으로만 가능하므로 일반계정에서 사용하기 위해 라우팅테이블을 수정한다. iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -I OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080
모니터링 툴은 https://github.com/junegunn/redis-stat 를 사용해서 모니터링 함 redis 버전 : 3.0 GUESTOS : osx 요세미티 가상 OS : 우분투 14.04 ram(2gb) cpu(2core) redis 구성 : 1 master 1 slave 총 2대 jedis를 이용해서 set코드를 생성후 set 첫번째 시도 가용메모리를 넘어서도 계속 사용가능 확인 해보니 swap영역을 사용 두번째 swap영역을 off후에 테스트 메모리 사용량이 초과면 자동으로 Redis서버가 정지 아래의 에러메시지 출력 마스터만 정리 슬레이브는 미정지됨 가용메모리를 초과되지 않음 [2015/04/20 15:32:58@127.0.0.1:6379] Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED) 위 내용은 최대 메모리 정책을 적용 안시켰을때 이다. 정책은 아래에서 확인 할수 있다 http://redis.io/topics/lru-cache
드라이브를 mysql로 수정하면 정상 동작한다. 나중에는 invalid callable syntax 에러가 계속 나고 있었다. { call TEST ( #{day, mode=IN, jdbcType=DATE, javaType=String} ) } 위에처럼 다른DB에 호출시에는 중괄호가 들어가서 정상적으로 동작했는데 저 중괄호가 문제가 되었다. 그래서 중괄호를 뺀후에는 정상적으로 동작이 되었다. 해당 에러에대해서도 mysql jdbc드라이버가 좀더 자세한 에러를 보여주고 있었다 결론은 maria jdbc보다 mysql jdbc를 사용하자
성능 시험 중 커넥션이 자주 끊기는 에러가 나고 있었다. 1000TPS 30분에 두세번 정도 끊기고 있었다. 그래서 커넥션 풀에 testOnBorrow 설정을 true로 설정 해서 에러를 막았다.
mariadb 성능테스트를 하는데 이상하게 로드러너에서 50user만 넘으면 성능 그래프가 튀는 경우가 생겼다 하지만 was에서 어플리케이션으로 디비에 접속해서 실행시키면 문제가 없던것이였다. 그래서 ODBC드라이버를 mysql ODBC로 바꾸니 정상적으로 성능테스트가 진행이 되었다. 마리아디비는 mysql소스를 그대로 가지고 간거로 알고 있었는데 아니였나 ㅜㅜ ODBC는 mysql ODBC를 써야겠다. 참고로 JDBC는 둘다 테스트를 해보았는데 문제가 없었다.
spring-data-redis 1.5 버전과 jedis를 사용해서 이번에 프로젝트를 진행하였다. 성능테스트를 진행중에 한곳에서 여러번의 IO가 발생하는 매소드에서 성능도 나오지 않을뿐더러 50TPS가 넘어가는 순간 서버가 먹통이 되어 버렸다. 그리고 서버를 재기동시에 아래의 에러가 계속 발생되고 있었다. org.apache.catalina.loader.WebappClassLoader loadClass INFO: Illegal access: this web application instance has been stopped already. Could not load redis.clients.jedis.Connection. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact. java.lang.IllegalStateException org.apache.catalina.loader.WebappClassLoader loadClass INFO: Illegal access: this web application instance has been stopped already. Could not load org.springframework.data.redis.PassThroughExceptionTranslationStrategy. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact. java.lang.IllegalStateException 해당 소스에서 트랜잭션을 빼고난후에는 정상적으로 TPS가 올라가고 있었다.

+ Recent posts