본문 바로가기

Linux3

병렬 프로그래밍할 때 자바 쓰레드의 낮은 우선 순위(Linux) 자바 쓰레드는 경쟁이 심한 Linux 환경에서 이용될 때, 일반 우선 순위를 가진 쓰레드들은 성능이 급격히 하락한다. 그 이유는 자바에서 NORMAL의 우선 순위는 높은 nice(원래의 OS 쓰레드 우선 순위에 더해지는 우선 순위 값) 값을 가진다. Linux에서는 낮은 값일 수록 먼저 CPU 자원을 획득할 수 있기 때문에, 결국 이 말은 그냥 기본값으로 동작 시키면 주변에 많은 프로세스들이 동작하고 있을 때, CPU 자원 획득을 양보한다는 뜻이다. 물론 root 권한이 있다면, nice, renice와 같은 명령어들로 java 프로세스의 우선 순위를 변경할 수 있다. 하지만, root 권한이 없다면, 쓰레드를 사용하는 여러분의 프로그램은 성능이 매우 나빠질 것이다. 해결하는 방법은 다음과 같다. jav.. 2013. 2. 13.
top 명령어 열 설명 다음 문서는 http://wiki.vpslink.com/Linux_Command_Reference:_top의 내용을 편역한 것이다.기본 출력 top - 03:31:05 up 7:40, 1 user, load average: 0.00, 0.00, 0.00Tasks: 15 total, 1 running, 14 sleeping, 0 stopped, 0 zombieCpu(s): 0.1% us, 0.0% sy, 0.0% ni, 99.9% id, 0.0% wa, 0.0% hi, 0.0% siMem: 512000k total, 115552k used, 396448k free, 0k buffersSwap: 0k total, 0k used, 0k free, 0k cached PID USER PR NI VIRT RES S.. 2013. 2. 13.
libstdc++.a를 fPIC 옵션으로 다시 컴파일하는 경우 문제 해결(linux) 이 문제는 동적 라이브러리를 생성할 때 발생한다. 다른 정적 라이브러리들을 링킹하는 과정에서 fPIC 옵션을 지정한 경우, 모든 정적 라이브러리가 fPIC 옵션을 가지고 컴파일 되어야 한다. 하지만, 그 중에 fPIC으로 컴파일 되지 않은 라이브러리가 있는 경우에는 이를 다시 컴파일 해주어야 한다. 이 중 libstdc++는 조금 머리 아픈 경우로써, 재컴파일 하려면 몇 가지 단계를 거쳐야 하므로 이를 정리한다. 사실 이 문제는 GCC 4.7 버전에서 해결되었다.(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28811) 실제 에러 메시지는 다음과 같이 보인다. /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a(cty.. 2013. 1. 31.