질문:Ubuntu에서 터미널에 입력하면 입력한 문자가 나타날 때까지 몇 초가 걸립니다.
저는 대량의 데이터를 /etc/fstab
자동 마운트된 다른 LUKS 암호화 드라이브로 옮긴 후에 처음으로 이 사실을 발견했습니다. 터미널에 입력하면(저는 기본 bash를 사용하고 있습니다) 응답 속도가 매우 느립니다. 처음에는 여분의 하드에 문제가 있는 줄 알았는데 새 SSD에 Ubuntu를 다시 설치하니 문제가 다시 발생했는데 하드가 전혀 설치되어 있지 않았습니다. 다른 운영 체제에는 문제가 없으므로 하드웨어 문제는 아닌 것 같습니다(Samsung 990 Pro의 이중 부팅).
세부 사항:
- Ubuntu 22.04.4 LTS 새로 설치, Samsung 870 QVO 4TB Sata 6Gb/s에서 LUKS를 사용한 전체 디스크 암호화
- Samsung 990 Pro 4TB M.2 vMVE(암호화되지 않은 2TB 파티션)에서도 재현 가능
- 4x8GB RAM @2133MT/s, 최소 15GB의 여유 공간.
- CPU: i7-6700K, 8개 코어 모두 < 10% 사용량
난 노력 했어:
fs.inotify.max_user_watches
기본값인 65536과 높은 값인 1048576 사이의 값으로 설정하세요 .- 여러 번의 재부팅
- 배쉬 기록 지우기
- 모든 장치 제거
- FS 속도를 저하시킬 수 있는 모든 프로그램(예: PhpStorm, GitKraken)을 닫습니다.
내가 확인한 내용은 다음과 같습니다.
/var/log/dmesg
/var/log/syslog
/var/log/kern.log
느린 처리를 디버깅하는 방법을 발견하고 사용했습니다 strace -T -f -s9999 -p6673
. 위쪽 화살표를 두 번 눌렀을 때의 출력은 다음과 같습니다.
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <1.867761>
read(0, "\33", 1) = 1 <0.000091>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.000008>
read(0, "[", 1) = 1 <0.000007>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.000007>
read(0, "A", 1) = 1 <0.000007>
write(2, "echo $$", 7) = 7 <0.000009>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.660089>
read(0, "\33", 1) = 1 <0.000024>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.000062>
read(0, "[", 1) = 1 <0.000040>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.000007>
read(0, "A", 1) = 1 <0.000007>
write(2, "\10\10\10\10\10\10\10cat /proc/sys/fs/inotify/max_user_watches", 48) = 48 <0.000008>
나를 혼란스럽게 하는 것은첫 번째 pselect6
호출, 실행 시간이 1초를 초과합니다.. 이것이 확실히 범인이지만 여기에서 문제를 디버깅하는 방법을 모르겠습니다.
공백만 입력하는 또 다른 strace는 다음과 같습니다.
strace: Process 6673 attached
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <2.216155>
read(0, " ", 1) = 1 <0.000015>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000075>
write(2, " ", 1) = 1 <0.000042>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.923598>
read(0, " ", 1) = 1 <0.000017>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000011>
write(2, " ", 1) = 1 <0.000012>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <1.504578>
read(0, " ", 1) = 1 <0.000016>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000012>
write(2, " ", 1) = 1 <0.000008>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <1.783754>
read(0, " ", 1) = 1 <0.000016>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000013>
write(2, " ", 1) = 1 <0.000009>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <1.664852>
read(0, " ", 1) = 1 <0.000015>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000078>
write(2, " ", 1) = 1 <0.000009>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}strace: Process 6673 detached
<detached ...>
때로는 pselect6
2.2초 정도로 느리기도 하고 때로는 빠르기도 합니다.
답변1
@muru가 지적했듯이 askubuntu에는 중복이 있습니다.https://askubuntu.com/questions/1509058/input-delay-on-terminal-ubuntu-22-04-4
xserver-common xserver-xephyr xserver-xorg-legacy xserver-xorg-core xwayland
문제가 해결되지 않았으나 4월 10일 출시된 패키지를 업그레이드하여 개선되었습니다. apt update && apt upgrade
이 패키지에서는 이 버그와 관련된 내용이 수정된 것 같습니다. 하지만 문제가 완전히 해결되지는 않았습니다
Mutter를 개발 버전으로 업그레이드할 것을 제안하는 답변을 테스트했습니다.https://askubuntu.com/a/1509474/1341824 이로 인해 문제가 해결되었으며 PhpStorm에서 깜박임과 같은 시각적 버그도 제거되었습니다.