반응형

조시형님의 SQLP 핵심노트가 출간되었습니다.

 

주요 온라인 쇼핑몰에서 「SQLP 핵심노트」 Ⅰ&Ⅱ 판매를 시작했습니다. 오프라인 매장에서는 일요일 이후로 구매 가능할 거 같습니다.

자신이 운영하거나 활동 중인 SNS에 도서를 홍보해 주시면, 20명을 선정해 「SQLP 핵심노트」 도서 또는 커피 쿠폰을 증정하겠습니다.

[ 증정품 ]

1. 「SQLP 핵심노트」 Ⅰ권과 Ⅱ권 증정 ▶ 회원/이웃/팔로워가 많은 순으로 최상위 5명

2. 「SQLP 핵심노트」 Ⅰ권 또는 Ⅱ권 증정 ▶ 회원/이웃/팔로워가 많은 순으로 차상위 5명

3. 스타벅스 커피 쿠폰 ▶ 추첨을 통해 선정된 10명

[ 참여 방법 ]

① 본 게시글 URL(https://cafe.naver.com/dbian/4272)을 카페/블로그/페이스북/인스타그램/트위터 등에 공유

② 해당 SNS URL을 아래 댓글로 등록

▶ 이벤트 기간 : 9월 1일(수) ~ 9월 16일(목) 9월 1일(수) ~ 9월 8일(수)

▶ 당첨자 발표 : 9월 17일(금) 9월 9일(목)

이벤트 기간을 8일 더 연장합니다. 지금 추세라면 100% 당첨 이벤트가 될 듯 ^^

여러분의 많은 참여와 홍보 부탁드립니다.

감사합니다.

▶ 주요 온라인 서점 URL

[ 교보문고 ]

SQLP 핵심노트 Ⅰ

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791191941005&orderClick=LAG&Kc=

SQLP 핵심노트 Ⅱ

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791191941012&orderClick=LAG&Kc=

[ 예스24 ]

SQLP 핵심노트 Ⅰ

http://www.yes24.com/Product/Goods/103510806?OzSrank=1

SQLP 핵심노트 Ⅱ

http://www.yes24.com/Product/Goods/103521655?OzSrank=2

[ 알라딘 ]

SQLP 핵심노트 Ⅰ

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=278839908

SQLP 핵심노트 Ⅱ

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=278900838

[ 인터파크 ]

SQLP 핵심노트 Ⅰ

https://shopping.interpark.com/product/productInfo.do?prdNo=8477056875&dispNo=008001082&pis1=shop&pis2=product

SQLP 핵심노트 Ⅱ

https://shopping.interpark.com/product/productInfo.do?prdNo=8479369026&dispNo=008001082&pis1=shop&pis2=product

「SQLP 핵심노트」 서문

「SQLP 핵심노트」 목차

※ 자매 도서 ▶ SQLD 핵심노트


[출처] 「SQLP 핵심노트」 Ⅰ & Ⅱ 출간 기념 이벤트 (DBian 포럼) | 작성자 oraking

반응형

'Database' 카테고리의 다른 글

무료 DB 접근 툴  (0) 2019.08.19
무료 ERD 툴 ERMASTER  (0) 2019.08.08
damo 암호화 컬럼 복원시 주의사항  (0) 2017.08.20
Sybase IQ Administrator 사용 Script  (0) 2012.10.18
JNDI Log4SQL 적용 예...  (0) 2011.04.21
반응형

rpm -e --repackage 형태로 사용하는 방법은 centos에는 사용될수 없음

 

rpmrebuild 패키지를 yum or dnf 로 설치

#> yum install rpmrebuild

 

root@server1:[/tmp]# rpm -qa | grep java-1.8
java-1.8.0-openjdk-headless-1.8.0.222.b10-0.el7_6.x86_64
java-1.8.0-openjdk-devel-1.8.0.222.b10-0.el7_6.x86_64
java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64

 

root@server1:[/tmp]# rpmrebuild java-1.8.0-openjdk-headless-1.8.0.222.b10-0.el7_6.x86_64

 

result : /root/rpmbuild/RPMS/x86_64/java-1.8.0-openjdk-headless-1.8.0.222.b10-0.el7_6.x86_64.rpm

반응형

'OS > Linux' 카테고리의 다른 글

Centos 모니터링 쉘 모음  (0) 2019.12.05
vimrc 공통 환경 설정  (1) 2019.12.03
Centos 7 SAMBA 설정  (1) 2019.09.05
vi 색상 표기  (0) 2019.05.08
CENTOS 7에 XRDP 설치하기  (0) 2017.08.26
반응형

사실 이런 표현이 맞는지는 모르겠으나

 

우리가 생각했던 개념은

 

Nexus 에서 third party library를 관리하듯이

(build tool[maven, gradle 등]에서 repository 를 통해 local 저장소 보듯이)

 

npm에서 공통적으로 사용하는 node_modules 폴더를

 

레파지토리에 넣고 관리하고 싶었다.

 

며칠을 고민해봤으나...

 

각각의 문제점과 이것이 해결 방법인지 ? 상태로 종료되었다.

 

1. Nexus + npm repository 관리

   - 이것을 수행하면 필요한 모든 것들이 SVN(형상관리) 처럼 될 줄 알았다...

     그러나... 이것은 최종 만들어진(실행가능한) 파일들이 들어있는 xxxx.tgz 형태로 배포된다.

     (node_modules 등은 중간단계에서 필요하고 최종은 필요 없다)

     => 즉, npm publish 했을 때 저장되는 저장소는 최종 실행 결과물에 대한 저장소 이다.

     ※ node_modules 관리 실패 

 

2. svn 영역 추가

   - deprecate 되는 js 들 때문에 이 문제에 들어온 거라

     가장 쉽게 node_modules 폴더를 svn에 예외 설정 없이 하는 것이 가장 쉬었다.

 

3. 로컬 폴더를 지정하여 npm install 하기

    - package.json 파일에 아래와 같이 경로를 추가하여 폴더내에 설치도 가능하다. 

      "dependencies": { "bar": "file:../foo/bar" }

      관련 URL : stackoverflow.com/questions/14381898/local-dependency-in-package-json

 

 

사실 가장 쉬운 방법은

 

이 방법은 Offline 환경에 내부 네트워크 상에 효율적으로 관리하기 위한 방법이다.

 

SVN : 전체 소스 형상 관리(common_node)

Repository LIBRARY : 필요한 library jar 파일은 Nexus 3rd Party library로 관리

 

반응형

'Language' 카테고리의 다른 글

Inter-process communication  (0) 2014.03.27
특정 문자열 분석 쉘  (0) 2012.02.21
우리은행 웹 접근성 가이드 주소  (0) 2011.08.09
빠른 수식 계산법  (0) 2010.03.01
반응형

 

https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Stand-alone-Java-Batch-Agent_kr.md

 

scouter-project/scouter

Scouter is an open source APM (Application Performance Management) tool. - scouter-project/scouter

github.com

 

# class 명칭으로 등록

batch_id_type=class

 

# 클래스 명칭으로 사용

batch_id=0

 

#명시된 서비스만 후킹

hook_service_patterns=on.batch.*

반응형

'UTILITY' 카테고리의 다른 글

7-ZIP CPU 사용률 제한  (0) 2022.05.11
ghost 옵션  (0) 2019.11.27
POSTMAN Spring 에 Post 데이터 전송 예  (0) 2019.05.27
정규식 방법  (0) 2014.06.17
Process Hacker  (0) 2014.03.26
반응형

 

1. goaccess 라는 녀석을 설치한다.

#> yum install goaccess

 

관련 URL : https://goaccess.io/

 

GoAccess - Visual Web Log Analyzer

Why GoAccess? GoAccess was designed to be a fast, terminal-based log analyzer. Its core idea is to quickly analyze and view web server statistics in real time without needing to use your browser (great if you want to do a quick analysis of your access log

goaccess.io

 

2. 다음 명령을 통해 html 로 출력한다. (실시간)

goaccess -f [log파일] -o [출력html파일명] --log-format=COMMON --real-time-html

 

참고 : https://ma.ttias.be/analysing-webservers-logs-locally-with-goaccess/

 

Analysing webservers logs locally with goaccess

I want to show you how I use a tool called goaccess to do some quick analysis of access logs on webservers.

ma.ttias.be

 

 

반응형
반응형

 

참고 : https://programmer.ink/think/jvm-series-jvm-tuning-jps-jstat-jmap-jhat-jstack-jinfo.html

 

jvm series: jvm tuning - jps jstat jmap jhat jstack jinfo

jvm series: jvm tuning - jps jstat jmap jhat jstack jinfo Posted by Emma on Sun, 02 Jun 2019 21:01:42 +0200 From: https://www.cnblogs.com/ityouknow/p/5714703.html Using the command of JVM can help us locate the problem easily in production monitoring and p

programmer.ink

 

1. JMAP 

 

힙 메모리 보기

$>  jmap -heap [pid]

 

덤프 생성

$> jmap -dump:live,file=[생성할 파일경로및파일명] [pid]

 

생성된 덤프를 바로 웹으로 보고 싶다면

$> jhat -J-Xmx[메모리사이즈:덤프크기보다 크게] -port [사용할포트] [생성한 파일경로및파일명]

-> ex> jhat -J-Xmx2g -port 10000 /tmp/dump.bin

 

자바 jmap으로 heap 메모리 분석(jmap -heap pid) 수행시 오류 발생 할때

 

Heap Usage:
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sun.tools.jmap.JMap.runTool(JMap.java:201)
        at sun.tools.jmap.JMap.main(JMap.java:130)
Caused by: java.lang.RuntimeException: unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap
        at sun.jvm.hotspot.tools.HeapSummary.run(HeapSummary.java:157)
        at sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:260)
        at sun.jvm.hotspot.tools.Tool.start(Tool.java:223)
        at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
        at sun.jvm.hotspot.tools.HeapSummary.main(HeapSummary.java:50)
        ... 6 more

 

아래와 같이 설치가 가능함(아래는 java 1.8임)

yum --enablerepo='*-debug*' install java-1.8.0-openjdk-debuginfo.x86_64

 

위 명령 수행시 오류 날때는 버전이 맞지 않아서 임

 

아래에서 버전 확인 뒤

http://debuginfo.centos.org/7/x86_64/

 

Index of /7/x86_64

 

debuginfo.centos.org

 

wget 명령을 통해 위의 다운로드 주소 붙여넣고

 

rpm -ivh 파일명 을 통해 설치

 

2. 메모리 튜닝

 

https://nozaki.me/roller/kyle/entry/memory-usage-tuning-of-java8

 

java 다음에 옵션 추가

 

예) java -Xms256m -Xmx512m -XX:MaxDirectMemorySize=512M  -XX:MaxMetaspaceSize=512m -XX:CompressedClassSpaceSize=256M -XX:ReservedCodeCacheSize=256M

 

