반응형
반응형
반응형

java encoding 순서

System.out.println("file.encoding=" + System.getProperty("file.encoding"));
System.out.println("Charset.defaultCharset=" + Charset.defaultCharset());
System.out.println("InputStreamReader.getEncoding=" + new InputStreamReader(new FileInputStream("./PrintCharSets.java")).getEncoding());

 

1. jvm 옵션(OS 환경변수보다 최우선시 적용)

 - java -Dfile.encoding=euckr

2. env LC_ALL

- LC_ALL 이 설정되어 있으면 LC_CTYPE 값도 LC_ALL 값으로 덮어써진다.

3. env LC_CTYPE

- LC_ALL 이 설정 안되어 있으면 개별로 설정된 LC_CTYPE 적용.

4. env LANG

- LC_ALL 과 LC_CTYPE 이 설정되어 있지 않다면 LC_ALL 을 제외한 나머지 LC_* 값은 LANG 값으로 덮어써진다.

- 따라서, LC_CTYPE 은 LANG 값과 같아진다.

 

결국 linux 에서는 jvm 옵션을 설정하지 않으면 locale 명령어의 결과 중 LC_CTYPE 값이 적용된다고 보면 된다.

 

반응형

'프로그래밍 > Java' 카테고리의 다른 글

Java Stream 설명  (0) 2023.05.26
Stream reduce 간단 설명  (0) 2023.05.20
[JAVA] java.lang.UnsatisfiedLinkError: no net in java.library.path  (1) 2021.06.25
Too many open files  (2) 2021.06.14
환경변수 값 읽어오기.  (0) 2021.04.05
반응형

# 80 포트 추가
firewall-cmd --permanent --add-port=80/tcp

# 80 포트 삭제(참고)
firewall-cmd --permanent --remove-port=80/tcp


# 정책 재반영 및 방화벽 정책 확인
firewall-cmd --reload;firewall-cmd --list-all

반응형

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

CentOS 7 에서 PHP7.4 설치하기.  (1) 2021.06.28
[linux] 디스크 읽기/쓰기 속도  (0) 2021.06.14
프로세스 thread 갯수 확인  (0) 2019.10.31
rpm 사용법  (0) 2019.05.09
[링크] 파일 권한  (0) 2019.05.09
반응형

dd
디스크의 읽기/쓰기 속도를 측정.

옵션
 - if : 입력파일, of : 출력파일, count : 반복횟수, bs : 블럭 사이즈(Bytes, 한번에 읽고 쓸 최대 바이트 크기)


쓰기.
$ dd if=/dev/zero of=testout count=1000 bs=1024k
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.49477 s, 701 MB/s

testout에 0x00값으로 1024kb를 1000번 반복. 1GB 파일생성.




읽기.

$ dd if=testout of=/dev/zero bs=1024
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 7.69626 s, 136 MB/s

testout 파일을 1024 바이트로 읽었을 때 속도는 136MB/s

반응형

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

방화벽 설정  (0) 2021.06.29
CentOS 7 에서 PHP7.4 설치하기.  (1) 2021.06.28
프로세스 thread 갯수 확인  (0) 2019.10.31
rpm 사용법  (0) 2019.05.09
[링크] 파일 권한  (0) 2019.05.09
반응형

Too many open files

java.io.IOException: Too many open files
Operation timed outerverSocketChannelImpl.accept0(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
    at io.netty.util.internal.SocketUtils$5.run(SocketUtils.java:119)
    at io.netty.util.internal.SocketUtils$5.run(SocketUtils.java:116)
    at java.security.AccessController.doPrivileged(Native Method)
    at io.netty.util.internal.SocketUtils.accept(SocketUtils.java:116)
    at io.netty.channel.socket.nio.NioServerSocketChannel.doReadMessages(NioServerSocketChannel.java:147)
    at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:75)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:748)


FD(File Descriptor/open files) 수가 부족한 경우 발생.

FD 사용 개수 확인.
$ lsof -p [PID] | wc -l
$ lsof -u [UID] | wc -l


Network connetion 개수 확인
$ netstat -an | wc -l

 

FD(File Descriptor/open files)
 - 프로세스가 가질 수 있는 소켓 포함 파일 개수
 - Java에서 소켓 통신(HTTP API, JDBC 커넥션 등)은 open file 옵션을 따라간다.


