IT한 것 116

리눅스 유령이 메모리를 집어 삼킨다?

내부 시스템의 반응이 조금 느린 것 같아, 시스템 점검차 접속을 해보았다.그런데 이상하게도 남아있는 메모리가 거의 없는 것이 아닌가? top 명령으로 확인해보니, 32기가의 메모리가.. 28기가나 사용중인것 이다.이 시스템에 많은 프로그램이 돌아가고 있는 것은 아닌데... 그런데 실제로 이만한 양을 사용하는 프로세스는 어디에도 없다. 답답한 마음에 구글신의 신탁을 받았다. 누군가 이상해보이는? 링크를 답변으로 달아주었다. http://www.linuxatemyram.com/ 아.. 대충 요약하자면,리눅스는 사용하지 않는 상당수? 의 메모리를 디스크를 캐쉬하는데에 사용한다고 한다.그렇게 디스크 성능을 올리고, 소프트웨어의 메모리 할당이 늘어나기 시작하면, 그 캐쉬의 일부를 반환하는 구조라고 한다. 원래 이..

IT한 것 2015.07.01

jenkins에서 git checkout시에 ERROR: Error cloning remote repo 'origin'

SCM을 git으로 바꾸고 jenkins와 연동하는 작업을 시작했다. 간단한 설정으로 연동은 바로 완료 되었다. 끝난 줄 알았는데, 아니었다.마침 slave node를 설정안해서 node를 하나 추가하고 좀 만지다가 빌드를 해보니 오류가 발생!!저 메시지가 지겹게도 뜬다. 일부 검색 결과에 slave node에서 하면 문제가 생긴다길레, node plugin을 설치하고 parameter로 node를 선택하게 해봤지만, 상황은 그대로.뭘 바꿔도 빌드가 안되는거다. ㅠㅠ 생각보다 회피책은 간단했다. 고급옵션에서 Restrict where this project can be run 옵션을 키고다른 node에서 실행이 되지 않도록 master로 설정하니 너무 잘 돌아간다. 결국 slave node에서 실행 하는..

IT한 것 2015.05.14

custom command에서 TARGET_OBJECT 사용 실패

cmake를 이용하여, 빌드시스템을 구축하였다. ubuntu 12.04랑 osx 10.9에서 테스트를 완료하고. ubuntu 10.04에서 할려는데,출력 파일을 복사하기 위해서 사용하는 ADD_CUSTOM_COMMAND (..... $ ${DEST}) 명령이 자꾸 실패를 한다. 그 사유는 cannot create ${DEST} Is directory... copy 명령의 첫번째 파라미터가 날아간 것으로 보여진다.구글신께 여쭈어보니. cmake 2.8.4에서 고쳐진 버그란다. 즉, custom command 문맥에서 $ 형식의 구문이 제대로 분석이 되지 않는다는 것.대체 방법은.. 좀 걸리적거릴 것 같아서 cmake를 업데이트 했다. 끝.

IT한 것 2015.01.28

NIO의 select 대기 시간이 길어지는 현상.

java 간의 통신을 구현하는데, 데이터길이를 보내고, 그 길이만큼 데이터를 보내는 구조이다.때문에 select를 두번 호출하도록 구현하였는데, 요상하게 이런식으로 구현했더니, 심각할 정도로 성능이 나오지를 않았다.c로 구현할때는 별 이상 없던거 같은데 말이다. 동일한 네트워크간의 통신인데 한번의 송 수신 시간이 50~80ms 정도 소요되었다. select를 한번만 호출하도록 수정하니 0~1ms 정도 소요된다.이게 맞지. ;;;

IT한 것/java 2013.11.11

AIX: ar command

AIX에서 연관되어있는 모듈 관계를 보면 shared object인 .so파일 보다는 .a 파일이 많이 나온다.과연 왜 이럴까? 라는 물음에서 남길만한 것을 찾았다. 아래의 내용은 man ar 명령으로 본 것이다. The ar command maintains the indexed libraries used by the linkage editor. The ar command combines one or more named files into a single archive file written in ar archive format. When the ar command creates a library, it creates headers in a transportable format; when it creat..

IT한 것/unix 2012.10.22

HP-UX 이제 여기에도 apt-get, yum, pkgutil 같은 녀석이!

