내 애플리케이션을 벤치마킹하고 싶습니다. 지금까지는 gnu time을 사용하고 있지만 perf는 더 나은 통계를 생성합니다.
원칙적으로 저는 특정 위험을 인지해서가 아니라 보안에 미치는 영향을 이해하지 못하기 때문에 모든 사용자가 일부 보안 관련 작업을 수행하도록 허용하기보다는 전용 성능 사용자 경로를 가고 싶습니다. 그러므로 문제의 성능을 저하시키는 편집증적인 설정은 피하고 싶습니다.이 질문에는.
읽다kernel.org의 성능 보안(문서에는 이것이 Linux 5.9 이상에서 작동해야 한다고 암시하는 것 같습니다.) 저는 다음과 같이 했습니다.
# addgroup perf_users
# adduser perfer
# addgroup perfer perf_users
# cd /usr/bin
# chgrp perf_users perf
# chmod o-rwx perf
# setcap "cap_perfmon,cap_sys_ptrace,cap_syslog=ep" perf
# setcap -v "cap_perfmon,cap_sys_ptrace,cap_syslog=ep" perf
반품 perf: ok
.
# getcap perf
반품
perf cap_sys_ptrace,cap_syslog,cap_perfmon=ep
.
받은 링크와 다릅니다.
perf = cap_sys_ptrace,cap_syslog,cap_perfmon+ep
내 리눅스는5.10.0-5-amd64 #1 SMP Debian 5.10.24-1
perf
지금 사용자와 함께 실행 하면 perfer
여전히 오류 메시지가 나타납니다.
Error:
Access to performance monitoring and observability operations is limited.
Consider adjusting /proc/sys/kernel/perf_event_paranoid setting to open
access to performance monitoring and observability operations for processes
without CAP_PERFMON, CAP_SYS_PTRACE or CAP_SYS_ADMIN Linux capability.
More information can be found at 'Perf events and tool security' document:
https://www.kernel.org/doc/html/latest/admin-guide/perf-security.html
perf_event_paranoid setting is 3:
-1: Allow use of (almost) all events by all users
Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK
>= 0: Disallow raw and ftrace function tracepoint access
>= 1: Disallow CPU event access
>= 2: Disallow kernel profiling
To make the adjusted perf_event_paranoid setting permanent preserve it
in /etc/sysctl.conf (e.g. kernel.perf_event_paranoid = <setting>)
위의 모든 방법을 사용하여 이를 우회하려고 했습니다.
편집증 설정을 낮추지 않고 성능을 실행하는 방법을 아는 사람이 있습니까?
답변1
이를 수행하는 표준 방법에는 다음이 포함되지만 이에 국한되지는 않습니다.
visudo를 사용하여 특정 명령을 실행하기 위해 사용자 또는 그룹을 추가합니다. https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file
chmod를 사용하여 SUID 또는 GUID 고정 비트 설정 https://www.redhat.com/sysadmin/suid-sgid-sticky-bit