3. jstat (메모리 모니터링)

 

프로세스의 메모리 상태 보기

 

$> jstat [옵션] [pid] [ms] [반복회수 : 없으면 무한]

ex> jstat -gc 10222 1000

=> pid 10222에 대해 1초에 한번 프로세스 메모리 상태를 조회

 

아래 URL을 통해 GUI 값으로 확인 가능

http://nix-on.blogspot.com/2015/01/java-jstat-how-to-visualize-garbage.html

 

Java jstat - how to visualize garbage collection statistics quickly

jstat Garbage Collection visualizer jstat  is useful for getting a quick overview of the...

nix-on.blogspot.com

 

[옵션]

class : 클래스 로더의 동작에 관한 통계

compiler : 핫스팟 Just-In-Time 컴파일러 동작에 관한 통계

gc : 가비지 컬렉트된 Heap 동작에 관한 통계

gcapacity : 세대 마다 용량과 대응하는 영역에 관한 통계

gccause : gcutil의 직전 및 현재의 가비지 컬렉션 이벤트의 원인

gcnew : New 세대의 동작에 관한 통계

gcnewcapacity : New 세대의 사이즈와 대응하는 영역에 관한 통계

gcold : old 세대 및 Permanent 세대의 동작에 관한 통계

gcoldcapacity : Old 세대의 사이즈에 관한 통계

