리눅스

본문

image

그리고 가장 유명한 네이티브 문제 중 하나는 특히 리눅스에서 발생합니다.
우리는 또한 리눅스에서 실행되는 웹 스피어 응용 프로그램 서버에 대한”너무 많은 열린 파일”오류로 인해 많은 수의 파일을 수신합니다.
간단한 문제 해결 및 명령 튜닝을 통해 이러한 문제를 쉽게 해결할 수 있습니다.

1)리눅스에서 울리미트는 무엇인가?프로세스 데이터 크기,프로세스 가상 메모리 및 프로세스 파일 크기,프로세스 수 등과 같은 시스템의 사용자 리소스 제한을 제어 할 수 있습니다.

2)이 명령의 설정이 제대로 설정되지 않은 경우 어떻게됩니까?
네이티브 아웃 메모리,너무 많은 열린 파일 오류,덤프 파일이 완전히 생성되지 않는 등 다양한 문제가 발생합니다.

3)현재 설정을 어떻게 확인할 수 있습니까?
현재 설정을 확인하는 방법에는 여러 가지가 있습니다:

에이)명령 프롬프트에서,문제
$울리 미트-
우리는 아래와 같은 비슷한 출력을 볼 수 있습니다.파일 크기(블록,-에프)무제한
파일 크기(블록,-에프)무제한
보류 신호(-나는)32767
최대 잠금 메모리(킬로바이트,-엘)32
최대 메모리 크기(킬로바이트,-엠)무제한
파일 열기(킬로바이트,-엠)가상 메모리는 가상 메모리의 크기(초)를 제한하지 않고 최대 사용자 프로세스(-유)50
가상 메모리(킬로바이트)50
가상 메모리(킬로바이트)50
가상 메모리(킬로바이트)50
가상 메모리(킬로바이트)50
가상 메모리(킬로바이트)50
가상 메모리(킬로바이트)50
가상 메모리(킬로바이트)50
가상 메모리(킬로바이트)50
가상 메모리(킬로바이트)50
가상 메모리(킬로바이트)50
파일 잠금은 다음과 같이 표시됩니다. 현재 로그인 세션 및 기본적으로 소프트 제한에 대해 설정된 모든 현재 설정이 표시됩니다. 제한 소프트 및 하드 수 있습니다.
하드 제한은 구성할 수 있는 최대 제한입니다. 루트 사용자 만 하드 제한을 늘릴 수 있지만 다른 사용자는 하드 제한을 줄일 수 있습니다. 소프트 제한은 다른 사용자가 설정하고 변경할 수 있지만 하드 제한을 초과 할 수는 없습니다.
특정 한계 값을 찾으려면 현재 소프트 한계 값에 대해
를 발행하십시오.현재 하드 한계 값에 대한
울리 미트 하
.또한 다음 파일도 검사할 수 있습니다.
위치는/proc/<PID>
파일이:제한이 파일의 내용을 출력과 비슷한의”ulimit-a”command.
이 파일에는 지정된 피드에 대한 울리미트 매개변수 및 관련 값의 목록이 있습니다.이 자바코어는 텍스트 편집기(메모장++,울트라 편집 등)에서 열 수 있습니다.(1804>와 울리 미트를 검색하고 당신에게 울리 미트 섹션을 취할 것입니다.
자바 코어에서 볼 수 있듯이 울리 미트 설정의 예.
사용자 제한)
————————————————————–
1024 무제한
제한 데이터 무제한
제한 크기 무제한
제한 잠금 무제한
제한 잠금 무제한
제한 잠금 무제한
제한 잠금 무제한
제한 잠금 무제한
33554432 전역 설정을 찾으려면 제한 없는
를 선택합니다., 리눅스에서 아래 파일을 검사하십시오.
/기타/보안/제한.콘프
이러한 전역 구성 제한 파일에 대한 변경 사항은 시스템 관리자가 수행해야 합니다.

4)설정 부족으로 인해 어떤 네이티브가 예상되는가?
“스레드를 만들지 못했습니다”가 있는 메모리 부족 덤프 이벤트가 발생합니다.
예: 아래 메시지는 자바 코어에 나타납니다.1804>받은 오류 없음 12 는 시작 스레드에서 실제 기본 옴입니다.
때때로,또한 시스템 아웃과 같은 서버 로그에서 볼 수있는 스레드를 생성하지 못했습니다.로그,시스템러.로그 등 이 오류는 새 스레드를 만드는 동안 기본 메모리가 발생했음을 나타냅니다.

