더 이상 Prelink를 사용할 때 요점이 있습니까?


11

다양한 리눅스 상자를 사용하여 수년에 걸쳐, 내가 사용하는 habbit에 왔 prelink를 애플리케이션의로드 시간을 단축하는 의식.

그러나 모든 종속 항목과 종속 항목을 다시 사전 연결해야하므로 패키지를 다시 설치할 때마다 사전 연결 실행의 이점이 무시됩니다.

이 사전 연결은 여러 가지 문제를 일으킬 수 있으며 그중 하나는 바이너리 MD5 무효화입니다. 이는 MD5와 업스트림 개정을 비교하거나 바이너리를 변경했는지 여부를 결정하는 데 MD5를 사용하여 패키지를 제거 할 때 정리하지 않으려는 문제에 문제가됩니다. .

최근 컴퓨터의 속도가 훨씬 빨라졌으며 프리 링크 수율의 이점은 거의 눈에 띄지 않습니다.

프리 링크를 사용하는 것이 여전히 합리적 개념입니까, 아니면 일시적으로 버려져 과거의 것으로 남을 수 있습니까?

답변:


4

LWN.net에 가입하지 않으면 2009 년 7 월 23 일까지 읽을 수 없지만 http://lwn.net/Articles/341244/가 유용 할 수 있습니다 .


그런 다음이 기사에 "서 베이터 링크"를 제공 할 수 있습니다.
wazoox

5
나는 항상 가입자 링크를 사용하는 것에 대해 기분이 좋지 않습니다. 내가 찢어 버리는 것 같은 것.
David Pashley

2
동의한다. 흥미로운 기사를 접할 때 직접 연락처 (친구 또는 동료)에게 구독자 링크를 제공하는 것은 좋지 않지만 공개적으로 게시하는 것은 잘못된 것 같습니다.
Christopher Cashell

1

나는 그것이 임의로 폐기되어야한다고 말하지는 않지만, 사용이 조금 더 생각되어야한다고 분명히 말할 것입니다.

자주 업데이트되는 최신 고급 컴퓨터에서는 프리 링크가 유용한 최적화가 아닐 수 있습니다. 그러나 여전히 가치가있는 경우가 많이 있습니다. 예를 들어, 구형 또는 저가형 컴퓨터 또는 상당히 정적 인 컴퓨터에서 자주 변경하거나 업데이트하지 않는 컴퓨터. 높은 속도의 프로그램이 반복적으로 실행되는 경우에도 유용 할 수 있습니다 (프로그램이 빠른 연속으로 실행되거나 프리 링크가 성능을 향상시킬 수있는 병렬로 실행될 수있는 몇 가지 상황을 생각할 수 있습니다).

대체로 특정 상황을 고려한 다음 혜택이 추가 작업과 노력을 능가하는지 여부를 결정해야합니다.


1
"높은 속도의 프로그램이 반복적으로 실행되고 있습니다"-이 상황에 처하면 바이너리와 라이브러리가 파일 시스템 캐시에있게됩니다. 사전 연결이 도움이되는 유일한 시간은 메모리가 부족하여 사용 가능한 fs 캐시가 거의없는 경우입니다.
Daniel Lawson

2
사전 링크는 프로그램이 파일 시스템 캐시에 저장되어 있어도 프로그램 시작 속도를 높입니다. 물론, 프로그램 (및 관련 라이브러리)이 캐시 될 때 성능 향상이 눈에 띄지 않습니다. 그러나 실행중인 프로그램의 속도에 따라 몇 마이크로 초가 결국에는 차이를 만들 수 있습니다.
Christopher Cashell

1

프리 링크는 학교와 넷 카페에서 사용되는 LTSP 서버와 같은 다중 사용자 데스크탑 서버에서 확실히 유용하다고 말할 수 있습니다. 프리 링크는 응용 프로그램 로딩 속도를 높일뿐만 아니라 사용자 간 경합으로 인한 RAM 사용률 및 디스크 스 래싱을 향상시켜 서버에서 더 많은 동시 사용자를 허용합니다.


0

메모리 가격이 하락함에 따라 프리 링크는 유용하지 않다고 생각합니다. 여전히 약간의 속도를 높이려면 preload를 살펴보십시오 .


나는 사전로드를 시도했는데, 시작 시간을 느리게 하는 동안 두 코어를 모두 씹는 동안 판독 시간을 단축시키는 것을 발견했다 . 그리고 어떤 이유로 든 부팅 할 때 X가 죽게 만들 수 없습니다. 또한 자주 재부팅하지 않으면 사전로드가 전혀 유용하지 않습니다.
Kent Fredric