User Limit 확인
$ ulimit -aS


Hard Limit 확인
$ ulimit -aH


JDK 내부 코드상에서 Hard Limit 값이 soft limit에 update.
 - Java 프로세스는 Hard Limit 까지 file open 가능.


https://www.oracle.com/java/technologies/javase/vmoptions-jsp.html
$ java -XX:+PrintFlagsFinal -version | grep MaxFDLimit
     bool MaxFDLimit                                = true                                {product}
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

MaxFDLimit 옵션이 true일 경우 setrlimit 으로 limit을 증가.


Limit 설정.
$ vi /etc/security/limits.conf
계정명 soft nofile 40960
계정명 hard nofile 40960

보통 soft limit과 hard limit을 같은 값으로 설정한다.





Java에서 동시에 생성 가능한 쓰레드 수는 max user processes를 따라간다.

ps 명령어로 스레드 생성 개수를 확인(-L 옵션 : Show threads, possibly with LWP and NLWP columns.)
$ ps -efL | grep java | grep -v grep | wc -l
UID PID PPID LWP C NLWP STIME TTY TIME CMD

- PPID : 부모 프로세스 ID
- LWP : LWP(Light Weight Process, is thread). 쓰레드 ID
- C : CPU 사용율
- NLWP : LWP(Number Light Weight Process). 해당 프로세스에서 동작하고 있는 쓰레드 개수.
- STIME : 프로세스 시작 시간
- TIME : 총 CPU 사용 시간

반응형

'프로그래밍 > Java' 카테고리의 다른 글

java file.encoding  (0) 2022.07.12
[JAVA] java.lang.UnsatisfiedLinkError: no net in java.library.path  (1) 2021.06.25
환경변수 값 읽어오기.  (0) 2021.04.05
[Spring Boot] log4jdbc 설정.  (1) 2020.01.16
Rabbit MQ 간단 사용.  (0) 2018.12.21
반응형

rpm 설치 확인.
옵션)
 -q : 질의시에 꼭 써야하는 옵션이다. 패키지를 찾으면 패키지이름과 버전만 표시한다.
 -i : 설치된 패키지의 정보를 보여준다. -p옵션과 사용하면 패키지 파일정보를 보여준다.
 -l : 패키지에 포함된 모든 파일을 보여준다. -p옵션과 함께 사용 가능. (--list)
 -p 파일명: 패키지의 파일에 대한 정보를 보여준다. 정확한 이름을 입력해야 한다.
 -a : 시스템에 설치된 모든 패키지목록을 보여준다. (--all)
 -f 파일명: 지정된 파일이 포함된 패키지를 출력한다.
 -c : 해당패키지의 설정파일이나 스크립트파일을 보여준다.
 -d : 해당패키지의 문서파일을 출력한다.
 -R : 어떤 패키지에 의존하고 있는지를 보여준다. (--requires)

예제)
# 설치된 패키지이름과 버전을 보여준다.
$ rpm -q mysql-community-server

# 패키지의 많은 정보를 보여준다.
$ rpm -qi mysql-community-server

# 현재 설치된 모든 패키지를 보여준다.
$ rpm -qa | grep mysql

# 설치되어 있는 경로를 보여준다.
$ rpm -ql mysql-community-server

# 파일을 사용하는(관련된) 패키지를 보여준다.
$ rpm -qf /etc/my.cnf

# 관련 문서파일을 보여준다.
$ rpm -qd mysql-community-server

# 의존하고 있는 패키지를 보여준다.
$ rpm -qR mysql-community-server

# 패키지가 설치되는 파일들을 보여준다.(정확한 파일 명을 적어야 한다.)
$ rpm -qlp /root/rpm/mysql/mysql-community-server-5.7.13-1.el7.x86_64.rpm



rpm 설치.
옵션)
 -i : 새로운 패키지를 설치할 때 사용한다.
 -U : 기존의 패키지를 새로운 버전의 패키지로 업그레이드할 때 사용하고 설치된 패키지가 없을 경우 패키지를 설치를 한다.
 -F : 이전 버전이 설치되어 있는 경우에만 설치한다.(--freshen)
 -v : 메시지를 자세히 보여준다.
 -h : '#'기호로 표시해 준다.
 --force : 기존에 설치된 패키지와 관계없이 강제로 설치 한다. 
 --nodeps : 의존성 관계를 무시하고 설치 한다.
 -vv : 메시지를 아주 자세히 보여준다.
 --oldpackage : 구버전으로 다운그레이드할 때 사용한다.
 --rebuilddb : 특정한 패키지 설치후에 rpm패키지로 검색했으나 나타나지 않을 때 rpm 데이터베이스를 업데이트한다.


