ssh (sftp) 속도 저하 이슈.

ssh 또는 sshd 의 내장된 sftp 를 이용하여 파일을 업로드 할때 가끔 속도가 저하되는 이슈가 있다 ‘ㅅ’a

sftp의 경우 데이터를 암호화 해서 통신을 하기 때문에 cpu와 네트워크(1Gbps)가 좋다면 일반적으로 20Mbps ~ 60Mbps 정도로 측정이 된다.

 

다만 resolve 가 정상적이지 않을때 속도 저하가 발생할 수 있는데 이때 sshd_config를 수정해서 DNS 확인을 하는 옵션을 꺼둠으로서 속도 저하를 예방할 수 있다.

일반적으로 CentOS 에서는 아래와 같은 설정 값을 가진다.

 

이를 수정을 해주고 sshd를 재 시작 한다.

상태 active (running) 을 확인 한뒤에 추가적으로 ssh 접속을 시도해 본다. (sshd 설정을 건들 경우에는 새로운 접속이 가능한지 확인해보는것이 좋다.)

 


 

ubuntu의 경우에는 기본 설정 값이 틀리기 때문에(주석으로 막혀있는 구조) 아래의 명령어를 사용한다.

 

 

CentOS 8 종료에 따라…

CentOS 8 의 CentOS Stream 전환의 시기가 얼마 남지 않았다. (2021년 12월 31일 까지…)

 

기존의 CentOS 와 같이 RHEL 을 복제한 OS 는 다음과 같다.

Rocky Linux (https://rockylinux.org)

Oracle Linux (https://www.oracle.com/kr/linux/)

Alma Linux (https://almalinux.org/)

Navy Linux (https://navylinux.org/)

 

네이비 리눅스의 경우 업데이트 적용이 늦는듯 하고(업데이트 지원이 늦어질수도??)

오라클 리눅스는 Mysql -> MariaDB 사태를 본 사람으로서 선택하기 어렵다.

 

아무래도 기존에 CentOS 개발자로 참여(Gregory Kurtzer) 했던 Rocky Linux 을 선택 하는게 좋을거 같지 싶다 ‘ ‘a

Rocky 리눅스의 경우에는 AWS, Azure, GCP 에서 OS 이미지로도 선택(물론 소프트웨어 요금 없이)이 가능하다.

 

 

윈도우 11 출시 ‘ㅅ’a

윈도우 11이 오늘 출시가 되어서 사용중인 mini PC 가 윈도우가 업데이트가 가능한지 확인 해보았다.

케이스/메인보드 Asrock DeskMini X300 SeriesRyzen 3 Pro 4350G 조합이다 ‘ㅅ’a

 

2021-10-05_162507

TPM 2.0 이 없다고 메세지를 띄우고, 공식 Asrock 사이트에서도 TPM 2.0을 지원한다는 내용이 없어서 바이오스를 뒤적뒤적 하다보니

“Advenced” -> “CPU Configuration” > 가장 아래에 “AMD fTPM switch” 설정을 Disable -> Enable 으로 바꾸어 주고 Save & Reboot 를

하고 다시 PC 상태 검사를 진행함.

 

2021-10-05_183635

위와 같이 정상 설치가 가능한 것으로 확인이 되었다.

 

다만 아직 윈도우 11 업그레이드는 무서워서 못하는중…. (호환호환)

springboot 의 systemd 설정 및 rsyslog 설정

스프링부트로 작성이 된 프로그램을 systemd 를 이용한 데모나이즈를 위해 아래와 같이 생성 한다. (가장 기본적인 부분..)

 

위와 같이 설정 파일을 생성 한뒤에 아래와 같은 명령어로 실행 할 수 있다.

 

위와 같이 실행을 할 경우 발생하는 로그는 CentOS 7 기준 /var/log/messages 파일에 누적이 된다.

가만히 두면 messages 파일이 엄청 커지거나 섞여 있어서 로그 확인에 에로 사항이 발생하게 된다.

때문에 다음 와 같이 /etc/rsyslog.d/30-springboot.conf 파일을 생성 하여 분리 하도록 한다.

 

rsyslog 를 재시작 한다.


PS1. 로그 순환 설정

 

rsyslog 에서 생성하는 별도의 파일을 새롭게 선언 되었기 때문에 logrotate 가 안되면 파일이 무한 증식 하게 되므로 아래와 같이 순환 설정을 하여

1달동안 보관 되고 삭제 되도록 설정 한다. (생성만 해두면 다음 주기에 적용됨..재시작할 필요는 없음.)


PS2. 프로그램 배포계정에 특정 데몬의 콘트롤 권한만 부여(sudo 이용) 하는 방법.

 

배포계정에 systemctl 을 이용 하여 특정 데몬을 콘트롤 할수 있는 권한을 부여 한다.

 

배포 계정은 아래와 같이 부여된 명령어를 root 와 같은 권한으로 실행이 가능 하다.

 

GEOIP database 파일 업데이트

그렇다. 또 바뀌었다 ‘ㅅ’….

 

GeoIP database 파일을 다운 받는데 링크 주소가 변경 되었다

맥스마인드 사이트의 회원 가입 이후 라이선스 키를 받아야 다운로드를 받을 수 있도록 변경 되었다.

 

crontab 에 아래와 같이 geoipupdate 명령어를 주기적으로 실행 함으로서 업데이트를 실행할 수 있다.

 

단지 위 명령어를 실행 하기 위해 맥스마인드사의 회원 가입 과 라이선스 키를 발급 받아야 한다.

2021-04-15_095619

그리고 /etc/GeoIP.conf 파일에서 라이선스키 등록을 진행해야 한다.

이후 geoipupdate명령어를 통해서 업데이트가 잘 되나 실행해보면 된다.

 

출처 : https://dev.maxmind.com/geoip/geoipupdate/


다른 방법으로는 기존 처럼 스크립트를 이용 하여 바뀐 URL 에 파라메터로 라이선스 키를 넣어서 호출하는 방법이 있다.

 

개인 적으로 남이 만든 프로그램 보단 직접 하는 스크립트를 선호하는 편이라.. (OS 의존성도 없는 편이고 해서 ‘ ㅅ’a)

스크립트 3 번째 줄에 위 방법을 따라 만든 maxmind 라이선스 키를 입력해야 한다.

 

기존 스크립트에서 추가 변경된 기능이 있는데 DB 업데이트가 이루어 졌는지 배포주소의 HEAD 체크를 통해서 Last-Modified 를 체크 한다.

쉽게 말하면 맥스마인드사에서 새로운 db를 업데이트 할때만 작동 한다는 소리다. ( 더 쉽게: 매일 돌리면 된다. )

때문에 위 스크립트는 /etc/cron.daily/ 폴더내에 넣어두면 필요할 때 자동 실행이 된다.

 

출처 : https://dev.maxmind.com/geoip/geoip-direct-downloads/#Direct_Downloads