일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바기본
- 자바
- 스프링
- java
- 패스트캠퍼스
- 디자인
- 데이터베이스
- ncs
- DesignPattern
- 직장인인강
- 패캠챌린지
- String
- 디자인패턴
- 자바예제
- 직장인자기계발
- java기초
- linux
- 패스트캠퍼스후기
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 웹
- DB
- js
- 재택근무
- 자바연습문제
- 리눅스
- javabasic
- Spring
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 자바기초
- 국비
- Today
- Total
FIF's 코딩팩토리
리눅스 환경설정 파일 & 커널 파라미터 & 프로젝트/이슈 관리 본문
리눅스 환경설정 파일
들어가기전 개념
shell이란?
- 명령어처리기(검은창)
- 쉘은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램
shell script란?
- 텍스트 형식으로 저장되는 프로그램으로서 한줄씩 순차적으로 읽어 실행되는 프로그램
- shell을 사용하여 컴퓨터에에 시킬 명령어를 텍스트로 작성하여 실행
(script란 interpreter 방식으로 동작하는 컴파일 되지 않는 프로그램)
sh란?
- 쉘의 한 종류
- 초기의 유닉스 쉘로 태어났다는 의미에서 Bourne shell의 줄임말로, sh라고 부른다.
- 프롬프트(사용자의 명령을 받아들일 준비가 되었음을 모니터에 나타내는 표시) : $
bash란?
- 쉘의 한 종류
- Bourne-agin shell 줄여서 bash라고 부른다.
- sh와 대부분 호환
- 프롬프트: #
.profile VS /etc/profile VS .bash_profile VS .bashrc VS /etc/bashrc
로그인하여 bash가 처음 시작할때(login shell일때), 다음 스크립트 파일들을 수행하여 환경을 설정한다.
/etc/profile
~/.bash_profile or ~/.bash_login or ~/.profile
~/.bashrc
/etc/bashrc
/etc/profile 과 .profile은 shell이 bash가 아니라도 로그인하면 로드되어 적용되고,
.bashrc 와 .bash_login, .bash_profile은 bash shell로 로그인 되었을 경우만 적용이 된다.
로그인 shell이 로그아웃할때 다음 파일을 찾아서 수행한다.
~/.bash_logout
/etc/profile 과 /etc/bashrc 은 전체 사용자에게 적용된다.
~/.bashrc 와 ~/.profile, ~/.bash_profile 등은 해당 사용자에게만 적용된다.
사용자가 로그인을 하면 /etc/profile 과 /home/사용자/.profile 의 스크립트가 작동하여 적용된다. 이는 도스에서 autoexec.bat 파일과 같은 맥락이다.
~/.bashrc (bash run control)
bash를 사용할 때, bash가 참고할 사항을 정의해 놓은 파일이다.
/etc/bashrc
전반적인 시스템을 제어하는 파일로 필요한 변수를 작성하거나 편집 또는 제거한다.
~/.bash_profile
특정 사용자의 원격 로그인 파일로 이 파일에 있는 환경 변수는 사용자가 원격 로그인 세션이 이루어질 시에 호출됨.
전역적인 설정 파일인 /etc/profile이 수행된다음 바로 수행됨.
오직 bash를 실행하는 그 사용자에게만 영향을 줌
/etc/profile
로그인시 수행되는 시스템 전체 환경 설정 파일이다. 모든 사용자에게 영향을 준다.
커널 파라미터
커널이란 시스템을 관리하고 컨트롤하는 커다란 어플리케이션 으로,
컴퓨터가 켜지는 시점부터 종료하는 시점까지 메모리를 할당하고 프로세스를 시작하는 역할을 하므로 아주 중요하다.
커널 파라미터값은 커널이 메모리와 프로세스를 할당하기 위한 값이다.
sysctl명령은 커널 변수의 값을 제어하여 시스템을 최적화할 수 있는 명령이다.
sysctl은 시스템의 /proc/sys 디렉토리 밑에 있는 커널 매개변수를 제어한다.
이 디렉토리 밑으로 존재하는 디렉토리를 구분하는 ‘/’는 sysctl 명령 이용시에는 ‘.’으로 대체한다.
vi /etc/sysctl.conf // 여기서 커널 파라미터들을 설정 하지만,
vi /proc/sys //실제 파라미터값 들이 있는곳은 여기다.
fs.aio-max-nr = 1048576
- filesystem.asynchronous I/O-max-now running
filesystem에서 현재 활동중인 최대 비동기식 입출력 값
이 파라미터가 가리키는 파일은 /proc/sys/fs/aio-max-nr
fs.file-max = 6815744
- 커널에서 쓰이는 파일의 최대 개수를 말해주는 파라미터
가라키는 파일은 /proc/sys/fs/file-max
kernel.shmall = 2097152
- shmall 커널 매개변수는 특정 시점의 시스템에서 사용 가능한 공유 메모리의 최대 크기(페이지크기)를 설정하는데 사용된다. 따라서 이 매개 변수는 최소한 디폴트 사이즈인 2097152보다는 커야한다.
# cat /proc/sys/kernel/shmall
2097152
kernel.shmmax = 1987162112
- shmmax 매개변수는 공유 메모리 세그먼트의 최대 크기(바이트 단위임)를 정의하는데 사용된다. 오라클 SGA는 공유 메모리로 구성되며, shmmax가 잘못 설정되면 SGA의 크기가 제약될 수 있다.
shmmax의 default값은 32MB인데 오라클 SGA로 활용하기에는 너무 부족해서
보통 2GB(2147483648)정도로 설정
kernel.shmmni = 4096
->shmmni 매개변수는 공유 메모리 세그먼트의 최대 숫자를 설정하는데 사용되며, 디폴트값은 4096이다. 이 값은 일반적으로 충분해서 변경할 필요가 없다.
kernel.sem = 250 32000 100 128
SEMMSL SEMMNS SEMMNI SEMOPM
sem은 semaphore(세마포어)로 공유 메모리와 같은 공유 리소스의 사용 과정에서 프로세스간의 동기화를 위해 사용되는 일종의 카운터다.
SEMMSL : 배열당 최대 세마포어 수(max semaphores per array)
- 세마포어 set당 세마포어의 최대 개수는 SEMMSL 커널 매개변수를 통해 정의된다.
오라클은 init.ora 파일의 PROCESS 인스턴스 매개변수의 최대값에 10을 더한 값을 사용하라고 권장하고 있다. 또 SEMMSL의 값을 100 이상으로 설정하는 것을 권장하고 있다.
SEMMNS : 시스템 전체 최대 세마포어 수(max semaphores system wide)
전체Linux시스템의(세마포어set이 아님) 세마포어 최대 개수를 정의하는데 사용된다.
오라클은 각 데이터베이스의 PROCESSES 인스턴스 매개변수의 값을 모두 더한 뒤, 가장 큰 PROCESSES값을 두차례 더하고, 마지막으로 각 데이터베이스 별로 10을 더한 값으로 SEMMNS를 설정하도록 권장하고 있다.
Linux 시스템에서 할당될 수 있는 세마포어의 최대 개수를 결정하기 위해 다음과 같은 공식을 사용한다. 아래의 두 항목 중 더 낮은 값을 적용 한다.
SEMMNS 또는 SEMMSL * SEMMNI
SEMMNI : 최대 배열 수(max number of arrays)
전체 Linux 시스템의 세마포어 set의 최대 개수를 정의하는데 사용된다. 오라클은 SEMMNI를 100 이상의 값으로 설정할 것을 권장하고 있다.
SEMOPM : 세마포어 호출당 최대 operation 수(max ops per semop call)
semop 시스템 호출별로 수행될 수 있는 세마포어 작업의 수를 설정하는데 사용된다.
semop 시스템 호출(함수)은 하나의 semop 시스템 호출을 통해 여러 개의 세마포어를 지원한다. 세마포어 set에서 가질 수 있는 세마포어 최대값은 SEMMSL 매개변수를 통해 정의된다. 따라서 SEMOPM을 SEMMSL과 동일하게 설정하는 것이 권장된다.
TCP와 관련된 커널 파라미터는 net.core, net.ipv4, net.ipv4등의 접두사를 붙이고 있다.
net.ipv4.ip_local_port_range = 9000 65500
- 어떤 시스템에 동시에 가질 수 있는 클라이언트 소켓 수를 결정하는 커널 파라미터이다.
두 값은 각각 사용할 포트 범위의 시작과 끝을 나타냄.
TCP socket buffer size
net.core 접두사가 붙은 커널 파라미터는 TCP를 포함한 모든 종류의 소켓에 기본적으로 설정되는 버퍼 크기를 나타낸다. 각 커널 파라미터는 min / default / max 정수 값으로 설정 할 수 있다.
rmem은 receive(read) buffer의 크기, rmem은 send(write) buffer의 크기를 나타낸다.
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
프로젝트/이슈 관리란
- 프로젝트에서 예상 되거나 또는 이미 발생한 “이슈”들을 관리하는 것
- 관리 대상 이슈로는 업무(작업), 문제점, 개선 사항 등이 있음
- 툴로는 Redmine, Mantis, Trac, Bugzilla등이 있음
Jira란 버그 추적, 이슈 추적, 프로젝트 관리가 가능한 소프트웨어다.
Oracle설치 후 꼭 깔필요는 없다.
'Linux(리눅스)' 카테고리의 다른 글
리눅스(Linux) CentOS7 고정아이피 설정 (0) | 2019.05.23 |
---|---|
리눅스(Linux) vi편집기 명령어 (0) | 2019.05.21 |
VirtualBox에 설치한 OS가 갑자기 안될때 (0) | 2019.05.17 |
리눅스 BASH Shell 프로그래밍 기초(2) (0) | 2019.05.10 |
리눅스 BASH Shell 프로그래밍 기초(1) (0) | 2019.05.10 |