2018-02-27
2015-11-06
2014-12-16
CentOS에 JDK Alternative 멕이기 [삐-]나게 힘들구먼
RHEL이나 CentOS에서 Oracle JDK 설치 관련 구글신께 신탁을 청하면
그냥 "rpm 올리고 alternative 멕이세요." 라고만 되어있다. 진짜...
그래서 만들었습니다.
Oracle JDK Alternative 자동 등록 스크립트!
기존 구글신 신탁처럼 일부분만 등록해버리는게 아니라 전체를 빠르고 편하게 등록해드립니다.
이거 눌러서 받으시고...
0. 먼저 등록할 JDK부터 설치하고 봅니다. (대략
1. 일단 적절한 곳에 던저놓으신 다음
2. chmod a+x centos-jdk-alternative-update.sh
3. ./centos-jdk-alternative-update.sh <JDK-DIR>
끗!
참 쉽죠?
물론 약간의 오류가 있을 수도 있지만, 그런거 내가 알 게 뭐야
일단 CentOS 7에 Oracle JDK 8 버전으로 테스트해봤습니다.
아마 이전 버전들 (JDK 6, 7)에서도 큰 문제없이 돌아가지 시포요.
p.s.
alternative 업데이트 후에도 버전이 바뀌지 않으면 다음 명령을 입력해줍니다.
최신버전으로 올릴 때:
특정버전으로 설정할 때:
각 버전별 경로는 다음 명령으로 알아낼 수 있습니다.
그냥 "rpm 올리고 alternative 멕이세요." 라고만 되어있다. 진짜...
그래서 만들었습니다.
Oracle JDK Alternative 자동 등록 스크립트!
기존 구글신 신탁처럼 일부분만 등록해버리는게 아니라 전체를 빠르고 편하게 등록해드립니다.
이거 눌러서 받으시고...
0. 먼저 등록할 JDK부터 설치하고 봅니다. (대략
yum localinstall
이 좋소)1. 일단 적절한 곳에 던저놓으신 다음
2. chmod a+x centos-jdk-alternative-update.sh
3. ./centos-jdk-alternative-update.sh <JDK-DIR>
끗!
참 쉽죠?
물론 약간의 오류가 있을 수도 있지만, 그런거 내가 알 게 뭐야
일단 CentOS 7에 Oracle JDK 8 버전으로 테스트해봤습니다.
아마 이전 버전들 (JDK 6, 7)에서도 큰 문제없이 돌아가지 시포요.
p.s.
alternative 업데이트 후에도 버전이 바뀌지 않으면 다음 명령을 입력해줍니다.
최신버전으로 올릴 때:
update-alternatives --auto java
update-alternatives --auto javac
특정버전으로 설정할 때:
update-alternatives --set java <path>
update-alternatives --set javac <path>
각 버전별 경로는 다음 명령으로 알아낼 수 있습니다.
update-alternatives --display java
update-alternatives --display javac
2014-11-19
2013-11-04
java.io.IOException: error=12, Cannot allocate memory? WTF?!
Written by 디비네스페아르
on 16:12
in 리눅스, 자바, java, linux, memory, overcommit_memory, posix_spawn
with
댓글 없음

자바의 유서깊은(?) 골칫거리로, 자바에서
(자세한 내용은 여기를 참고하면 좋다.)
위 링크에서 4가지 해결책이 나온다.
리눅스라면돈은 좀 많이 깨지겠지만 내가 알 게 뭐야...
또한 자바의하지만 실제로는
2015-02-23:
리눅스에 zram이라는게 있는데, 써본 결과 매우 좋소!
zram 쓰기 전에는 메모리 10그램으로도 헥헥대던게, zram 쓰고 난 다음부터는 메모리에 여유가 생겼다.
물논 CPU가 그만큼 일을 더 하게 되지만 내가 알 게 뭐야...
fork() + exec()
하는 방식에 문제가 있기 때문이다.(자세한 내용은 여기를 참고하면 좋다.)
위 링크에서 4가지 해결책이 나온다.
- 닥치고 메모리 증설
fork()
호출시swapfile
을 추가하도록 꼼수 사용- 리눅스:
sysctl
의vm.overcommit_memory
속성을1
로 설정 - POSIX 호환 시스템:
fork() + exec()
대신posix_spawn()
사용하기
리눅스라면
vm.overcommit_memory=1
이 아무래도 빠르고 편하겠지만, 동작방식이 후덜덜하므로 overcommit이 일어날 때 커널에서 노는 메모리를 수거하는데, 이 때 어떠한 확인도 없이 막무가내로 수거하므로 잠자고 있는 멀쩡한 다른 프로세스의 메모리를 수거할 수 있다! 미션 크리티컬한 시스템에는 그냥 하지마라. 그런 시스템이라면 2웨이 이상일테니 그냥 닥치고 1번이 더 정신건강에 좋을 것이다. 또한 자바의
fork() + exec()
를 posix_spawn()
으로 교체해주는 java_posix_spawn
이 개발되어 있으므로, 이를 고려해보는 것도 좋을 것이다. posix_spawn()
을 사용하지 않는다는게 함정. vfork()
쓴댄다.덤
vm.overcommit_memory
관련 문서는 레드햇 문서와 노벨 문서를 보면 대략 좋다.
2015-02-23:
리눅스에 zram이라는게 있는데, 써본 결과 매우 좋소!
zram 쓰기 전에는 메모리 10그램으로도 헥헥대던게, zram 쓰고 난 다음부터는 메모리에 여유가 생겼다.