예제)
# 새로운 패키지 설치
$ rpm -ivh mysql-community-server-5.7.13-1.el7.x86_64.rpm

# 업그레이드하거나 새로운 패키지 설치
$ rpm -Uvh mysql-community-server-5.7.13-1.el7.x86_64.rpm

# 이전 버전의 패키지가 있는 경우에만 패키지 설치
$ rpm -Fvh mysql-community-server-5.7.13-1.el7.x86_64.rpm



rpm 삭제.
옵션)
  -e : 설치된 패키지를 제거한다.
  --nodeps : 제거시 의존성을 무시한다.

예제)
# sendmail-devel-8.11.6-27.73 라는 rpm 패키지를 삭제 한다.
$ rpm -e sendmail-devel-8.11.6-27.73 

# 삭제시 의존성 에러 메세지로 삭제가 안될 경우 --nodeps를 붙이면 강제로 삭제를 하는데 주의를 요한다.
# 패키지에 의존성이 있더라도 무조건 제거한다.
$ rpm -e sendmail-devel-8.11.6-27.73 --nodeps



rpm 패키지 검사
 - 설치된 패키지 파일들을 검증한다. 보통 보안상 침입자에 의해 실행파일들이 권한획득을  위해 변조되는 경우가 있는데 이러한것을 찾아낼 때 유용하다.

옵션)
    -V : verify의 약자로 검증할때 쓰는 기본 옵션이다.
    -a : 모든 패키지를 검사한다.

예제)
# 패키지를 검사
$ rpm -V mysql-community-server
S.5....T.  c /etc/my.cnf

모든 패키지를 검사한다.
$ rpm -Va


RPM 검증코드)
 - 5 : MD5체크섬을 변경
 - S : 파일의크기를 변경
 - L : 심볼릭 링크를 변경
 - T : 파일의 수정일을 변경
 - D : 장치파일을 변경
 - U : 파일사용자/소유자가 변경
 - G : 파일 그룹이 변경
 - M : 파일모드(권한과 파일형태)가 변경
 - ? : 원인을 알 수 없거나 예측하지 못한 결과인 경우

반응형

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

[linux] 디스크 읽기/쓰기 속도  (0) 2021.06.14
프로세스 thread 갯수 확인  (0) 2019.10.31
[링크] 파일 권한  (0) 2019.05.09
tcpdump  (2) 2019.02.11
crontab  (0) 2018.09.12
반응형

 

# 다운로드.

http://www.phpmyadmin.net/home_page/downloads.php

 

# wget 을 이용해서 다운로드 방법.
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.5.4/phpMyAdmin-3.5.4-all-languages.tar.gz

 

# 압축 해제.
tar xvfz phpMyAdmin-3.5.4-all-languages.tar.gz

 

# 디렉토리 이름 변경.
mv phpMyAdmin-3.5.4-all-languages phpMyAdmin

 

# config 파일 수정.
cd phpMyAdmin

vi config.sample.inc.php
 - $cfg['blowfish_secret'] = '쿠키명'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

 

mv config.sample.inc.php config.inc.php

 

반응형

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

탭 자동완성 설정.  (1) 2013.11.14
[Cent OS] mysql 설치.  (0) 2013.08.16
32bit / 64bit 인지 확인.  (1) 2012.11.26
root 로 ssh 로그인 막기.  (0) 2012.02.13
[쉘프로그래밍] 파일명 또는 확장자 일괄 변경  (1) 2011.12.22
반응형
cat /proc/cpuinfo
cat /proc/meminfo
반응형

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

일주일 이전 파일 지우기  (0) 2011.03.05
[solaris] 서버정보 확인 명령어  (0) 2011.01.31
[link] ln -s  (0) 2010.01.22
ssh 로그인  (0) 2009.12.16
SSH 터널링으로 사설망 리눅스 PC 접속하기  (0) 2009.12.16

+ Recent posts