크기 제한을 결정하거나 설정하는 방법은 무엇입니까 /etc/hosts
? 몇 줄까지 가능합니까?
답변1
의심스러운 효과에는 느린 호스트 이름 확인(OS가 어떻게든 선형 목록을 검색 속도가 더 빠른 구조로 변환하지 않는 한)과 tab의미 있는 파일 크기에 도달하기 전에 쉘 완료와의 놀라운 상호 작용 가능성이 포함됩니다.
예를 들어! 500,000개의 호스트 항목을/etc/hosts
# perl -E 'for (1..500000) { say "127.0.0.10 $_.science" }' >> /etc/hosts
과학적인 측면에서 볼 때 tabZSH의 기본 호스트 이름 완성은 내 시스템에서 완료 프롬프트를 반환하는 데 약 25초가 걸립니다(물론 이는 5400RPM 디스크가 장착된 2009년 노트북에서 발생하지만 여전히 그렇습니다).
답변2
행 수 측면에서 크기 제한이 없다고 생각합니다.
1985년에 사용되기 시작한 DNS 이전에는 이 파일이 호스트 이름 조회를 수행하는 유일한 수단이었습니다. 따라서 이 파일은 가장 잘 연결된 호스트 이름도 지원할 수 있는 수천 또는 최소한 수백 개의 항목을 포함할 수 있어야 함을 의미한다고 가정합니다. 1985년 노드 이전의 인터넷.
다음은 1985년의 예입니다(형식 변경).http://jim.rees.org/apollo-archive/hosts.txt 파일에는 1680개의 라인이 있으며 그 중 1325개가 호스트 라인입니다. 나머지 355줄은 공백, 주석, 네트워크 또는 게이트웨이 1 입니다 .
내가 찾을 수 있는 유일한 실제 제한은 일부 시스템에서는 개인이철사제한은 문자(내 OpenBSD 컴퓨터에서는 1024자) 미만입니다 BUFSIZ
.
에 여러 항목이 있는 경우 /etc/hosts
로컬 네임서버 설정을 고려해야 하지만 이는 내 개인적인 의견입니다.
1이 문제를 조사해 주신 Jeff Schaller에게 감사드립니다 .
답변3
/etc/hosts의 크기 제한을 어떻게 결정합니까?
이는 일반 파일이므로 제한은 기본 파일 시스템의 제한(그 자체는 뒤에 있는 디스크 수에 의해 제한됨)에 해당하며 동일한(루트( ) 가능 ) 파일 시스템 /
의 다른 파일이 사용하는 공간을 뺀 값입니다.
- ext2/3: 2TiB
- ext4: 16TiB(기본 4KiB 블록 크기)
- xfs: 500TiB
/etc/hosts의 크기 제한을 설정하는 방법은 무엇입니까?
수동으로 편집한 파일이므로 수동으로만 수행할 수 있습니다.
sed -i '100,$d' /etc/hosts
(100행 이상은 삭제하세요)
답변4
...나는 머리를 쥐어뜯었고 평생 동안 어떤 종류의 크기 제한 문제를 해결할 수 있는 단일 상황이나 상황을 생각할 수 없습니다. /etc/hosts
심각한 syscall 제품군의 성능이 타격을 받는 것과 같은 실제 문제가 있을 것입니다. 그 영향은 getaddrinfo()
모든 시스템 호출이 DNS 쿼리를 보낼지 여부를 결정하기 전에 파일을 참조해야 한다는 것입니다. 이러한 큰 일반 텍스트 파일을 유지 관리하는 문제는 말할 것도 없습니다.
우리는 더 높은 수준에서 소통할 수 없는 상황에 처해 있는 것 같습니다. 대용량 파일로 /etc/hosts
어떤 문제를 해결하려고 하시나요 ? 나는 이것보다 더 나은 해결책이 있다고 거의 확신합니다.