0

그 결정을 OS 버전으로 남겨 둡니다. 기본적으로 OS가 cron을 사용하여 정기적으로 프리 링크를 호출하도록 선택하면 괜찮습니다. 배포판 제작자들이 기본적으로 프리 링크 옵션을 추가 / 제거하기 전에 생각을하기를 바랍니다. 그래서 나는 스스로 일을 다시 분석하지 않고 그들과 함께갑니다.


즉, 실제로 기본값을 지정할 수는 없으며 설치해야 할 패키지이며 설치되지 않은 경우 사전 링크 된 항목을 얻지 못합니다. 설치되어 있으면 cron 스크립트를 만드는 경향이 있습니다. cron 스크립트는 기본적으로 꺼져 있으며 수동으로 활성화해야합니다.
Kent Fredric

fedora의 기본값은 기본적으로 꺼져 있지 않습니다. 그것은 19에 reniced하지만 해제되지 않습니다. Fedora 6 또는 7 이후로 동일합니다.
Saurabh Barjatiya

0

젠투는 프리 링크를 사용합니다. 해시를 계산할 때 사전 링크 정보를 무시하여 md5sum 문제를 해결합니다.

프리 링크는 하드웨어 속도가 빨라질수록 점점 눈에 띄지 않을 수 있지만 항상 속도 향상을 제공합니다. 하드웨어에서 확실하게 알 수있는 유일한 방법은 프리 링크를 끄고 앱 실행 속도 저하를 어떻게 좋아하는지 확인하는 것입니다.

주석 : OS X는 사전 링크 형식을 사용했지만 링크 자체가 유지하는 링크 된 캐시를 위해 포기되었습니다. 이진 변경 및 일반 연결에 비해 실제 오버 헤드가없는 두 가지 이점 중 최고입니다. 나는 리눅스가 어느 시점 에서이 아이디어를 선택하기를 바랍니다 :)

업데이트 : 나는 최근 리눅스에 prelinking 시도 , 많은 파일 및 프로세스와 cscope의의 컴파일 내가 5 %의 속도 향상을 얻었다.


1
그것은 정말로 ... 아직 설치하고 구성해야 할 것이 아닙니다 . 젠투를 사용 하고 있기 때문에 이것을 말합니다 . 프리 링크를 정확히 "끄기"할 수 없으며 프리 링크 실행을 중지하거나 전체 시스템을 연결 해제 할 수 있습니다. 또한, 나에게 알려지지 않은 어떤 이유로 paludis에는 미리 연결된 바이너리에 문제가 있으며 실행 취소 프리 링크 후크 (지원되지 않음)가 없으면 바이너리가 뒤에 남게되어 균열을 일으 킵니다. 최근에 나는 후크를 설치하기 전에 사실 때문에 남겨진 몇 가지 KDE 앱을 발견했으며 새로운 위치 이전에 다른 위치에 있었기 때문에 세그먼트가 발생했습니다.
Kent Fredric

링커 최적화 (-Wl, -O1)를 활성화하고 gnu-hash 할당의 새로운 변경 사항은 OSX가 이동 한 것과 더 유사하므로 더 효과적인 선택 일 수 있습니다.
Kent Fredric

젠투를 사용한 이후로 오랜 시간이 걸렸다는 것을 인정해야합니다 ... OS X :)로 넘어갔습니다. OS X에서 한 번 한 테스트를 기억합니다. 모든 응용 프로그램을 한 번에 시작하고 그 시간 (약 1 분 iirc)으로 시작하십시오. 그런 다음 모든 사전 링크 정보를 제거하고 모든 앱을 다시 시작하십시오. 그 시간은 5 분이 걸렸습니다 ... 2005 년에는 진짜 야수 인 탑 맥에서였습니다.
w00t

1
사전 연결 속도 향상이 눈에 띄지 않을 수 있다는 생각에 반하여, 프로그램이 런타임로드 가능한 라이브러리를 사용하는 데 급증함에 따라 더 중요해질 수 있습니다. 2009 년의 gvim은 55 개의 런타임 라이브러리를 사용했습니다. 2 년 전부터 73 년을 사용했습니다. 2009 년의 'mount'는 오늘의 7, 7, mount는 10을 사용하여 / usr / lib64에 4 개, / lib64에 6 개를 사용합니다. . HW가 빨라지면 SW는 부스트를 흡수하기 위해 더 복잡해집니다.
Astara

@astara는 사실이지만, 라이브러리 사용의 증가는 하드 디스크 및 메모리 속도의 증가만큼 빠르지 않습니다.
w00t
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.