카테고리 Archives: hardware

2.4Ghz 대역의 블루투스 및 wifi 와 USB3 간섭

USB 는 Universal Serial Bus 이고 일상적으로 쓰는 규격이다.

버전에 따라 최대 대역폭이 달라지는 것은 파동 간격을  줄여 같은 시간에 좀더 많은 데이터 전송을 가능하게 한다.

frequencies

위는 느린 USB 2.0 의 신호 형식(60MB/sec) 아래는 USB 3.0 의 신호 형식(625MB/sec)으로 이해 하면 되겠다.

모든 전자기기는 작동시 전자파를 발생시키는데 USB 3.0 에서 생성하는 전자파가 현재 주로 많이 쓰는

2.4Ghz (블루투스, WIFI) 에 간섭이 이루어 진다. 주로 신호 간섭 때문에 렉 혹은 튀는 증상이다.

 

실험 관련 문서: https://www.intel.com/content/www/us/en/products/docs/io/universal-serial-bus/usb3-frequency-interference-paper.html

 

문서 내용을 종합 하면

2020-10-20_164245

이 그림은 일반적인 사용 환경과 비슷하다. (CASE 1)

보통 usb 2 or 3 가 혼재 되어 있고 그림과 같이 쓰게 되는데

마우스가 2ft (약 70Cm) 이상 멀어지면 렉이 발생한다고 한다.

2020-10-20_164622

CASE 2 의 경우에는 usb 2.0 허브를 이용하여 USB3 포트에서 멀리 떨어트려 사용하는 것을 테스트 한

내용인듯 하여 2ft ~ 5ft (70Cm~180Cm) 까지 정상 사용이 가능했다고 한다 ‘ㅅ’a

 

CASE 3의 경우에는 usb 2 및 3 포트가 위아래로 바로 붙어 있는 형태

(가끔 메인보드에서 본적 있다.) 에서는 2ft ~ 5ft (70Cm~180Cm) 모두 사용 불가.

 

결론.

  1. wifi 및 블루투스 동글 등은 usb 2.0 허브를 이용해 usb3 에서 2ft 가까이 떨어트려서 사용한다.
  2. 인터넷 공유기에 포함된 USB 3.0 은 사용하지 말아야 한다.
  3. USB의 상위 버전은 하위 버전을 연결 할경우 하위 프리퀀시로도 동작이 가능하기 때문에 3.0 포트에 USB 2.0 장치 혹은 허브를 연결해도 된다.
  4. USB 3.0 과 USB 3.1 gen1 과 USB 3.2 gen1 은 단순 리브랜딩 이기 때문에 같은 문제가 있을것으로 판단 된다. (기술적으로 usb 2.0과 usb 3.x gen2 는 좋다 ‘ㅅ’a
  5. USB 3.0 허브를 사용하는 방법은 연결 부위 두곳 모두에서 발생하기 때문에 무선 충돌 해결에 1도 도움이 되지 않는다.
  6. 어쩔수 없는 경우에는 금속 쉴딩으로 어느정도는 해결이 가능하다. (물론 절연처리 된 금속 쉴딩)

 

PS. 쉴딩 처리 영역에 따른 전파 생성 그래프 ‘ㅅ’a (개인이 EMI 테이프 를 구하는것도 쉽지 않을듯.)

2020-10-20_170258

  1. 외장 하드 기판에 쉴딩
  2. USB 커넥터 부위에만 쉴딩
  3. USB 커넥터 및 커넥터 주위 기판까지 쉴딩
  4. 외장 하드 전체 쉴딩 (알루미늄 or 구리 EMI 필터)

 

smartctl을 이용한 디스크이상 사전 탐지

smartctl 명령어는 하드디스크 롬에 기록되는 형태이다. 때문에 I/O 에러 발생때문에 write가 잠겨
/var/log/messages 상에 찍히지 않는 I/O에러를 검출하는 목적으로 사용할 수 있다.

CentOS 5/6 은 이미 탑재되어 있는 명령어 이지만 Centos 7의 경우 아래와 같이 명령어 추가를 한다.

 

명령어는 작동시간, 부팅횟수, 헤더, 온도, 배드카운터, CRC 에러등등 하드디스크의 모든 종합 정보를 볼수 있다.
클라우드 – 가상디스크는 지원하지 않는다.
일반디스크인데 정보 표기다 되지 않을경우 아래 명령어서 on  시켜줘야 할 수 있다.

 

1. 아래 명령어는 SMART 속성 정보만 표기 한다.

주요 해서 봐야 하는 부분은 아래와 같다.
HEAD spindle error   //   Spin_Retry_Count  (매우 높음) = 헤드가 재 작동을 시도한 횟수.
BAD sector  //   Offline_Uncorrectable  (높음) = 읽기/쓰기에 문제가 발생한 섹터 = 배드 섹터 발생
아래는 약간은 중요도가 떨어지지만 주요해서 봐야 한다.
UDMA_CRC_Error_Count   (낮음) = HDD인터페이스 전송 CRC 오류 (sata 케이블 오류의심)

위 에러중 HEAD 관련 카운트가 1개라도 나온경우 스핀들모터 혹은 리드헤드 쪽에 문제가 발생한것이다.
이는 즉시 데이터 백업 및 디스크 교체를 진행한다.

 

2. 누적된 에러 로그를 호출한다. ‘ㅅ’a

정상일경우 아무런 메세지도 표시되지 않는다. 메세지가 출력되는 경우 아래 상세 테스트를 진행한다.

 

 

3. 상세한 테스트를 한다. ( short 1~2분 소요 / long = 약 두시간 가량 소요 )

백그라운드 테스트가 진행되며 테스트간 off-line 모드가 되고 테스팅 시간은 약 108분 걸린다고 되어 있다.
smartctl -X 명령어로 long 테스트를 중지할 수 있다.

Status 값에 failure 가 떨어질경우 백업 및 디스크 교체를 한다.

Linux IO 튜닝

파일을 읽을때 리눅스는 access 타임을 write 를 한다.

때문에 파일을 읽을때 단순히 read 가 하는게 아니라 일부 write를 하고 read 를 한다.

아래와 같이 stat 명령어로 파일의 자세한 정보를 보면 확인할 수 있다.

 

이 access write 기능을 끔으로서 read 성능을 대폭으로 끌어올릴 수 있다. (약 2.5배 에서 3배)

바로 nodiratime 과 noatime 옵션 이다.

 

/etc/fstab 에서 아래와 같이 수정을 한다.

/etc/fstab 에 입력된 정보로 재부팅 하지 않고 적용하는 명령어는 다음과 같다.

 

dicard 옵션(저널링 off)는 이 게시물에서 설명.
http://www.enteroa.com/2014/09/24/Linux-에서-TRIM-활성화/

 

임의 마운트 시에는 아래와 같은 명령어로 마운트 한다.