macOS에서 serverperfmode = 1은 실제로 무엇을합니까?


19

켜는 방법은 여기 에 설명되어 있지만 자세한 내용은 없습니다.

모호한 설명이 있습니다.

성능 모드는 Mac의 시스템 매개 변수를 변경합니다. 이러한 변경 사항은 까다로운 서버 응용 프로그램에 하드웨어를 더 잘 활용합니다.

실제로 시스템 / 커널 내부에서 무엇이 바뀌고 있습니까?

답변:


11

서버 성능 모드를 설정하면 가능한 최대 / 허용 프로세스 및 연결 수와 관련된 일부 커널 / 넷 매개 변수가 증가하고 일부 메모리 / 타이머 설정이 수정됩니다.

...
kern.maxvnodes: 66560 > 300000
kern.maxproc: 1064 > 5000
...
kern.maxfilesperproc: 10240 > 150000
kern.maxprocperuid: 709 > 3750
kern.ipc.maxsockbuf: 4194304 > 8388608
...
kern.ipc.somaxconn: 128 > 1024
...
kern.ipc.nmbclusters: 32768 > 65536
...
kern.ipc.sbmb_cnt_peak: 1120 > 1170
...
kern.ipc.njcl: 10920 > 21840
...
kern.timer.longterm.qlen: 100 > 0
kern.timer.longterm.threshold: 1000 > 0
...
net.inet.ip.maxfragpackets: 1024 > 2048
...
net.inet.tcp.tcbhashsize: 4096 > 8192
...
net.inet.tcp.fastopen_backlog: 10 > 200
...
net.inet6.ip6.maxfragpackets: 1024 > 2048
...
net.inet6.ip6.maxfrags: 2048 > 4096
#and some very special vm page-outs/compressor and and memory/cache settings

목표는 더 많은 열린 파일 (특히 웹 서버에 필요)과 연결이 동시에 더 많은 클라이언트에 서비스를 제공하고 메모리 / 가상 메모리에서 단일 서버 스레드를 더 빨리 버리는 것입니다 (특정 수정 사항을 올바르게 해석하는 경우).


과거에 Apple은 다른 OS를 출시했으며 이제는 소비자 OS 위에 서버를로드하는 몇 가지 기본 튜닝을 통해 운영 체제를 사용하여 한 사람에 맞게 조정되는 대신 서버에 연결하는 25 명의 사용자가 운영 체제에서 프로세스를 실행할 수 있습니다. 이러한 튜닝은 시작점 일뿐입니다. 서버가 높은 부하에서 수행되기를 원하는 사람은 성능 모드를 켜거나 끄는 것보다 훨씬 더 세부적인 수준으로 작업을 사용자 지정하고 모니터링해야합니다.

또한 이러한 제한은 주로 프로세스 간 통신 신호 채널 (ipc)과 같은 제한된 리소스를 소모하여 나쁜 소프트웨어가 서버를 중단시키는 것을 방지하기위한 것입니다. 한 명의 사용자가 실행중인 시스템에서 수십 명의 사용자에 대해 수십 개의 프로세스가 실행되는 경우보다 더 빨리 런 어웨이 프로세스를 중지하려고합니다. "성능"은 "하나의 파일 또는 하나의 웹 페이지를 더 빨리 제공"하는 것과는 반대로 약간의 제한을 높이는 것으로 볼 수 있습니다.


1100 개가 넘는 특정 항목이보고되었으므로 sysctl -a서버 조정 또는 커널 매개 변수 수정을 처음 사용하는 경우 가장 먼저 볼 수있는 사항을 요약 한 것입니다. 다른 사람들을 도울 수 있도록 답변에 "의견"을 추가하겠습니다. 표현 된 의견이 귀하의 의견이 아닌 경우 편집 한 내용을 되 돌리십시오.
bmike

이것은 맥북 프로에서도 작동합니까?
Tadej

1
@JedatKinports 이것은 MacBook에도 적용됩니다. 예
klanomath

그리고이 "#very special"설정은 무엇입니까? 또한 : 비 Syctl 설정도 변경되었다고 생각합니다. 권한이 강화되었습니다. 이전 버전의 독립형 OS X Server에서 다른 '사물'도 동일합니까?
LangLangC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.