본문 바로가기

전체 글에 해당하는 글들

201 Articles matched
목록이 없습니다.
Java 힙덤프 분석 (Out of memory현상이 아닌 수동분석) 어..? 메모리 부족..? 서버 운영 중에 간헐적으로 접속 장애가 발생했다. 우리 서버에는 scouter로 모니터링 시스템을 구축해놓았었고 이상 증상이 있으면 사내 slack에 특정 채널로 알림이 오게 해두었다. 며칠 전부터 서버의 메모리가 부족하다는 알림이 오기 시작했다. 하지만 다른 업무들이 밀려 있어서 신경쓰지 못했다. 상황 발생!! 비상!! 그런데 어제부터 특정 사이트에 접속이 간헐적으로 안된다는 문의가 들어왔다. 확인을 안할 수 없는 상황이 되었다. 우리는 아파치 웹서버를 앞에 두고 로드밸런서처럼 사용하고 있었다. 그 뒤에는 Tomcat WAS를 이중화해놓았고 이 중에 한 서버에서만 메모리가 부족해져 있었다. 물론 나머지 한 서버도 메모리가 많이 올라와있기는 마찬가지였다. 우선 tomcat을 ..
[docker] mysql/mariadb Unknown/unsupported storage engine: InnoDB 💡 docker container로 만든 DB 서버 복구 관련 내용 상황 docker 이미지를 활용하여 만들어놓은 개발서버용 DB 컨테이너에 말썽이 생겼다. 기존에 만들어놓은 컨테이너가 있었고 해당 컨테이너를 기반으로 새로운 개발 DB서버 구축을 위해서 복제(Duplication)를 했는데 하필이면 local storage(volume)을 같이 사용하게 만들어버리는 바람에 /var/lib/mysql 이 꼬여버린 것 같다. 기존에 잘 돌아가던 개발서버 컨테이너도 안켜지고 새로 생성한 컨테이너도 안켜진다. 에러 내용은 제목에도 있지만 다음과 같다. Unknown/unsupported storage engine: InnoDB 기존 DB는 이미 생성되어 데이터까지 쌓인 상태라 컨테이너 및 volume이 날아가면..
[Apache] 소스 배포 시 사용자 브라우저 캐시 날아가도록 웹서버 설정 어떻게 할까? Apache2 캐시 설정 (배포 시 브라우저 캐시 날아가도록) 💡 웹 서버 환경 - Ubuntu 18.04 LTS - apache2.4.29 💽 Apache2 웹서버 캐시 설정 (소스 배포 시 사용자 브라우저 캐시 날아가도록) 설정하게된 배경: 운영 배포를 진행하였으나 클라이언트의 브라우저에 캐싱이 되어 이전 소스가 남아있는 상황이 발생함. 이 때문에 웹서버에서 새롭게 제공하는 데이터를 브라우저에 남아있는 이전 소스가 처리하지 못하면서 마치 에러가 발생한 것으로 보임. 이를 방지하기 위해 캐시 설정을 알아봄. 📑 사용자 브라우저에 남아있는 캐시를 날리는 여러가지 방법 사용자 브라우저에 남아있는 캐시를 날리는 방법은 Apache 설정 뿐만 아니라 아래와 같이 다른 여러 방법이 있음. 이와 같은 방법을 Ca..
[Ubuntu] iptime NAS 마운트 오류 (mount error) 💡 Ubuntu 20.04 LTS 버전에서 진행했습니다 ! 결론적으로 마운트를 강제로 해제하고 다시 mount 해주면 해결됩니다. 강제로 마운트 해제하는 명령어: umount -l /NAS cifs로 잘 마운트 되어 사용하고 있던 NAS가 갑자기 안된다.. 덕분에 사이트에서 업로드된 이미지들이 전부 엑박으로 보이는 현상이 발생했다.. 우리 서버에서는 NAS 마운트를 10초마다 확인해서 만약 떨어져있을 경우 다시 붙이도록 cron을 돌리고 있었다. 그래서 어떤 오류가 발생하고 있나 커널 로그 /var/log/kern.log 열어보았다. Apr 27 06:54:58 ubuntu kernel: [11648455.315436] Status code returned 0xc000006d STATUS_LOGON_FA..
terraform apt update 에러 💡 apt update 오류 troubleshooting 상황 terraform 으로 apt update를 하는 script를 작성했는데 update가 되지 않고 에러가 발생하고 있었다. Err http://security.ubuntu.com precise-security InRelease Err http://kr.archive.ubuntu.com precise-backports InRelease Err http://security.ubuntu.com precise-security Release.gpg Temporary failure resolving 'security.ubuntu.com' Err http://kr.archive.ubuntu.com precise Release.gpg Temporary f..
[Apache] 악성 봇 차단 (특정 User-Agent 접근 차단) 💡 Apache Web Server 악성 봇 차단 방법 정리 apache conf파일 디렉토리 및 파일 구조는 virtual host 여러개 및 proxy pass로 tomcat을 reverseProxy로 설정한 상황 악성 봇 목록 악성 봇 목록은 인터넷에 돌아다니는 것을 줍줍 했습니다. 여기에서 다운로드 받아주세요 🙌 악성 봇 목록을 설정파일에서 접근할 수 있는 적당한 경로에 만들어줍니다. 여기서는 /etc/apache/sites-available/extra/bad_bot.conf 경로에 만들었습니다. /etc/apache2/sites-available/extra/bad_bot.conf 파일 내용 # SetEnvIfNoCase User-Agent ^$ bad_bot SetEnvIfNoCase User-..
[Tomcat] 서버 캐쉬 공간 부족 💡 WAS(Web Application Server)인 톰캣(Tomcat) 운영 중 캐쉬 공간 부족 에러 관련 정리 - Tomcat 버전(version): 9.0.70 Tomcat에 대해서 알고 싶으시다면 여기를 보세요! 상황정리 WAS(Web Application Server)인 톰캣(Tomcat: 수컷고양이)을 운영 하다가 캐쉬 공간이 부족하다는 에러를 마주쳤습니다. org.apache.catalina.webresources.Cache backgroundProcess 정보: The background cache eviction process was unable to free [10] percent of the cache for Context [] - consider increasing the ma x..
[Java] jmap 사용하여 JVM 상태 확인 Java 어플리케이션을 배포하고 서버 유지를 하는 경우에 JVM의 상태를 확인해야하는 상황이 종종 발생한다. 이 때 다른 프로그램이나 패키지 설치 없이 바로 사용할 수 있는 간단한 방법이 바로 jmap을 활용하여 확인하는 방법이다. 방법은 아래와 같이 간단하다. (Java 버전별로 조금 다를 수 있다) java 11 이전 버전 $ jmap --heap java 11 포함 이후 버전 $ jhsdb jmap --heap --pid * jhsdb 관련 문서는 오라클 문서 참조: https://docs.oracle.com/javase/9/tools/jhsdb.htm#JSWOR-GUID-0345CAEB-71CE-4D71-97FE-AA53A4AB028E 실행 결과 (jdk 11 버전 기준) $ jhsdb jmap ..