일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- javascript
- elasticsearch
- AWS
- it
- 맛집
- JVM
- php
- linux
- ubuntu
- java
- springboot
- Git
- Oracle
- laravel
- Gradle
- db
- IntelliJ
- tool
- MySQL
- Spring Batch
- Spring
- Design Patterns
- redis
- Web Server
- ReactJS
- Spring Boot
- 요리
- jenkins
- jsp
- devops
- Today
- Total
목록Infra/Linux & Unix (37)
아무거나
Soft Limit, Hard Limit 각 계정 마다 하나의 프로세스가 가질 수 있는 file descriptor에 제한이 있다. Soft limit 는 새로운 프로그램이 생성되면 디폴트로 적용되는 제한 값 Hard limit 는 Soft limit 부터 늘릴 수 있는 최대 값 (root만 조정 가능) aws ec2 기준으로는 인스턴스 타입에 따라 limit가 조정된다. 즉, 서버 사양에 따라 limit를 증가시킬 수 있다. Java는 hard 옵션까지 파일오픈이되고 Python에서는 soft옵션까지만 file이 오픈되는 이유 openjdk에서는 -XX:+MaxFDLimit 옵션이 true 인 경우 setrlimit 으로 limit를 증가시키므로 hard 옵션까지 파일이 오픈된다. 설치된 java의 M..
tcp_max_tw_buckets 값 설정 tcp_max_tw_buckets 는 시스템이 동시에 가질 수 있는 timewait 소켓의 최대 갯수 해당 값을 초과하면 time-wait 소켓을 즉시 파괴하고 경고 출력 기본값 보다 낮추면 안됨 현재 수치 확인 명령 $ cat /proc/sys/net/ipv4/tcp_max_tw_buckets 적용 // 적용 $ echo "net.ipv4.tcp_max_tw_buckets=2000000" >> /etc/sysctl.conf // 영구적용시 하기 명령 실행 $ sysctl -p Soft Limit, Hard Limit 영구 설정 일반적으론 soft limit과 hard limit을 동일하게 적용한다 [/etc/security/limits.conf] ... # "..
커널 파라미터 튜닝 예시: Nginx가 9091 포트로 연결하는 과정에서 문제가 발생(하나의 서버에 Nginx + app 이 있을 때 Nginx가 Client 기준으로 되므로 포트 고갈 이슈 발생) 소켓 상태 확인 (만약 timewait가 20xxx개면 timewait 소켓이 2만개나 되는것이다) // 소켓 상태 확인 $ ss -s // 소켓 상태 확인(자세히) $ netstat -napo | grep -i time_wait // 9091 포트가 목적지인 timeout 소켓 개수 확인 $ netstat -napo | grep -ic 9091 해결방법 Local Port 범위 증가 (일시적으론 대체가 가능하나 결국 지속적인 요청으로 인하여 포트의 고갈이 다시 발생) $ echo "10240 65535" >..
프로세스 systemd에 등록 및 서버 재부팅시에 자동 실행하게 등록 1. systemd에 service 파일 생성 [test.service] $ sudo vi /usr/lib/systemd/system/test.service // 내용 [Unit] // systemctl status 명령어에 표시되는 상세 설명 Description=test // 유닛이 시작되는 순서를 조정하여 After에 지정된 유닛이 실행된 이후 시작된다. After=network.target [Service] // ExecStart에 영향을 주는 유닛 프로세스가 시작되며, simple, forking, oeshot, idle 등이 있다. Type=forking User=bkjeon Group=bkjeon // syslog에서 구분..
E: Could not get lock /var/lib/dpkg/lock frontend - open (11: Resource temporarily unavailable) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? apt-get 관련 기능을 사용할 때 위와 같은 오류가 표시된다. 그럴떈 아래와 같이 해결하자. $ sudo killall apt apt-get $ sudo rm /var/lib/apt/lists/lock $ sudo rm /var/cache/apt/archives/lock $ sudo rm /var/lib/dpkg/lock* $ sudo dpkg --..
프로세스 백그라운드 실행 및 nohup // nohup를 이용한 실행, 같은 경로에 nohup.out 라는 파일이 생성되고 출력 문자열이 자동으로 저장 $ nohup shell.sh & // &: 백그라운드로 실행, hang-up signal이 오면 실행이 멈춘다. // nohup: hang-up signal이 와도 동작하기 때문에 연결이 끊어져도 실행이 멈추지 않는다.
프로세스 죽이기(kill) 일반적으로 kill 옵션은 여러가지가 있지만 9 or 15 옵션을 자주 사용한다. 추천은 15 옵션으로 2~3회 종료시도했다가 안되면 9 옵션을 사용하자. // 하드웨어적 종료 // 작업중인 모든 데이터를 저장하지 않고 프로세스를 강제로 종료하기 때문에 저장되지 않는 데이터는 소멸된다. $ kill -9 {pid} // 소프트웨어적 종료 // 자신이 하던 작업을 모두 안전하게 종료한다. $ kill -15 {pid}
1. route를 검색하면 아래와 같이 게이트웨이 정보가 표시된다. Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 1 0 0 eth0 default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 > eth0은 시스템에 설치되어 잇는 이더넷카드(LanCard)의 명칭으로 첫번째 이더넷카드를 뜻한다. 이 설정파일에서 게이트웨이 및 다른 설정사항들이 다른 설정파일과 중복될 수도 있는데 이 경우 이곳의 설정파일이 우선시되어 적용된다. 2. 적용방법 - 임시적용 // 재부팅하면 사라짐 route add default gw 게이트웨이주소 장치명 - 영구적용 echo 'GATEWAY=게이트웨이주소'..
htop 설치 (프로세스 뷰어) // ubuntu $ sudo apt-get update $ sudo apt-get install htop $ htop // centos // yum에는 htop이 기본적으로 포함되지 않으므로 epel-release 레파지토리를 추가하여 설치한다. $ sudo yum -y update $ sudo yum -y install epel-release $ sudo yum -y install htop $ htop [프로세스정보] PID : 프로세스의 프로세스 ID번호 USER : 프로세스의 소유자 PR : 프로세스의 우선순위 NI : 우선순위에 영향을 주는 프로세스의 nice 값 VIRT : 프로세스가 사용중인 가상 메모리 양 RES : 프로세스가 사용중인 물리 RAM의 양 (단..