5)이 오류가 발생하는 이유는 무엇입니까?
그 이유는 현재의 유미트 값이 너무 낮기 때문이다.
일반적으로 서버의 프로세스만 계산하여 이 수를 결정합니다. 웹 스피어 응용 프로그램 서버를 실행하는 리눅스 시스템은 특별한 경우입니다. 모든 프로세스에서 특정 사용자에 대해 존재할 수 있는 스레드 수를 계산합니다. 리눅스의 이전 버전의 대부분의 경우,이 값은 약 2048 기본값됩니다. 기본값은 1024 로 설정됩니다.
대규모 시스템에 대한 이 낮은 기본 설정은 모든 프로세스에서 충분한 스레드를 허용하지 않습니다.

6)이 문제를 해결하는 방법?이 경우,해당 프로세스에서 생성될 수 있는 모든 포크된 스레드를 안전하게 처리하기 위해 리눅스에서 실행될 때 131072 의 값으로 설정하는 것이 좋습니다.
소프트 제한 값을 설정하는
를 설정하여 현재 세션에 대해 일시적으로 늘릴 수 있습니다.
소프트 제한과 하드 제한을 모두 설정하려면 소프트 제한에 대해
울리밋수 131072 를 실행합니다.
울리 미트-후 131072 하드 제한에 대한.
를 전역으로 설정하려면 리눅스 시스템 관리자가
/등/보안/제한을 편집해야합니다.7)”너무 많은 열린 파일”오류는 어떻습니까?
이 오류는 프로세스에 사용 가능한 모든 파일 핸들이 사용되었음을 나타냅니다(소켓도 포함).
예:아래와 유사한 오류가 서버 로그를 볼 수 있습니다.
유닉스 오류 코드 24.

8)이 오류가 발생하는 이유는 무엇입니까?
현재 열린 파일 수 제한이 너무 낮거나 응용 프로그램의 일부에서 파일 핸들이 유출 된 결과 인 경우 발생할 수 있습니다.

9)이 문제를 해결하는 방법?하드 제한에 대해 65536 으로 설정하는 것이 좋습니다.10)응용 프로그램에 파일 설명자 누수가 있는 경우 어떻게 해야 합니까?
리눅스에서,우리는 어떤 특정한 열린 파일들이 일정 기간 동안 늘어나고 있는지를 알 수 있다.
>>>>>>>출력
는 지정된 피드에 대해 열려 있는 모든 파일을 제공합니다. 어떤 파일이 열려 있고 어떤 파일이 시간이 지남에 따라 증가하는지 확인할 수 있습니다.
또는 파일 설명자의 내용을 다음 디렉터리의 심볼릭 링크 목록으로 나열할 수 있습니다. 관련 기술 참고:너무 많은 열린 파일 오류 메시지

11)조정해야 할 다른 것이 있습니까?
리눅스에서 조정할 수 있는 설정이 하나 더 있습니다. 큰 환경을 사용하지 않는 경우 이 단계를 건너뛸 수 있습니다.
시스템에서 지원하는 고유 프로세스 식별자의 최대 개수에 대한 내부 제한 설정입니다.
기본값은 32,768 이며 대부분의 고객에게 충분합니다.
프로세스 수가 많은 대규모 환경에서는 이 제한에 도달할 수 있는 가능성이 있으며
네이티브 아웃메모리는
자바 코어에서 비슷한 메시지와 함께 스레드 생성 실패 오류 없음 11.
예:
덤프 이벤트(00040000)세부 정보”자바/랭/메모리 오류”
“스레드를 만들지 못했습니다.1804>이 문제를 해결하는 데 도움이 될 수 있습니다.때로는 기본 스레드 누수로 인해 기본 32,768 에 도달 할 수 있습니다. 이 경우 기본 스레드를 해결하려면 이 스레드 풀 누수를 수정해야 합니다.”너무 많은 파일 열기 오류”및”네이티브 메모리 부족”문제를 방지하기 위해 아래 설정을 리눅스에서 사용해야 합니다.1804>소프트 제한 하드 제한
소프트 제한 하드 제한 65536 65536
131072 131072

12) 확인 할 다른 것이 있습니까?이 설정은 지금까지 논의한 설정이 포함되어 있습니다.1804>유형 소프트 제한 하드 제한
무제한 제한
무제한 제한
무제한 제한
무제한 제한
무제한 제한
크기 제한 무제한
무제한 잠금 무제한
65536 65536
65536
65536
131072 131072

13) 다음은 무엇입니까?
모든 웹스피어 애플리케이션 서버,노드 에이전트 및 앱서버와 같은 모든 웹스피어 애플리케이션 서버에 대해 위에서 설명한 설정을 가지고 있는지 확인하고,설정이 전역적으로 수행된 경우 웹스피어 애플리케이션 서버를 다시 시작하거나,현재 세션(셸)에서 변경이 수행된 경우 동일한 사용자로 로그오프한 후 다시 로그인하십시오.

답글 남기기

이메일 주소는 공개되지 않습니다.