gcpermcapacity : Permanent 세대의 사이즈에 관한 통계

gcutil : 가비지 컬렉션 통계

printompilation : 핫스팟 컴파일 방법의 통계

 

 

 

4. 번외로 시스템 io 체크

 

iostat -x [인터벌] [회수]

$> iostat -x 1 10 

반응형
반응형

처음 배우는 스프링 부트 2

 

책 자체가 현재 구성과 맞지 않아 저자에게 문의하였고

(무료 IntelliJ + start.spring.io 설정 맞추기)

 

3줄 회신이 왔는데 아래를 참고하라고 하였습니다.

 

아쉬운건 변화 무쌍한 환경에서 변경되는 내역 업데이트를 위한 게시판이 없는게 많이 아쉽네요

 

회사에서 스프링 부트 관련하여 같이 공부할 책을 찾고 있는 중인데

 

결정에 많은 도움이 되었네요

 

※ 만약 oracle JDK8이 아닌 OpenJDK 8로 사용하고 plugins 방식으로 gradle 빌드하면 무조건 오류가 납니다.

 

-------------------------------------------------- 

 

**Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target**
** ... 255 more**
**Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target**
** ... 255 more**

 

-------------------------------------------------- 

 

위의 경우는 가볍게 OpenJDK 11로 다운받아 JAVA_HOME 설정후 build gradle 수행하면 잘 됩니다 !

