재부팅 후에도 sysctl -A의 값이 /etc/sysctl.conf와 일치하지 않습니다.

재부팅 후에도 sysctl -A의 값이 /etc/sysctl.conf와 일치하지 않습니다.

/etc/sysctl.conf저는 Mac Monterey 12.1을 사용하고 있으며 파일의 공유 메모리 제한을 늘렸습니다.

kern.sysv.shmmax: 16777216
kern.sysv.shmmin: 1
kern.sysv.shmmni: 128
kern.sysv.shmseg: 512
kern.sysv.shmall: 4096
security.mac.posixshm_enforce: 1
security.mac.sysvshm_enforce: 1

컴퓨터를 다시 시작하고 종료합니다. 그런데 재부팅 후 다음을 실행하면 sysctl -A | grep shm파일과 다른 값이 표시됩니다 .

kern.sysv.shmall: 1024
kern.sysv.shmmax: 4194304
kern.sysv.shmmin: 1
kern.sysv.shmmni: 32
kern.sysv.shmseg: 8
security.mac.posixshm_enforce: 1
security.mac.sysvshm_enforce: 1

여전히 /etc/sysctl.conf변경 사항이 지속되는 것으로 표시됩니다.

즉, sysctl -A | grep shm이러한 값이 어디서 얻어지는지는 알 수 없습니다.

어디서 수정해야 하는지 아는 사람 있나요?

답변1

고마워하는알렉산더 덴킨나를 올바른 길로 인도해주세요.

fioOP에 따르면 벤치마킹과 비슷한 문제가 있었습니다.해결됨Alexander가 게시한 콘텐츠의 수정된 버전입니다.

다음은 다소 요약되고 맞춤화된 단계입니다.사용자 997112문제.

속도

  • SIP 비활성화
    • 애플의 면책 조항

      경고하다

      필요한 작업을 수행하기 위해 SIP를 일시적으로만 비활성화하고 가능한 한 빨리 다시 활성화하십시오. 테스트를 완료한 후 SIP를 다시 활성화하지 못하면 컴퓨터가 악성 코드에 취약해질 수 있습니다.

  • 만들다/Library/LaunchDaemons/com.startup.sysctl.plist
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <!-- DISABLE SIP TO USE: macOS Recovery > Utilities > Terminal > `csrutil disable` > Reboot -->
    <plist version="1.0">
        <dict>
            <key>Label</key>
            <string>com.startup.sysctl</string>
            <key>LaunchOnlyOnce</key>
            <true/>
            <key>StandardErrorPath</key>
                <string>/private/tmp/sysctl.err</string>
            <key>StandardOutPath</key>
                <string>/private/tmp/sysctl.out</string>
            <key>ProgramArguments</key>
            <array>
                <string>/usr/sbin/sysctl</string>
                <string>-w</string>
                <string>kern.sysv.shmmax=16777216</string>
                <string>kern.sysv.shmmin=1</string>
                <string>kern.sysv.shmmni=128</string>
                <string>kern.sysv.shmseg=512</string>
                <string>kern.sysv.shmall=4096</string>
            </array>
            <key>RunAtLoad</key>
            <true/>
        </dict>
    </plist>
    
  • 일부 관리 항목 후에 PLIST 로드
    # sanity check
    sysctl -a | grep shm
    
    # set permissions
    sudo chown root:wheel /Library/LaunchDaemons/com.startup.sysctl.plist
    
    # validate key-value pairs
    plutil /Library/LaunchDaemons/com.startup.sysctl.plist
    
    # load plist
    sudo launchctl bootstrap system /Library/LaunchDaemons/com.startup.sysctl.plist
    
    # check logs
    tail -f /tmp/sysctl.out
    tail -f /tmp/sysctl.err
    
    # recheck sysctl values
    sysctl -a | grep shm
    

원천

macos - 재시작 후에도 sysctl -A 값이 /etc/sysctl.conf와 일치하지 않습니다. - Think Tank 101 - CC copyright 기반 Q&A 공유 플랫폼

Catalina Apple 개발자 포럼에서 공유 메모리 설정 |

c++ - 공유 메모리 "열린 파일이 너무 많습니다"이지만 ipcs에 많은 할당이 표시되지 않습니다.

kernel - macOS Big Sur에서 열린 파일의 최대 수를 늘리는 방법은 무엇입니까? - 루트

튜토리얼 시작

답변2

  1. 파일 다운로드.plist https://anonfiles.com/3eGaR6kfya/com.startup.sysctl_plist
  2. 다운로드한 파일을 다음으로 이동하세요./Library/LaunchDaemons/com.startup.sysctl.plist
  3. 터미널을 시작하고 두 개의 명령을 순서대로 작성합니다. 먼저 " sudo chown root:wheel /Library/LaunchDaemons/com.startup.sysctl.plist", 그 다음 " sudo launchctl load -w /Library/LaunchDaemons/com.startup.sysctl.plist"
  4. 시스템을 다시 시작하십시오.

관련 정보