본문 바로가기

Server | Network48

동시접속 C10K SOCKET C10K = Concurrent(동시접속 1만명) 기법 select (max1024) => poll(max1024) => IOCP(MS-Windows 사실상 무제한) => LINUX(EPoll:Event Poll) => AIX(AIO) => 순서로 발전,적은 서버로 기존30~40대 커버가능 => 소스코드 빌드,릴리즈 플랫폼 => 클라우드서비스로 AWS,GCP 나혼자 꼰대처럼 (옛날 8090 처럼 부사수,사수처럼,잘 안갈켜주고) 그런시대는 지났고 올리고보니 (꼰대처럼 일부러 0바이트 소스코드 올린게 아닌데 필터링된것) 있어서, 다시 zip(집) 묶어서 올립니다. \ 2024. 4. 8.
메세지 브로커(MQ) 이기종간,동기종간 메세지 브로커 변천사 턱시도=>랑데뷰=>오픈소스(토끼MQ) => ZeroMQ =>?? 2024. 4. 8.
Slowly RabbitMQ shutdown 이 너무 느릴때 해결방법 a stop job is running for rabbitmq messaging server 1986 ls /etc/systemd/system/rabbitmq-server.service.d 1987 ls /etc/systemd/system 1988 mkdir /etc/systemd/system/rabbitmq-server.service.d 1989 vi /etc/systemd/system/rabbitmq-server.service.d/limits.conf 1990 nano /etc/systemd/system/rabbitmq-server.service.d/limits.conf edit file # To override LimitNOFILE, create the following file: # # /etc/.. 2020. 2. 26.
네트워크 모니터링 (snmp,syslog,usercmd logging and watch) 자체개발 서버 및 장비 모니터링 솔루션입니다. 특징: 서버기본정보(cpu/mem/disk/network traffic, system log, process monitoring, *사용자별 명령어 감시 기능-장애발생시 외주업체 및 관련담당자 신속 대처) 본 프로그램이 사용하는 cpu 자원률 : 0.2%~1% 문의사항: 댓글 및 메일문의(durumul@gmail.com) #============================================================================== #NMSWD(Network Monitoring Management Server Watch Daemon) Configuration File #---------------------------------.. 2015. 1. 8.
서버 명령어 모니터링 ^^;; 2014. 11. 9.
[Linux] CentOS 에서의 BusyBox 빌드하기 git clone git://busybox.net/busybox.git 빌드방법 make oldconfig 또는 menuconfig 실행 => ./config에 빌드환경이 저장된다.(수작업으로 향후 필요없는 것은 삭제 또는 n 으로 변경하면 된다) make busybox 생성(단 rawsocket 를 건드리는 부분은 root 권한이 필요하다) CentOS 에서의 빌드 오류 대처 커널: 2.6.18-371.el5 버전:busybox-1.22.1 커널 2.6.23 이하에서는 networking/libiproute 에서 빌드오류가 발생한다. (우분투 3.13.0-32-generic 에서는 문제없음) 1. IPLINK 관련 오류시 networking/libiproute/iplink.c 를 열어 다음과 같이 편집.. 2014. 9. 15.
[우분투] vsftpd 530 error after 12.04 Update 우분투 서버 업데이트 이후로 vsftpd 2.3.5 로그인 실패 현상 vi /etc/vsftpd.conf # This string is the name of the PAM service vsftpd will use. #pam_service_name=vsftpd pam_service_name=ftp 정보 출처: http://ubuntu.windows8az.com/137390-vsftpd-configuration-problems-with-1204 2013. 5. 2.
64bit Toad Setting DB2에도 응용해서 적용해 볼까 ㅡㅡ http://madrax.egloos.com/5122457http://likebnb.tistory.com/79 2012. 10. 29.
SVN의 차세대 분산형 버전관리 시스템 Git Guide 부지런한 눈팅은 TOP으로 가는 지름길,아래 남형님,트렌드21세기님 블로그로 이동 합니다. http://khmirage.tistory.com/309http://trend21c.tistory.com/1430 2012. 10. 29.
[Tip] UNIX에서 밀리초(Miliseconds) 차이 구하는 방법 윈도우에는 컴퓨터 부팅이후의 시간단위를 알수있는 GetTickCount() 라는 편리한 함수가 있죠.BSD계열의 UNIX에서는 조금더 계산해 주어야 합니다.아래코드를 참조하세요.. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 /*KRKIM.NET Sample for Miliseconds Timeout : a part of DURUEDIT source code*/int ClientSocket.. 2012. 10. 26.
nginx 분석완료 AIX에서 NGINX 컴파일 빌드후 심심해서 결론 남김. Thread Pool * max_clients = 최대 동시접속자 수 기본이 Process pool 에 Thread pool 포함 이벤트 기반인데 쓰레드나 Fork 된 (spawn) Process 하나로 c10k 커버되는 select,poll,RTS,EPOLL,Kqueue 소켓모델을적용시스템의 최적 모델을 선택하여 configure 된다. 1대1 멀티플렉싱 모델 에서 요즘은 이벤트 기반 쓰레드나 프로세스가 1대 N으로 소켓관리 하는 구조가 대용량 고성능 서버의 핵심이다. 그래도 아직까진 NT의 IOCP가 시장을 장악했다. 예전처럼 쓰레드 과다 방식은 2004년 이후로 이제 한물갔다. 공부해서 남주남(친구이름)..ㅋ 2012. 9. 26.
소켓 종료와 TIME_WAIT(Socket termination and TIME_WAIT) 출처] 나의 다른 블로그(http://durumul.blogspot.kr/2009/07/timewaitsocket-termination-and-timewait.html)2009년 7월 5일 일요일소켓 종료와 TIME_WAIT(Socket termination and TIME_WAIT)시간: 오전 8:32 작성자: kkrrrrrrrrrrr 소켓 종료와 TIME_WAIT(Socket termination and TIME_WAIT) 진리는어디에 2007/03/19 20:22 오늘은 소켓의 종료와 그에 따라 발생하는 소켓의 상태 변화에 대해 알아 보도록 하겠다. 먼저 소켓은 생성될 때는 3-way hand shaking을 통해서 생성되지만, 종료 될때는 한단계 더 많은 4-way hand shaking을 거쳐 .. 2012. 7. 19.
DB2 관련 IBM DB2 관련 DB2CODEPAGE 설정에 대하여 http://database.sarang.net/?criteria=db2 http://kdug.co.kr/index.php?pgname=home/qna&brcode=qna&mode=VV&wrno=1042 http://www.kdug.kr/index.php?pgname=home/qna&brcode=qna&mode=VV&wrno=1019&page=32 2012. 5. 23.
[Tip]SVN Keyword 자동 등록 unix/linux 계정홈의 ./subversion/config MS 윈도우즈 Windows7 / Vista 이상: C:\Users\[My Account]\AppData\Roaming\Subversion\Config(자세히는 더 안알아 봤지만 WOW 정책에 의거 설치여건(BIT)에 따라 Roaming이 아닐수 있음) XP 이하: C:\Documents and Settings\[My Account]\Application Data\Subversion\config [auto-props]### The format of the entries is:### file-name-pattern = propname[=value][;propname[=value]...]### The file-name-pattern can co.. 2012. 5. 9.
APACHE /VAR/WWW 임시 PERMISSION usermod -a -G admin user1 usermod -a -G admin user2 chown -R www-data:admin /var/www chmod -R 775 /var/www To Release,Rollback to chmod -R 755 /var/www chown -R www-data:www-data /var/www or chown -R root:root /var/www (system default) 2011. 12. 5.
SSH Port 포트 변경 548 cp services services.org 549 vi services 550 ps -ef | grep inetd 551 cd ssh 552 ls 553 cp sshd_config sshd_config.org 554 vi sshd_config # Port 22 를 변경하고 재시작 555 /etc/init.d/ssh restart 556 service ssh restart 557 netstat -ntl tcp 0 0 0.0.0.0:30022 0.0.0.0:* LISTEN tcp6 0 0 :::30022 :::* LISTEN 자세한 교육은 아래 참고하심 됩니다. http://www.ilinuxbay.com/contentChannel/articlePrint.php?scol_serial=2200 2011. 11. 25.
SVN 설치 및 저장소 설정,세팅 작업 결과 과정 정리 백업임)) SVN 설치 root@fgs:/etc# sudo apt-get install subversion libapache2-svn Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libneon27-gnutls libsvn1 Suggested packages: db4.8-util subversion-tools The following NEW packages will be installed: libapache2-svn libneon27-gnutls libsvn1 subversion 0 up.. 2011. 11. 16.
adduser 새유저에 sudo 권한 주기 새유저 : skshin 인 경우,admin 그룹에 추가하여 sudo 권한을 준다. root@fgs:~# cat /etc/group |grep sudo sudo:x:27: root@fgs:~# sudo usermod -a -G admin skshin root@fgs:~# cat /etc/group |grep skshin admin:x:120:krkim,skshin skshin:x:1001: root@fgs:~# cat /etc/group |grep krkim adm:x:4:krkim dialout:x:20:krkim cdrom:x:24:krkim plugdev:x:46:krkim sambashare:x:114:krkim krkim:x:1000: lpadmin:x:119:krkim admin:x:120:kr.. 2011. 11. 16.
OCKILL Error Log LU DEV NAME UNAME LC PID ST SS LS TG HTLK BRKT SNSQ RNSQ 2 3278-2 LTY0ZA TNE.0004 4 0 00 A A LU 0000 BETB 00000 00000 3 3278-2 LTY0ZB 0 0 00 A I SS 0000 BETB 00000 00000 4 3278-2 LTY0ZC TNE.0006 6 0 00 A A LU 0000 BETB 00000 00000 5 PRT LPY0Z1 TNE.0003 3 0 00 A A LU 0000 BETB 00000 00000 # ockill 192.168.99.101 23 quality lu LTY0ZA [12:43:48] RECV (Size=3) 0000: FFFD2800 00000000 00000000 000000.. 2011. 10. 5.
[BackUp] Find Command In UNIX find . -name *.h |xargs grep 'bzero' find . -type f -print | xargs grep -i "bzero" /dev/null find . -type f -print | xargs grep -i "naccept" /dev/null find 명령어는 파일 시스템에서 주어진 조건으로 파일을 찾는다. 사용법을 살펴보자. find 대상디렉토리 검색 조건 처리 방법 대상 디렉토리 : 찾기를 시작할 디렉토리를 지정한다. 검색 조건 : 찾을 조건을 지정한다. -name filename 파일 이름으로 찾는다. -atime +n access time 이 n일 이전인 파일을 찾는다. -atime -n access time이 n일 이내인 파일을 찾는다. -mtime +n n일 이전에 .. 2011. 10. 5.
[BackUp] crontab 등록방법 국가행정기관등 인터넷 / 개인 pc 사용이 안되는 인트라넷 방화벽 내부망 보안환경에서 오랜만에 UNIX 명령 사용시 기억이 가물할때 스맛폰으로 접속 조회하기 위해 백업...^^ crontab 이란? 서버 스스로 정해둔 명령을 일정 기간마다 실행하도록 하는 것입니다. 사용형식 crontab [ -u 사용자 id] 파일 crontab [-u 사용자 id] { -l | -r | -e} # crontab -l : 예약된 작업리스트 # crontab -e : 예약된 작업 수정 # crontab -r : 예약된 작업 삭제 cron 실행 확인 # ps -ef | grep crond cron 시작 # /etc/init.d/cron start{restart | stop} 일반사용자에게 crontab 명령어 사용하도록 설.. 2011. 10. 5.
[Tip] AIX ThreadSafe Socket //Tip 창고 대방출 // thread safe option gcc또는 g++ 사용시 thread safe 함수를 사용하도록 하는 define -D_REENTRANT -D_PTHREADS _POSIX_REENTRANT_FUNCTIONS _POSIX_THREADS // errno가 thread환경에서 설정됨. _THREAD_SAFE // BSD socket을 사용하는 경우 _BSD // 링크시 -lbsd socket 사용하는 경우 BSD SOCKET을 사용하는 COMPAT_43 이라는 변수가 define이 정의해야함. !!! #ifdef _AIX #define _BSD 1 #endif // _AIX libbsd.a를 링크해야함. written by krkim (http://krkim.net) 2011. 10. 5.
Error: 2014 (CR_COMMANDS_OUT_OF_SYNC) with SELECT command 당연한 얘기지만 결과셋이 존재할지 모르는 SELECT 는 단순히 mysql_real_query() 혹은 mysql_query() 만 호출하고 끝나서는 안된다. 하지만,당연한 것을 당연하지 않게 구현된 상용 서버 어플리케이션의 주먹구구식의 허접소스의 경우가 있다니 놀라울 따름이다.., 1 2 3 4 5 6 7 8 9 10 if(mysql_query("SELECT ~~")) { //No Data 처리 mysql_query("또다른 SELECT 1 ~~") } else{ mysql_query("또다른 SELECT 2 ~~") } 처럼 No Data 처리를 하고 있으니 말이다. 이럴 경우 No Data 를 판별하는 것도 틀렸지만 특히 다음 쿼리시 위 CR_COMMANDS_OUT_OF_SYNC "Commands .. 2011. 2. 15.
EPOLL (EPOLLIN | EPOLLOUT | EPOLLET |EPOLLONESHOT) 고성능 소켓서버 실무 서버구현 저번에 예고한(?) 대로 대충,EPOLL로 윈도우즈의 IOCP 와 거의 비슷한 구조로 이벤트 기반 소켓을 구현하였으며, 여기에 DB POOL,또 클라이언트 요청업무(비즈니스로직)를 담당할 Worker Thread Pool,패킷 구분을 위한 Tokenizer,MYSQL을 이용하기 위한 인터페이스 Class 인 MySQLDB(윈도우즈에서 메신저 서버에서 사용하던 것을 뮤텍스 추가하여 코드 재활용),트레이스 로그,conf 환경설정 읽기,EPOLL은 IN,OUT(Incomming,Outgoing) 데이타를 모두 이벤트로 처리하였으며, Outgoing시에는 단일버퍼 큐에 모두 쌓아놓고 무조건 꺼내서 읽는것이 아니라,패킷 구조상 끊어서 보내야 하기 때문에, 좀더 구조적으로 하기위해 PostSend()에서 .. 2011. 2. 12.
큐브리드 SQL 온라인 메뉴얼 http://www.cubrid.com/online_manual/cubrid_830/index.htm#syntax/syntax_retreive_select.htm 2011. 2. 9.
Man for Pthread: Basic Routines Pthread: Basic Routines Function: pthread_create()#include int pthread_create(pthread_t * thread, const pthread_attr_t * attr, void * (*start_routine)(void *), void * arg); The pthread_create() routine creates a new thread within a process. The new thread starts in the start routine start_routine which has a start argument arg. The new thread has attributes specified with attr, or default attrib.. 2011. 2. 8.
예전의 CGI 방식의 서버 프로그램 C 예제소스 지금이야 JSP,ASP,PHP,파이션 및 기타 여러가지 서버 프로그래밍 방식의 플랫폼이 주어져서 작업이 편했지만, (물론 모두다 C에서 야기된 산출물 이지만) 아무것도 없던 예전엔 Low Level에서 모두 프로그래밍 해줬던 것이 기억난다. 여기저기 뒤적거리다 예전 자료를 발견해서 올려봄.. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 .. 2011. 1. 27.
네트워크 소켓프로그래밍 일반(Network Socket Programming Guide) (예전에 정리해 놓은것 하드 뒤적거리다가 발견해서 올림) ___________________________________________________________________ 네트워크 소켓프로그래밍 일반(Network Socket Programming Guide) ___________________________________________________________________ ------------------------------------------------------------------- [!] BSD계열의 Internet 프로토콜을 기반으로 한내용이다. 소켓을 구현하고자하는 Process는 동작 형태에 따라서 Server,Client로 뷴류되고 프로토콜 형태에 따라서 연결지향인 TCP.. 2011. 1. 27.
네크워크 개념(Conception of Network) ------------------------------------------------------------------- 네크워크 개념(Conception of Network) ------------------------------------------------------------------- LAN(Local AreaNetwork) - 건물내 또는 수km이내 지역의 망. Ethernet,Token ring WAN(Wide Area Network) - LHN(Long Haul Network)으로 도시,국가사이의 연결망. MAN(Metropolitan Area Network) - LAN,WAN의 사이에위치 도시전체영역 연결망. Repeater - 서로다른 네트워크 연결망 사이에서 전기적 신호 증폭,복제.. 2011. 1. 27.
Daemon Process 작성시 주의사항 make >make.out 2>&1 & ---------------------------------------------------------------------------- Daemon Process 작성시 주의사항 ---------------------------------------------------------------------------- Process Table Structure +--------------------------+ |+ p_pid: | | kernel이할당 | | +-------------+ | | | | | | +-------------+ | |+ p_pgrp: | | setpgrp()로 할당가능 | | +-------------+ | | | | | | +-------.. 2011. 1. 27.