(cacerts 방식은 Oracle JDK에만 해당되는것 같네요)

책 발매일은 모르겠지만, 이제는 JDK 11이상으로 사용하지 않을까 싶네요...

 

인텔리제이 설정 참고 : https://www.bsidesoft.com/6926

 

buildscript 방식과 plugins 방식이 존재하며, 

start.spring.io에서는 plugins(신규) 방식으로 build.gradle 가 만들어 집니다.

아래는 buildscript 방식

 

-------------------------------------------------- 

 

buildscript {
    ext{
        springBootVersion='2.2.6.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group 'com.bsidesoft'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

 

-------------------------------------------------- 

 

 

74 Page : 3.1 @SpringBooTest 프로젝트 파일

책 교제와 다르게 오류가 발생하여 아래 내역을 업데이트 한 파일

-> SpringBootVersion : 2.2.6

    Gradle : 4.10.1 

3.1장_SpringBootTest_74p.zip
0.08MB

 

-------------------------------------------------- 

 

 

80 Page : 3.2 @WebMvcTest 프로젝트 파일

책 교제와는 다르게 /src/main/resource/templates/book.html 추가해야 됨(book 객체를 얻어옴)

book.html 파일 내용

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>book</title>
</head>
<body>

</body>
</html>

3.2장_SpringBootTest_80p.zip
0.08MB

 

-------------------------------------------------- 

 

81 Page: 3.3 @DataJpaTest

기본적으로 lombok 를 설치하지 않으면 builder() 메서드 밑에 붉은색 줄이 가면서

문제를 야기 시킨다.

File -> Settings -> Plugins -> 상위탭에서 Marketplace 선택 -> lombok 선택 후 설치 -> ide 재기동 

 

File -> Settings -> Build, Excution, Deployment -> Compiler -> Annotation Processors 선택

우측에

Enable annotation processing 선택 -> OK

 

3.3장_SpringBootTest_81p.zip
0.08MB

 

-------------------------------------------------- 

 

 

88 Page : 3.4 @RestClientTest

만약 위의 lombok 를 체크하지 않으면 BookRestTest.java 에서 book.getTitle() 부분의 오류가 보임

3.4장_SpringBootTest_89p.zip
0.08MB

 

-------------------------------------------------- 

 

 

90 page : 3.5 @JsonTest

3.5장_SpringBootTest_91p.zip
0.08MB

 

-------------------------------------------------- 

 

 

96 Page : 신규 커뮤니티 게시판 프로젝트 Web 구성 의존성 관련(2020.05.19)

 

-------------------------------------------------- 

 

 

109 Page 예제 4-9전 까지 압축파일

build.gradle 부분의 약간 수정이 필요

 

4장_web_109p.zip
0.16MB

 

* 설정 (build.gradle)

sping boot 2.2.x 부터는 Junit 5으로 사용되기 때문에

 

 

-------------------------------------------------- 

 

	(2.2.x 부터 추가된 설정으로 Junit 5설정으로 예제 돌리면 오류)
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
		exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
	}
    
    * 위의 부분에서 { ~ } 까지를 빼면 Junit 4설정으로 수행되기 때문에 오류 없음
    * 또한 위의 설정으로 Test들을 수행하면 @RunWith, @Before, @Test 등이 모두 오류 발생   

 

또는 아래 URL을 참고하여 JUnit 5으로 넘어가도 됨...

java.ihoney.pe.kr/525

 

[springboot] JUnit 5 적용기

이미 나온지 꽤 시간이 흐른 Junit 5를 살펴보기 시작한다.

java.ihoney.pe.kr

 

-------------------------------------------------- 

 

 

plugins {
    id 'org.springframework.boot' version '2.3.0.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'com'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    runtimeOnly 'com.h2database:h2'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

test {
    useJUnitPlatform()
}

 

-------------------------------------------------- 

 

여기 다음 부터는 비공개로 쑥 ~

 

반응형
반응형

1. 사용방법

# ss –[옵션]
-a : 모든 포트 확인
-t : TCP 포트 확인
-u : UDP 포트 확인
-l : LISTEN 상태 포트 확인
-p : 프로세스명을 표시
-n : 호스트 / 포트 / 사용자이름을 숫자로 표시
-i : 정보보기
-s : 통계 정보 보기

> 전체 tcp : ss -at
> 전체 udp : ss -au
> 전체 Listen 포트 : ss -l
> 전체 Listen tcp 포트 : ss-tl
> Established 상태의 포트 조회 : ss -o state established
> 프로세스명 표기 : ss -p
> 소켓 메모리 사용 : ss -ltm
> 연결된 시간 표기 : ss -tn -o
> 1초에 한번 통계 정보 보기 : watch -n 1 "ss -s"
> tcp 연결에 목적지 443 포트나 80 포트 조회 : ss -nt '( dst :443 or dst :80 )'

> tcp의 목적지 IP가 127.0.0.1이고 소스는 5000번 이상 큰 경우 : ss -nt src 127.0.0.1 sport gt :5000
     <= or le : Less than or equal to port
     >= or ge : Greater than or equal to port
     == or eq : Equal to port
     != or ne : Not equal to port
     < or gt : Less than to port
     > or lt : Greater than to port

2. IP와 프로세스 삭제

dport 옵션과 = 포트번호 사이는 반드시 띄어쓰기를 해야한다.

# ss -kill dst 192.168.216.133 dport = 1234

Netid       State        Recv-Q        Send-Q                  Local Address:Port                   Peer Address:Port
tcp         ESTAB        0             0                        192.168.100.122:52218               192.168.216.133:1234

3. 출력 단어 설명
RTO(Retransmission TimeOut) : 타이머가 작동하는 시간을 의미
RTT(Round Trip Time) : 네트워크 통신을 하는 두 노드 간에 패킷이 전달되는데 소요된 시간을 의미

내부 TCP 정보를 표시합니다. 아래 필드가 나타날 수 있습니다.

              ts     타임 스탬프 옵션이 설정된 경우 ts 표시

              sack  sack 옵션이 설정된 경우 sack 표시

              ecn  명시적 정체 알림 옵션이 설정된 경우 ecn 표기 (explicit congestion notification)

              ecnseen 수신 패킷에서 ecn 플래그가 발견된 경우 표기

              fastopen
                     show string "fastopen" if the fastopen option is set

              cong_alg "cubic" 혼합 알고리즘 기본 설정
                     the congestion algorithm name, the default congestion
                     algorithm is "cubic"

              wscale::
                    window 창 옵션을 사용하는 경우 송신 스케일 요소와 수신 스케일 요소를 표시

              rto:
                     TCP 재전송 시간 종료값 (단위는 밀리 초)

              backoff:
                     지수 백 오프 재전송에 사용되는 실제 재전송 시간 초과 값은 icsk_rto << icsk_backoff 

              rtt:/
                     rtt는 평균 왕복 시간이고, rttvar은 rtt의 평균 편차이며, 단위는 밀리초 입니다.

              ato:
                     ack 시간 초과, 단위는 밀리초, 지연 ack 모드에 사용

              mss:
                     최대 세그먼트 크기

              cwnd:
                    혼합 window 크기

              pmtu:
                     경로 MTU 값

              ssthresh:                     
                     tcp 혼합 window 느린 시작 임계값

              bytes_acked:
                     bytes acked

              bytes_received:
                     bytes received

              segs_out:
                     전송된 세그먼트

              segs_in:
                     수신된 세그먼트
                     
              send bps
                     밖으로 나간 bps

              lastsnd:
                     마지막으로 보낸 패킷 이후의 시간은 밀리초입니다.

              lastrcv:
                     마지막으로 받은 패킷 이후의 시간은 밀리초입니다.

              lastack:
                     마지막 ack 이후 수신된 시간은 밀리초입니다.

              pacing_rate bps/bps
                     가격 및 최대 간격

              rcv_space:
                     TCP 내부 자동 튜닝 소켓 수신 버퍼를 위한 도움 변수

반응형
반응형

 

 

  웹서버 권고 파라미터 : https://waspro.tistory.com/406
WAS서버 권고 파라미터 : https://waspro.tistory.com/407
일반적인 권고 파라미터 : https://yoonroot.tistory.com/entry/Parameter-CentOS-Parameter-%EA%B3%84%EC%86%8D-%EC%B6%94%EA%B0%80-%EC%98%88%EC%A0%95

 

[WEB Server] TCP 권고 Parameter

본 포스팅은 WEB Server 설치 시 권고 파라미터에 대해 알아보겠습니다. WEB Server 설치 시 OS Kernel 권고 Parameter에 대해 살펴보겠습니다. 파라미터 설명 권고값 net.ipv4.tcp_keepalive_intvl TCP TIME_WAIT..

waspro.tistory.com

 

 

[WAS Server] TCP 권고 Parameter

본 포스팅은 WAS Server 설치 시 권고 파라미터에 대해 알아보겠습니다. WAS Server 설치 시 OS Kernel 권고 Parameter에 대해 살펴보겠습니다. 파라미터 설명 권고값 net.ipv4.tcp_keepalive_intvl TCP TIME_WAIT..

waspro.tistory.com

 

[Parameter] CentOS Parameter (계속 추가 예정)

1. 테스트 환경 - OS: CentOS 7.5 기준 2. 설정 방법 - parameter setting vi /etc/sysctl.conf - parameter apply sysctl -p >> growpart <하드디스크명> <파티션번호> - parameter check sysctl -a 3. parameter..

yoonroot.tistory.com

OS 전체 파라미터 설명 : https://chanchan-father.tistory.com/278

 

OS 최적 설정 가이드

1. sysctl 파라미터 1) sysctl 정의 - sysctl은 kernel parameter 값들을 조정하기 위한 utility입니다. - sysctl이 조절할 수 있는 값들은 /proc/sys/ 아래에 있는 리스트들입니다. - RHEL에서는 procps라는 패키..

chanchan-father.tistory.com

 

네트워크 capacity 관련 파라미터

 

1. 리눅스 전체 파일 개수 제한
  - 부족시 : too many open files 에러 발생
  - 정보조회 : sysctl fs.file-max
  ※ 현재 열린 개수 : sysctl fs.file-nr
 
  - 임시 적용 : ulimit -SHn 값
  - 영구 적용 : /etc/security/limits.conf 수정
     > https://sysops.tistory.com/99
 

2. backlogs (네트워크 패킷 처리 큐량) 

  - In-Bound Queue 길이 증가
    > net.core.netdev_max_backlog : 각 네트워크 장치 별로 커널이 처리하도록 쌓아두는 Queue의 크기를 설정   
    > net.core.netdev_max_backlog 이 미정의되면 값이 1000 기본
    > 적용
       /etc/sysctl.conf 파일내
       net.core.netdev_max_backlog=30000
      
   - listen 값 변경 (accept를 기다리는 ESTABLISHED 상태 소켓 큐)
     기본값은 128
     > 적용
       /etc/sysctl.conf 파일 내
       net.core.somaxconn=1024
      
    - listen 값 변경 (SYN-RECEIVE 상태의 소켓)  
     > 적용
       /etc/sysctl.conf 파일 내
       net.ipv4.tcp_max_syn_backlog=1024
      

3. 사용할 수 있는 포트 RANGE
   - 확인 명령
     > sysctl net.ipv4.ip_local_port_range

   - 적용     
     /etc/sysctl.conf 파일 내
      net.ipv4.ip_local_port_range=1024 65535
     
4. 서버 메시지 큐 관련    
    - 확인 명령
      >    sysctl kernel.msgmax
 
    /etc/sysctl.conf 파일 내   
    - 하나의 프로세스에서 다른 프로세스로 보내질 수 있는 최대 메시지 사이즈 지정  (아래는 기본 크기)
   
    # 최대 메시지 큐의 크기를 지정하며 bytes 단위로 지정 (최대 65,536보다 작게 설정함)
    kernel.msgmax = 8192   
    

 

    # kernel.msgmni (자동할당되는 최대 메시지 큐)


    # 기본 메시지 큐의 최대 크기 (최대 메시지 큐의 크기보다 작거나 같아야 함)
    kernel.msgmnb = 16384   

 

 


clear
echo ""
echo "1. TCP Time Wait 상태를 유지하는 시간 변수 조회(기본 : 7200초)"
echo " > WEB,WAS 서버 기준 : 15"
echo ""

sysctl -a | grep net.ipv4.tcp_keepalive_intvl

echo ""
echo "2. Keep Alive가 끊어졌다고 판단하고 세션을 정리하는 동안 보낼 Ping-Pong 패킷 수(기본 :9)"
echo " > WEB,WAS 서버 기준 : 5"
echo ""

sysctl -a | grep net.ipv4.tcp_keepalive_probes

echo ""
echo "3. 세션이 끊어지지 않게 Keep Alive Time 설정 (기본 : 7200)"
echo " > WEB, WAS 서버 기준 : 30 / 데몬 서버는 연결되어야할 초 시간 기준으로 설정함."
echo ""

sysctl -a | grep net.ipv4.tcp_keepalive_time

echo ""
echo "4. 사용할 수 있는 포트 범위를 설정 "
echo " > WEB, WAS 서버 기준 : 1024 - 65000"
echo ""

sysctl -a | grep net.ipv4.ip_local_port_range

echo ""
echo "5. 각 네트워크 장치 별로 커널이 처리하도록 쌓아두는 Queue의 크기 설정 (기본 1000)"
echo " > WEB, WAS 서버 기준 : 2,500"
echo " ※ 일부 소켓 accept라고 오역되는 사이트가 존재함"
echo ""

sysctl -a | grep net.core.netdev_max_backlog

echo ""
echo "6. Accept를 기다리는 ESTABLISHED 상태 소켓 큐 (기본 128)"
echo " > 5번의 큐 크기의 1/30 정도의 크기를 할당함"
echo ""

sysctl -a | grep net.core.somaxconn

echo ""
echo "7. SYN-RECEIVE 상태의 소켓 큐(기본 128)"
echo " > 5번의 큐 크기의 1/30 정도의 크기를 할당함"
echo ""

sysctl -a | grep net.ipv4.tcp_max_syn_backlog

echo ""
echo "8. TCP 연결 문제시 재시도하는 횟수"
echo " > WEB, WAS 서버 기준 : 3"
echo ""

sysctl -a | grep net.ipv4.tcp_retries1

echo ""
echo "9. TCP 연결 끊기전에 재시도하는 횟수 "
echo " > WEB, WAS 서버 기준 : 3"
echo ""

sysctl -a | grep net.ipv4.tcp_retries2

echo ""
echo "10. TCP 수신 버퍼의 최대값 설정 "
echo " > WEB, WAS 서버 기준 : 56777216"
echo ""

sysctl -a | grep net.core.rmem_max

echo ""
echo "11. TCP 수신 버퍼크기 기본값 설정"
echo " > WEB, WAS 서버 기준 : 16777216"
echo ""

sysctl -a | grep net.core.rmem_default

echo ""
echo "12. TCP 전송 버퍼크기 최대값 설정"
echo " > WEB, WAS 서버 기준 : 56777216"
echo ""

sysctl -a | grep net.core.wmem_max

echo ""
echo "13. TCP 전송 버퍼크기 기본값 설정"
echo " > WEB, WAS 서버 기준 : 16777216"
echo ""

sysctl -a | grep net.core.wmem_default

echo ""
echo "14. 65Kb 이상의 큰 TCP 윈도우 스케일링 사용"
echo " > WEB, WAS 서버 기준 : 1 "
echo ""

sysctl -a | grep net.ipv4.tcp_window_scaling

echo ""
echo "15. 서버 측에서 닫은 TCP 연결을 끊기 전에 확인하는 횟수(기본값 7 RTO)"
echo " > WEB, WAS 서버 기준 : 0"
echo ""

sysctl -a | grep net.ipv4.tcp_orphan_retries

echo ""
echo "16. SYNC 패킷을 전송 후 일부 ACK를 받지 못했을 때 선택적으로 ACK 패킷을 받도록 설정(0 : 받지않음, 1: 패킷유실 많은 사이트)"
echo " > WEB, WAS 서버 기준 : 0"
echo ""

sysctl -a | grep net.ipv4.tcp_sack

echo ""
echo "17. TCP 연결 해제 시간 (기본 : 60초)"
echo " > WEB, WAS 서버 기준 : 15"
echo ""

sysctl -a | grep net.ipv4.tcp_fin_timeout

echo ""
반응형
반응형

메인 안내 페이지

 

https://developers.google.com/web/tools/chrome-devtools

 

Chrome DevTools  |  Tools for Web Developers  |  Google Developers

Option 1

developers.google.com


하나씩 개발도구 및 CSS 설정들을 보며 따라해 보기

 

https://developers.google.com/web/tools/chrome-devtools/css

 

Get Started With Viewing And Changing CSS  |  Tools for Web Developers

Learn how to use Chrome DevTools to view and change a page's CSS.

developers.google.com

 

 

반응형

+ Recent posts