HP-UX의 오픈소스 패키지를 구하기 위해서는the Porting And Archive Centre for HP-UX 이 사이트가 갑이다. 그 덕에 얼마나 편하게 필요한 소프트웨어를 구하는지! 허나, 사실상 rpm과 다름 없이 각각의 패키지가 분리되어 있어서, 한큐에 설치하기가 참 귀찮은 편이다. 오늘도 여전히 노가다로 설치중이였는데, 뜬금없이 why not use depothelper? 라는 링크가 보이더라. depothelper라는 패키지가 원격 저장소에 있는 패키지를 가져와 설치해주는 역할을 한다. /usr/local/bin/depothelper subversion 요걸로 단박에 설치해준다 ㅠㅠ감사!!

IT한 것/unix 2012.08.27

HP-UX nslookup이 hostname를 못찾을 때.

그동안 설정이 완료된 서버만 만져보다가 새로운 서버를 만져보게 되었다. ip 설정 후, depot 패키지를 받아 설치하려는데,무식하게 hostname을 찾기 못한다는 오류가 발생한다./etc/hosts 파일 내에 hostname이 ip로 설정되어 있는 것을 확인해 보았음에도 말이다. 그리하여 nslookup hostname을 시도하였더니 진짜로 못찾는 문제가 발생하였다.당최 이게 뭐지했는데. /etc/nsswitch.conf 라는 설정이 존재하였다.이 녀석의 목적은 네임 서버 탐색 방법을 설정하는 것으로 보여진다. 설정되었던 기본 값은 hosts: dns [NOTFOUND=return] nis [NOTFOUND=return] files 보다시피 dns로 찾아바고 없으면 반환, nis로 찾아보고 없으면 반..

IT한 것/unix 2012.08.27

링킹 뭘로 할까 gcc/cc, ld ??

최근 특이한 일을 겪었다. solaris x86 플랫폼에서 빌드 할 일이 있었는데, c 소스를 gcc로 컴파일하고 ld로 링킹을 하고 있었다. 이 과정까지는 문제가 없었는데, 실행파일을 만들고 실행을하면.모든 로직을 수행 후, segmentation fault가 발생한다.※심지어는 hello world만 찍어도 그렇다. 이미 소스코드 레벨의 문제가 아니라는 것이 확인되었으니, 링커를 변경해봤다.gcc/cc로 링킹을 해보니 정상적으로 작동한다. 응? 뭐지? 뭔가 그 동안 잘못 알고 있는게 아닌가 싶어서 oracle에 접속.그리고 발견Direct Invocation When you invoke the link-editor directly, you have to supply every object file a..

IT한 것/unix 2012.05.02

passing argument ... with different width due to prototype

gcc를 이용하여 컴파일을 하다보면, 자주 보게되는 경고문이다. 먼저 선언해두었던 함수의 원형과는 일치하지않는 전달인자를 넘겼을 경우에 발생한다. 물론 -Wconversion 옵션을 설정하지 않으면 발생하지 않겠지만, 꼼꼼하게 하려는 생각에 사용한다. 그런데 참 이해하기 힘든 상황이 발생했었다. lovian$ cat a.c int func (unsigned char aa) { return 1; } int main () { func ((unsigned char)0); return 0; } lovian$ gcc a.c -Wconversion a.c: In function ‘main’: a.c:7: warning: passing argument 1 of ‘func’ with different width due..

IT한 것/unix 2011.09.23

Internet Explorer 보호모드에서 일반 사용자로 COM Server 접근불가 문제.

Vista 이상부터는 Integrity Level이란 개념을 모르고서는 개발하기가 어려워졌다. 간단히 말해서 이 레벨이 낮은 프로세스는 높은 설정을 가진 프로세스와의 상호작용(interaction 이랄까)이 어려워지게 된 것이다. 그리하여 이 레벨을 맞추고 정상작동을 하기 위해서 권한 부여 작업이 필요해진 것이다. 이 작업만 하면 될 것 같겠지만, 애석하게도 아닌 상황이 존재한다. Internet Explorer에서 ActiveX 모듈로 기동한 경우이다. IE는 기본적으로 Low Level로 작동하기 때문에, 해당 ActiveX도 Low Level을 가지게 된다. 그런데 이 모듈이 Low Level이 할 수 있는 이상의 작업이 필요한 경우에는, 보다 높은 레벨을 가진 모듈에게 요청 하는 수 밖에 없을 것..

IT한 것/WINDOWS 2011.07.20