리눅스 서버에서 rsync 기반 백업이 도는 시간대에 메모리 사용률이 90%를 넘기며 알람이 뜨는 상황을 겪었다. 원인을 파고들어 보니 서로 다른 두 가지가 얽혀 있었다. 하나는 dirty page 적체, 다른 하나는 rsync가 만들어내는 page cache다. 둘 다 "메모리 사용률 증가"로 보이지만 성격과 대응법이 완전히 다르다. 나중에 또 만날 것 같아 정리해 둔다.1. dirty page 적체로 인한 메모리 스파이크증상대량 파일 쓰기(백업, 미러링 등)가 일어나는 동안 메모리 사용률이 출렁이며 치솟는다. 쓰기가 일정 구간 누적되었다가 한 번에 디스크로 flush될 때 스파이크가 발생한다.원인dirty page는 아직 디스크에 반영되지 않은, 메모리에만 존재하는 수정된 페이지다. 커널은 vm.di..
lsof +L1
tcpdump.sh 스크립트 생성 #/bin/bash export PATH=$PATH:/usr/bin:/usr/sbin DUMP_NAME="api" DUMP_DIR="/root" DUMP_FILE="${DUMP_NAME}_%Y-%m-%d_%H:%M.pcap" find $DUMP_DIR -name "${DUMP_NAME}_*.pcap" -mtime +2 -delete ps -ef |egrep "tcpdump .* ${DUMP_DIR}/${DUMP_FILE}" |grep -v grep |awk '{print $2}' |xargs kill -3 > /dev/null 2>&1 timeout 24h tcpdump -i eth0 port 80 -G 3600 -w ${DUMP_DIR}/${DUMP_FILE} > /d..
SELECT datname, age(datfrozenxid) FROM pg_database ORDER BY age(datfrozenxid) desc; datname | age -------------------------+------------ aaaaaaaaaaaaaaaa | 1485485076 bbbbbbbbbbbbbbbbbbbbbbb | 1481342364 cccccccccccccccccccc | 1461333757 dddddddddddddddddd | 1330037484 postgres | 1329674313 fffffffff | 1156326849 ggggggggggggggggggggggg | 100464636 template1 | 382402 template0 | 378203 (9 rows)..
사전 지식 사용기술 AWS Elastic Load Balancing(ELB) Elastic Computing(EC2) ElastiCache(Redis Cluster) Elasticsearch(ELK) EC2 Autoscailing Linux CentoOS Nginx UWSGI Python Django Celery MySQL Kafka Storm 개발 사전 체크 기획 내용의 검토 Timeline 시나리오 설계 및 구축 특정 유저가 다른 유저 혹은 인플루언서를 팔로우할 경우 모아보기를 지원해야 함 Only DB Query로 구축은 지양하고, 확장성 및 성능을 고려한 설계 필요(DB로 설계했을 때 방안도 고려) AWS ELK를 활용한 검색 시나리오 설계 및 구축 사용자가 작성한 글/크롤링한 데이터/커뮤니티 검..
12345678910# 날자별 디렉토리 이동find /home/hosting/webanalyzer/data/db/*/* -maxdepth 1 -type d -name "`date +'%Y%m' -d '1 year ago 1 month ago'`" -exec bash -c 'basedir=$(dirname {}) && mkdir -p /home/_trash$basedir && mv {} /home/_trash$basedir' \; find /home/hosting/webanalyzer/data/db/*/* -maxdepth 1 -type d \( -regex '.*2018[01][0-9]$' -or -regex '.*20190[1-5]$' \) -exec bash -c 'basedir=$(dirname {..
2020년 상반기에 4대 주요 웹브라우저 회사인 Google, Microsoft, Apple, Mozilla의 브라우저에서 TLS 1.0 및 1.1 지원을 종료한다고 합니다. 현재 TLS 프로토콜은 TLS 1.0, 1.1, 1.2, 1.3의 4가지 버전이 있지만, 1.0, 1.1은 POODLE 및 DEAST와 같은 공격에 취약한 것으로 알려져 있습니다. 이에 OpenSSL을 명령어로 프로토콜에 따라서 접속이 가능한지 확인 하는 방법을 소개합니다. OpenSSL로 프로토콜 접속 테스트 openssl의 s_client 명령어와 프로토콜 옵션을 넣어서, 특정 프로토콜로 접속이 가능한지 확인할 수 있습니다. 정상적으로 접속이되면, 인증서 정보 및 접속 정보가 출력되고 종료 됩니다. # openssl s_clie..
간혹 shell에서 직접 실행하면, 정상적으로 잘 동작하는 스크립트가 crontab에 등록하면 정상적을 동작하지 않는 경우가 발생하곤 합니다. 대부분 shell의 환경 변수와 crontab의 환경 변수가 달라서 발생을 하게 됩니다. 스크립트 내에서 외부 명령어를 실행하는 경우에 PATH 환경변수가 달라서 명령어 위치를 찾지 못해서 에러가 발생하는 경우가 대표적인 예입니다. 이런 문제를 해결하기 위해서 crontab 실행 시 환경 변수를 맞춰서 실행하는 방법을 소개합니다. 환경 변수 확인 현재 로그인된 shell의 환경 변수 값을 확인 하는 방법은 set 명령어를 이용하면 확인 할 수 있습니다. # set |egrep '^PATH' PATH=/usr/local/sbin:/usr/local/bin:/sbin..
- Total
- Today
- Yesterday
- engineering
- httpd
- deview
- 명령어
- RESTful
- Web
- PowerShell
- check
- configuration
- 예제
- client
- 번역
- limits
- Python
- apache
- command
- error
- 이슈처리
- Ansible
- mysql
- MariaDB
- monitoring
- File
- 코드
- 외부링크
- Linux
- example
- Windows
- Module
- code
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |