'Linux'에 해당되는 글 4건

  1. 2008.10.23 Too many open files 에러 by 지영아빠
  2. 2008.10.22 Linux NFS 설정 방법 by 지영아빠
  3. 2008.10.21 RedHat Linux 계열 NTP로 시간 맞추기 by 지영아빠
  4. 2007.08.01 적응 by 지영아빠
다음과 같은 예외 메시지를 발생시킵니다. 소켓과 파일에서 이런 문제가 발생할 수 있습니다.

예외 1
java.net.SocketException: Too many open files

at java.net.PlainSocketImpl.accept(Compiled Code)
at java.net.ServerSocket.implAccept(Compiled Code)
at java.net.ServerSocket.accept(Compiled Code)
at weblogic.t3.srvr.ListenThread.run(Compiled Code)

예외 2

java.io.IOException: Too many open files

at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(UNIXProcess.java:54)
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(UNIXProcess.java:54)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:551)
at java.lang.Runtime.exec(Runtime.java:477)
at java.lang.Runtime.exec(Runtime.java:443)
...

첫 번째 예외는 오류가 TCP 프로토콜에 영향을 주는 경우에 발생하며 두 번째 예외는 오류가 I/O 동작에 영향을 주는 경우 발생합니다.

두 경우 모두 서버 차단(blocking) 문제를 유발합니다. 아래에서 설명하는 방법으로 문제를 파악하여 해결할 수 있습니다.

Unix와 Linux에서는 스트림을 File로서 처리합니다. 이것은 OS에서 사용할 수 있는 파일디스크립터(fd)의 갯수를 지정하는데, 이것이 작을때 발생합니다.

우선, 엔진에 문제가 없는지 확인합니다. 파일(소켓)을 연 상태에서 닫은게 없는지 확인하고 이상이 없다면, 시스템의 fd의 설정을 확인합니다.

저희는 Unix와 Linux를 주로 사용하기에 이 경우에는 ulimit명령으로 간단히 확인할 수 있습니다. ulimit -a 하면 모든 설정이 나오게 됩니다.

 core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 48743
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 48743
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


Unix 및 Linux에 모두 파일 디스크립터가 있습니다.  주요한 차이점은 hard limit의 설정, 디폴트값 및 파일 디스크립터의 구성 절차에 있습니다.

Solaris
/usr/bin/ulimit유틸리티를 사용하여 단일 프로세스에 할당하는 파일 디스크립터의 개수를 정의합니다.  최대값은 rlim_fd_max로 정의되며 기본적으로 65,536으로 설정됩니다.  루트 사용자만이 이 커널 값을 수정할 수 있습니다.

Linux

관리자는 다음 예와 같이 etc/security/limits.conf 구성 파일에 파일 디스크립터 제한을 설정할 수 있습니다.
soft nofile 1024
hard nofile 4096

다음 세 행을 /etc/rc.d/rc.local 시작 스크립트에 추가하여 시스템 전체의 파일 디스크립터 제한을 설정할 수도 있습니다.

# Increase system-wide file descriptor limit.
echo 4096 > /proc/sys/fs/file-max
echo 16384 > /proc/sys/fs/inode-max

Windows
파일 디스크립터는 Windows OS에서는 파일 핸들이라고 합니다.  Windows 2000 서버의 경우 열린 파일 핸들 제한은 16,384로 설정되어 있습니다.  이 값은 작업 관리자 성능 요약에서 확인할 수 있습니다.

HP-UX
nfile 을 사용하여 열린 파일의 최대 개수를 정의할 수 있습니다.  이 값은 대개 다음 공식으로 결정됩니다. ((NPROC*2)+1000) 여기서 NPROC는 대개 ((MAXUSERS*5)+64)입니다.  MAXUSERS가 400인 경우 계산 결과는 5128입니다.  대개 이 값을 더 높게 설정합니다.  maxfiles는 프로세스별 소프트 파일 제한이고 maxfiles_lim은 프로세스별 하드 파일 제한입니다.

AIX
파일 디스크립터 제한은 /etc/security/limits파일에 설정되어 있으며 기본값은 2000입니다.  이 제한은 ulimit명령 또는 setrlimit 함수로 변경할 수 있습니다.  최대 크기는 OPEN_MAX 상수로 정의합니다.



*참고*
Too many open files - BEA

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 지영아빠
Linux NFS 설정 방법  

nfs는 원격으로 다른 컴퓨터의 디렉토리를 액세스 하는데 사용된다.


설정 파일 편집
/etc/exports 파일을 편집한다.
/home/cky *(rw,no_root_squash)
이런 식으로 적어준 디렉토리는 nfs로 마운트 할 수 있다.


nfsd 재시작
# /etc/init.d/nfs restart
설정 파일을 편집한 후에는 nfsd를 재시작 하거나 mountfs커맨드를 실행시켜준다.
# exportfs -a
# exportfs /home/cky 192.168.10.0/255.255.255.0


nfs 연결
다른 컴퓨터에서 설정해 놓은 컴퓨터의 디렉토리를 연결하려면 아래와 같이 한다.
# mount -t nfs ip address:/home/cky /mnt/nfs
mnt/nfs에 다른 컴퓨터의 /home/cky가 마운트된다.


서버의 nfs 설정 확인
특정 호스트에 nfs로 연결할 수 있는 디렉토리 정보를 알아볼 수 있다.
다음과 같이 한다.

$ showmount -e localhost
Export list for localhost: /home/cky 192.168.10.0/255.255.255.0


기타

공유하는 시스템 간의 계정의 아이디가 같아야 됩니다.

예를 들어 두 시스템에 test라는 계정이 있으면 아이디 값이 한 시스템에서는 600이고 한 시스템에서는 700인 경우 아이디 숫자값으로 비교를 하기 때문에

서로 다른 아이디가 되어서 권한을 제대로 적용하기가 힘듭니다.

./etc/passwd 등을 수정하고 chown을 실행해서 아이디 숫자값을 맞추고 적용하시기 바랍니다.



*참고*
http://secrice.com/writing/2005/02/20/nfs+BCB3C1A4_1108892367.php

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 지영아빠

Using ntp with Red Hat Linux/Fedora Core

Here are the steps to configure Network Time Protocol (ntp) with Red Hat Linux/Fedora Core.

1. Select time servers. I recommend using three ntp servers from pool.ntp.org; you may specify your country code when selecting servers from the ntp pool for the most accurate results. Please see http://www.pool.ntp.org/ for more information.

2. Edit /etc/ntp.conf and add the time servers in the "OUR TIMESERVERS" section. In this example, I am using the three timeservers 0.us.pool.ntp.org, 1.us.pool.ntp.org, and 2.us.pool.ntp.org.

vi /etc/ntp.conf
/OUR TIMESERVERS

Add:
restrict 0.us.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 1.us.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 2.us.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org

3. Before starting the ntpd daemon, run ntpdate to synchronize your clock with a time server. ntpd will not synchronize your clock with a time server if your system clock is significantly off NTP time.
ntpdate -u 0.us.pool.ntp.org

As an alternative, you can add your time servers to /etc/ntp/step-tickers. You do not need to manually run ntpdate to synchronize your clock as ntpd will query these time servers if your clock is significantly off NTP time.

4. Configure ntpd to start with the next system boot.
/sbin/chkconfig ntpd on

5. Start the ntpd daemon immediately.
/sbin/service ntpd start

The graphical user interface utility redhat-config-date (Red Hat Linux) or system-config-date (Fedora Core) may also be used to administer NTP.

Back to brandonhutchinson.com.

Last modified: 07/18/2005

출처: http://www.brandonhutchinson.com/Using_ntp_with_Red_Hat_Linux.html



신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 지영아빠

적응

회사생활 : 2007.08.01 21:51
이제 이곳에 온지도 3주가 흘렀습니다.

제게 도전의 기회가 주어졌을때 저는 과감히 도전을 선택했습니다.
저에게 있어서 큰 변화라면 Client 개발자에서 미들웨어 개발자로의 변신입니다.
언어도 Visual C++에서 Java로 변했습니다.
서버 솔루션 개발은 저에게 새롭고 신기한 경험으로 다가오고 있습니다.

이곳은 아키텍쳐를 매우 중시하는 것을 볼 수 있었습니다.
그도 그럴것이 처음에 아키텍쳐를 단단하게 잡지 못하면 나중에 문제가 되는 사항이 있기에,
이곳에서는 처음부터 아키텍쳐간의 장단점을 비교하면서 의사결정을 합니다.

구성원들 모두가 해당아키텍쳐가 왜 나오게 되었는지 이해하면서 이것이 완료되었을 때,
개발을 진행하게 됩니다. 제가 온 3주동안, 첫주에 잡았던 아키텍쳐 방향이 집중회의에서 전격적으로 뒤바뀌게 되어 그 다음주 부터는 새로운 아키텍쳐에 대해서 토론하는 과정을 거쳐서 거의 마무리 되었습니다.

이제 남은 것은 실제로 테스트 코드를 작성하면서 나머지 설계를 마무리 짓고, 본격적인 코딩에 착수하는 것입니다. Output이 어떻게 나올지 사뭇 기대가 됩니다.

전 회사에서는 시간에 쫓기어 그렇게 하지 못했던 것 같습니다.
이곳의 생활은 제가 이제 껏 경험하지 못한 것을 한꺼번에 경험하게 합니다.

한꺼번에 많은 키워드들이 쏟아지다 보니 정신을 차리기 힘들 정도입니다.
요즘 들어 저와 관련된 키워드는 다음의 것들입니다.

Java, EJB, Beans, JMX, MBean, JNDI, XML, JAXB, RMI, SWT, GEF, EMF,
SOA, WSDL, SOAP, UDDI, ESB, EMB, SSO, IAM, BPM,
EClipse, subclipse, Ant, JUnit, Subversion, LOG4J, MINA,
MVS, Linux, Ubuntu, Fedora, bash, csh, Korn shell,
vim, VMWare, NAT, SecureCRT, WinSCP,
Regular Experession, RAC, Oracle, DB2, JDBC,
CONTROL-M, JES, SAS, syncsoft, FailOver, Step, Job, JCL, Activity, Human Activity,
RBAC, LDAP, Scheduler, Business Timer

이곳의 문화와 용어에 빨리 익숙해져야 하겠습니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'회사생활' 카테고리의 다른 글

적응2  (0) 2007.10.10
교육  (1) 2007.08.09
적응  (0) 2007.08.01
첫 출근  (2) 2007.07.09
위즈맥스를 떠나며..  (0) 2007.07.07
좋은회사 나쁜회사 구분하는 법  (0) 2007.06.14
Posted by 지영아빠

티스토리 툴바