서버의 하드디스크가 날아갔다. 우분투 새로 설치하고, 다양한 프로그램을 설치하였다.
그런데 vi 를 열었는데, 너~무 느리다. 혹시 내가 .vimrc 를 잘못 복사했나해서 다양하게 시도해보았지만, 별 문제가 없다.
동일한 서버에 다른 사용자로 로긴해서 vi 를 실행해보았는데, 해당 계정에서는 정상적으로 빠르게 열린다. 혹시 perf 를 사용하면 쉽게 잡힐 수 있을까 생각해서 perf 를 입력해보았더니, 다행히도 커널의 perf 옵션이 켜져있는 것 같다.
실행해보자
$ sudo perf record -a -- vi
vi 가 열리자마다 다시 닫아버리면 데이터 수집이 끝난다. 수집된 데이터를 확인해 보았다.
$ sudo perf report
vi 가 가장 많은 부분을 차지한다. vim 에 debug symbol 이 없기 때문에 해당 주소에 대한 symbol 대신 주소값이 나온다. vim-dbg 패키지를 설치하고 다시 해보았으나, function 단위의 내용이 무슨 의미가 있는지 확인하기 어려웠다.
$ sudo apt-get install vim-dbg
그러던 차에 strace 를 실행해보았더니, vim 창이 열리기 전에 엄청 오래걸리는 부분이 확인되었다.
위 부분에서 오래동안 멈춰있는 것을 확인했고, 다른 계정의 경우 위와 같은 부분이 없는 것을 확인했다.
$ strace vim &> log
위 명령을 사용해서 파일로 저장한 다음에 비교해보았더니, 오래 멈추기전에 다음 라인에서 서로 차이가 있었다.
즉 오래 걸리는 계정의 경우 home 디렉토리의 .Xauthority 파일이 존재하였고, 빨리 뜨는 계정의 경우 .Xauthority 파일이 존재하지 않았다.
그럼 간단하게 .Xauthority 파일을 지우면 되는 일 아닌가?
그런데, .Xauthority 는 X 윈도를 사용하면 반드시 생기는 파일이 아닌가? 그리고 vim 이 .Xauthority 와 무슨 관련이 있을까 해서 좀더 확인해보았다.
확인한 결과 내가 사용하는 vim 은 기본적으로 vim.gnome 을 실행하도록 연결이 되어있었다. 그래서 .Xauthority 를 체크하도록 되어있었고, 내가 ssh 을 통해서 터미널 접속을 하고 있었기 때문에 vim 실행이 매우 느렸던 것이었다.
(이 내용은 perf 시에 성능을 잡아먹고 있던 vim.gnome 에서도 찾을 수 있다)
vim.gnome 은 내가 gvim 을 우분트 소프트웨어 센터에서 설치하면서 자동으로 설치된 것으로 보이고, 이때 기본 vim 링크가 vim.gnome 으로 변경된 것이었다.
따라서 vim.gnome 으로 설정된 내용을 다시 vim.basic 으로 변경해주는 작업이 필요했다. 그 작업은 update-alternatives 명령을 사용해서 진행하였다.
$ update-alternatives --all
또는
$ update-alternatives --set <name> <path>
내 경우에는 어떤 링크들이 있는지 전부 확인하기 어려워서 --all 옵션을 주어서 interactive 하게 vim.gnome 으로 되어있는 항목을 모두 바꾸어주었다.
vim 의 다양한 패키지는 이외에도 여러개가 있는데, 이에 대한 내용은 다음을 참고한다.
'IT 기술 > 컴퓨터관리 팁' 카테고리의 다른 글
[TotalCommand] 설정 파일 경로 변경 (0) | 2015.01.24 |
---|---|
[윈도7] 장치 및 프린터 항목이 나타나지 않는 경우 (1) | 2014.11.12 |
[윈도7] Process Explorer / Process Monitor 사용 (0) | 2014.08.05 |
[윈도7] Powershell 을 사용한 Performance Monitor 생성 및 분석 (0) | 2014.08.05 |
[Mercurial] error: _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (0) | 2014.06.26 |