Study/Mssql2008. 4. 22. 13:12

1. 서버에 연결된 사용자 찾기

다음 예에서는 서버에 연결되는 사용자를 찾고 각 사용자에 대한 세션 수를 반환합니다.

SELECT login_name ,COUNT(session_id) AS session_count 
FROM sys.dm_exec_sessions 
GROUP BY login_name;

2. 장기 실행 커서 찾기

다음 예에서는 지정한 시간을 초과하여 열려 있는 커서, 해당 커서를 만든 사람 및 해당 커서가 있는 세션을 찾습니다.

USE master;
GO
SELECT creation_time ,cursor_id 
    ,name ,c.session_id ,login_name 
FROM sys.dm_exec_cursors(0) AS c 
JOIN sys.dm_exec_sessions AS s 
   ON c.session_id = s.session_id 
WHERE DATEDIFF(mi, c.creation_time, GETDATE()) > 5;

3. 열려 있는 트랜잭션이 있는 유휴 세션 찾기

다음 예에서는 열려 있는 트랜잭션이 있는 유휴 세션을 찾습니다. 유휴 세션은 현재 실행되고 있는 요청이 없는 세션입니다.

SELECT s.* 
FROM sys.dm_exec_sessions AS s
WHERE EXISTS 
    (
    SELECT * 
    FROM sys.dm_tran_session_transactions AS t
    WHERE t.session_id = s.session_id
    )
    AND NOT EXISTS 
    (
    SELECT * 
    FROM sys.dm_exec_requests AS r
    WHERE r.session_id = s.session_id
    );
Posted by 영혼도둑
ITWorld2008. 2. 11. 11:22
한국인터넷진흥원(NIDA) 회원ISP별 보유 IP주소 현황

http://online.nic.or.kr/link/ISPAllocation.jsp



가끔씩 이 IP는 어디 ISP꺼지? 라구 의문이 생길때가 있다...

물론 whois를 통해서 검색해도 되지만...

깔꿈하게 정리되어 있는 싸이트가 있다....


외국의 경우

http://www.maxmind.com 에서 배포하고 있는 GeoIP가 있당...

Posted by 영혼도둑
Study/Windog2008. 1. 22. 18:27
from http://serious-code.net/moin.cgi/WindowsPerformanceMonitoring

3 각종 병목 현상과 관련이 있는 카운터들

    각종 병목 현상과 관련 있는 카운터에 대한 정보는 [WWW]Bottleneck-Detection Counters 페이지를 참고하기 바란다.

    3.1 메모리 관련 병목

      Counter Description
      \Memory\Page Faults/sec 초당 페이지 폴트 발생 횟수. 하드 폴트 및 소프트 폴트 모두를 포함한다.
      \Memory\Page Reads/sec 하드 폴트를 해결하기 위해 디스크를 읽어들이는 횟수.
      \Memory\Page Writes/sec 페이지 아웃을 위해 디스크에다 쓰는 횟수.
      \Memory\Pages Input/sec 하드 폴트를 해결하기 위해 디스크를 읽어들이는 횟수.
      \Memory\Pages Output/sec 페이지 아웃을 위해 디스크에다 쓰는 횟수.
      \Memory\Available Bytes 메모리 여유분.
      \Memory\Pool Nonpaged Bytes 전체 프로세스에 대한 Nopaged Pool에서의 할당량. 즉 Process(_Total )\ Pool Nonpaged Bytes의 양과 같다.
      \Process\Page Faults/sec 해당 프로세스 내의 스레드에 의해 일어나는 초당 페이지 폴트의 횟수.
      \Process\Working Set 해당 프로세스의 워킹 셋의 크기.
      \Process\Private Bytes 현재 해당 프로세스만 사용할 수 있도록 할당된 메모리.
      \Process\Page File Bytes 해당 프로세스가 사용하고 있는 페이징 파일의 크기.

    3.2 CPU 관련 병목

      Counter Description
      \Processor\% Processor Time 애플리케이션 또는 운영체제 관련 프로세스를 실행하는 데 들어간 시간의 비율. 즉 IDLE 상태의 반대.
      \System\% Total Processor Time
      \System\Processor Queue Length 프로세서 큐에 들어가 있는 스레드의 갯수. 이 큐에 들어가있는 있는 스레드는 모두 ready 상태다. 즉 이 큐가 길어진다는 말은 스레드가 CPU에 비해 너무 많다는 말이다.
      \Process\% Privileged Time 간단히 말해 해당 프로세스가 시스템 콜에 사용한 시간의 비율.
      \Process\% Processor Time 해당 프로세스가 자신의 코드를 실행하는데 사용한 시간의 비율.
      \Process\% User Time 해당 프로세스가 User Mode에서 동작한 시간의 비율. 즉 시스템 콜을 제외하고, 자신의 코드를 실행하는데 사용한 시간의 비율.
      \Process\Priority Base 해당 프로세스의 우선 순위.
      \Thread\% Privileged Time 간단히 말해 해당 스레드가 시스템 콜에 사용한 시간의 비율.
      \Thread\% Processor Time 해당 스레드가 자신의 코드를 실행하는데 사용한 시간의 비율.
      \Thread\% User Time 해당 스레드가 User Mode에서 동작한 시간의 비율. 즉 시스템 콜을 제외하고, 자신의 코드를 실행하는데 사용한 시간의 비율.
      \Thread\Context Switches/sec 해당 스레드가 콘텍스트 스위칭을 일으킨 횟수.
      \Thread\Priority Base 스레드의 원래 우선 순위.
      \Thread\Priority Current 스레드의 현재 우선 순위.
      \Thread\Thread State 스레드의 상태. 0 - Initialized, 1 - Ready, 2 - Running, 3 - Standby, 4 - Terminated, 5 - Waiting, 6 - Transition, 7 - Unknown

    3.3 디스크 관련 병목

      Counter Description
      \PhysicalDisk\% Disk Time 해당 디스크가 읽기/쓰기 작업을 수행한 시간의 비율. 즉 IDLE하지 않았던 시간의 비율.
      \PhysicalDisk\Avg. Disk Queue Length 해당 디스크 큐에 들어간 읽기/쓰기 작업의 평균 갯수.
      \PhysicalDisk\Current Disk Queue Length 현재 디스크 큐에 들어가있는 IO 요청 갯수.
      \PhysicalDisk\Avg. Disk Sec/Read 디스크에서 데이터를 읽어들이는데 걸린 평균 시간.
      \PhysicalDisk\Avg. Disk Sec/Write 디스크에다 데이터를 쓰는데 걸린 평균 시간.
      \PhysicalDisk\Disk Read Bytes/sec 읽기 작업을 하는 동안 초당 전송된 데이터의 크기.
      \PhysicalDisk\Disk Write Bytes/sec 쓰기 작업을 하는 동안 초당 전송된 데이터의 크기.
      \PhysicalDisk\Avg. Disk Bytes/Read 읽기 작업을 하는 동안 전송된 데이터의 평균.
      \PhysicalDisk\Avg. Disk Bytes/Write 쓰기 작업을 하는 동안 전송된 데이터의 평균..
      \PhysicalDisk\Disk Reads/sec 디스크에 요청된 작업 중에 읽기의 비율.
      \PhysicalDisk\Disk Writes/sec 디스크에 요청된 작업 중에 쓰기의 비율.

    3.4 캐시 관련 병목

      Counter Description
      \Memory\Cache Bytes 현재 사용중인 모든 캐쉬 메모리의 총합.
      \Memory\Cache Faults/sec 초당 캐쉬 폴트의 발생 횟수.
      \Memory\Page Faults/sec 초당 페이지 폴트 발생 횟수. 하드 폴트 및 소프트 폴트 모두를 포함한다.
      \Memory\Pages Input/sec 하드 폴트를 해결하기 위해 디스크를 읽어들이는 횟수.
      \Memory\Pages Output/sec 페이지 아웃을 위해 디스크에다 쓰는 횟수.
      \Cache\Copy Reads/sec Shows the rate at which read operations from pages of the file system cache involve a copy read.
      \Cache\Data Flushes/sec Shows the rate at which the file system cache has flushed its contents to disk in response to a request to flush or to satisfy a write-through file write request.
      \Cache\Copy Read Hits % Shows the percentage of cache copy read requests that did not require a disk read to access the page in the cache. A copy read is a file read operation that is satisfied by a memory copy from a page in the cache to the application's buffer. The LAN redirector uses this method for retrieving information from the cache, as does the LAN server for small transfers. This method is also used by the disk file systems.
      \Cache\Lazy Write Pages/sec Shows the rate at which the Lazy Writer thread has written to disk.
      \Cache\Lazy Write Flushes/sec Shows the rate at which the Lazy Writer thread writes to disk.
      \Cache\Read Aheads/sec Shows the rate at which read operations from the file system cache detect sequential access to a file. The read aheads permit the data to be transferred in larger blocks than those being requested by the application, reducing the overhead per access.
      \PhysicalDisk\Disk Reads/sec 디스크에 요청된 작업 중에 읽기의 비율.
      \PhysicalDisk\Disk Writes/sec 디스크에 요청된 작업 중에 쓰기의 비율.

    3.5 다중 CPU 머신에서의 병목

      Counter Description
      \System\% Total Processor Time
      \System\Processor Queue Length 프로세서 큐에 들어가 있는 스레드의 갯수. 이 큐에 들어가있는 있는 스레드는 모두 ready 상태다. 즉 이 큐가 길어진다는 말은 스레드가 CPU에 비해 너무 많다는 말이다.
      \Processor\% Processor Time 애플리케이션 또는 운영체제 관련 프로세스를 실행하는 데 들어간 시간의 비율. 즉 IDLE 상태의 반대.
      \Process\% Processor Time 해당 프로세스가 자신의 코드를 실행하는데 사용한 시간의 비율.
      \Thread\% Processor Time 해당 스레드가 자신의 코드를 실행하는데 사용한 시간의 비율.

    3.6 네트워크 관련 병목

      Counter Description
      \Network Interface\Bytes Total/sec 해당 네트워크 인터페이스를 통해 초당 읽고 쓴 데이터의 크기.
      \Network Interface\Bytes Sent/sec 해당 네트워크 인터페이스를 통해 초당 읽은 데이터의 크기.
      \Network Interface\Bytes Received/sec 해당 네크워크 인터페이스를 통해 초당 쓴 데이터의 크기.
      \Protocol_layer_object\Segments Received/sec 현재 연결된 연결을 통해 받은 세그먼트의 갯수.
      \Protocol_layer_object\Segments Sent/sec 현재 연결된 연결을 통해 쓴 세그먼트의 갯수. 재전송 데이터만 들어간 세그먼트는 제외.
      \Protocol_layer_object\Frames Sent/sec
      \Protocol_layer_object\Frames Received/sec
      \Server\Bytes Total/sec 해당 서버가 네트워크를 통해 읽거나 쓴 데이터의 크기.
      \Server\Bytes Received/sec 해당 서버가 네트워크를 통해 읽은 데이터의 크기.
      \Server\Bytes Transmitted/sec 해당 서버가 네트워크를 통해 쓴 데이터의 크기.
      \Network Segment\% Network Utilization

       <!> Protocol_layer_object 항목은 TCP, UDP 등을 말한다.
Posted by 영혼도둑
Study/Mssql2008. 1. 11. 12:00

 MS SQL 전문 커뮤니티 사이트

MSSQL DB 컨설팅으로 유명한 에이디 컨설팅 DBA가 운영하는 싸이트

http://www.sqlleader.com/

Posted by 영혼도둑
Working/Daily2008. 1. 10. 16:54

오늘 웹서버에 트래픽이 몰리면서 죽어나갔다..

IIS 인데... 게시판에 리퀘스트 요청이 많아지면서... 할당된 프로세서(w3wp.exe)의 메모리가 증가되고

일정량의 메모리가 증가하면 Pool을 재생하도록 되어있었다..

그런데

응용 프로그램 풀 'Pool'을(를) 지원하는 프로세스를 종료하는 동안 제한 시간이 초과되었습니다. 프로세스 ID는 '5764'입니다.

이런 이벤트를 뿌리며, 재생이 안되는거 같았다..

우선 재생옵션을 끄고, KeepAlive를 체크했다.. TimeOut은 5초로 설정

현재 메모리 우상향중... 원인을 파악해야함...


Posted by 영혼도둑
Personal2008. 1. 10. 16:46

자.. 블로그 다시 시작.. ㅡㅡ;

몇번째 도전인가....

암튼 이제부터라도 제대로 해보자...

Posted by 영혼도둑
Study/Linux2007. 12. 27. 12:58
제공 : 한빛 네트워크
저자 : Bill Lubanovic
역자 : 추홍엽
원문 : The lighttpd Web Server

최근까지 아파치는 심각한 오픈소스 라이벌이 없었다. Netcraft사의 최근 웹서버 조사에서 한가지 주목할 만한 것이 있다. 언제나처럼 아파치가 정상을 차지하고 있고, Microsoft사의 IIS가 2위, 그리고 꾸준한 인기를 얻어온 unknown이 3위였다. 4위는 Sun사의 Java Web Server(이전까지는 ONE으로, 그이전에는 iPlanet, 그 이전에는 Netscape으로 알려져있었던). 그런데 5위는 1천 4백만 사이트에서 사용하고 있는 lighttpd라는 서버였다. 대체 어디서 나타난 녀석이란 말인가. 이제부터 lighttpd의 역사와 기본 설치 및 설정방법, 그리고 앞으로의 비전에 대해 살펴보려 한다.

이것은 '라이-티-피-디(lite-tee-pee-dee)'라고 발음하며, 짧게는 '라이티(lighty)'라고 부른다. 뭐라고 찾던 간에 웹사이트나 위키, 블로그 혹은 포럼 등에서 이것에 대한 많은 정보를 찾을 수 있다. lighttpd는 적은 자원을 사용하여 높은 성능을 내는 웹서버로서 고안되었다. 이것은 아파치보다 훨씬 적은 메모리를 사용하면서도 일반적으로 아파치보다 속도가 빠르다. lighttpd는 YouTube, Wikipedia, Meebo, 그리고 A List Apart를 포함한 여러 중책 사이트에서 묵묵히 가동되고 있다. lighttpd가 루비 온 레일즈나 트랙(Trac)과 같은 인기 툴들과 함께 아파치를 대신하는 것을 종종 보게 될 것이다.

아파치의 잘못된 점

그 인기에도 불구하고 가끔 아파치는 최상의 솔루션이 아닐 때가 있다. 아파치는 서로 다른 런타임 환경에서 사용할 수 있게 하기 위해 서로 다른 다중-프로세싱 모델(Multi-Processing Models, MPMs)을 제공한다. 선분기(prefork) 모델 -- Linux에서 가장 인기 있다 -- 은 시작시에 여러 개의 아파치 프로세스를 생성하고 이들을 풀에서 관리한다. 이에 대한 대안적인 작업모델은 여러개의 프로세스 대신에 다중 스레드를 사용한다. 비록 스레드가 프로세스보다 가볍긴 하지만, 전체 서버가 스레드에 안전(threadsafe)하지 않으면 이를 사용할 수 없다. 아파치와 mod_php가 스레드에 안전하다고 하지만 서드파티 모듈에 대해 보장되진 않는다. PHP 사이트는 스레드를 쓰는 MPM을 가진 아파치2 사용을 말리고 있다. 이것이 개발자들로 하여금 아파치 1.3에서 2.0으로 이동하는 것을 늦추게 된건지도 모른다. 그러나 선분기 모델은 그 자체에 문제점을 가지고 있는데, 각 프로세스(아파치 + PHP + 서드파티 모듈)가 너무 많은 메모리를 사용한다(30MB도 이상하지 않을 정도다). 여기에 동시에 돌아가는 아파치 프로세스 수를 곱하면, 사용할 수 있는 RAM은 순식간에 사라질 것이다.

lighttpd의 과거

어떤 웹사이트들은 동시에 수천개의 파일을 수행하는데, 메모리와 최대 스레드 또는 프로세스 수는 제한되어 있다. Dan Kegel은 C10K 문제에 관한 그의 페이지에서 수천개의 동시 접속을 다룰때 마주치게 되는 문제들에 대해 자세히 설명했다. 2003년 독일의 MySQL 개발자인 Jan Kneschke는 이 문제에 관해 흥미를 가지게 되었고 올바른 기술에 초점을 맞춤으로써 아파치보다 더 빠른 웹서버를 만들 수 있을 것이라고 믿었다. 그는 단일 스레드와 비블러킹(non-blocking) I/O를 가진 단일 프로세스로서 lighttpd를 고안했다. poll, epoll, kqueue, 혹은 /dev/poll 중 어느 하나를 선택하는 대신에 목표 시스템에서 가장 빠른 이벤트 핸들러를 사용했다. 그리고 read나 write보다는 sendfile 같은 제로카피(zero-copy) 시스템 콜을 채택했다. 몇 개월 후 lighttpd는 아파치보다 더 빠르게 정적 파일들을 수행할 수 있었다.

다음 단계는 동적 어플리케이션(CGI), 특히 PHP를 다루는 문제였다. Kneschke 인터넷 초창기 시절 CGI 수행속도를 향상시키기 위해 Open Market에서 만들었던 FastCGI를 털어냈다. 각각의 호출상에서 웹서버가 똑같은 외부 CGI 프로그램을 시작하는 대신, FastCGI는 본질적으로 CGI 어플리케이션을 먼저 실행시키고 자신과 웹서버 사이에서의 통신을 다루는 데몬이었다. 이것도 빨랐지만 후에 펄과 PHP가 아파치에 모듈로 흡수되면서 더 빨라졌고 아파치의 내부 HTTP 실행 단계에 접근 할 수 있게 되었다. 아파치용 FastCGI는 등한시 되었지만 후에 lighttpd에 추가되고 PHP와 연결되면서 FastCGI의 성능은 mod_php를 쓰는 아파치와 상응하거나 그를 초월하게 되었다. 추가적으로 lighttpd구현에는 자동 로드밸런싱이 추가되었다.

lighttpd 생태계는 가상 호스트, 리플렉션, URL 재작성, 인증 및 다른 웹스런 것들을 관리하기 위한 모듈로 확장되어 왔다. 대부분의 용도로는 아파치로 할 수 있는 어떠한 것도 lighttpd에서 할 수 있다. 다음 몇개의 장들에서 lighttpd 설치와 설정하는 법들을 아파치의 경우와 함께 살펴보려 한다.

lighttpd 설치

lighttpd를 설치하고 이리저리 쿡쿡 찔러보도록 하자. 위키의 설치 페이지에서는 다양한 리눅스 배포판에 대한 바이너리 혹은 소스 설치 예를 보여주고 있다. 단순 무식한 남성미가 넘치는 개발자들(여러분들을 말하는 것은 아니다)을 위한, 전체 소스 인스톨은 다음과 같이 한다.
    # wget http://www.lighttpd.net/download/lighttpd-1.4.13.tar.gz
    # tar xvzf lighttpd-1.4.13.tar.gz
    # cd lighttpd-1.4.13
        # ./configure
    # make
    # make install
이는 /usr/local 아래에 lignttpd를 설치할 것이다. 만약 빌드가 실패하면, 설치에 앞서 필요한 pcre과 zlib 개발 패키지가 시스템에 설치되어 있는지 확인하라.

lighttpd를 수동으로 시작하거나 종료하고 싶으면 여기서 끝이다. lighttpd를 아파치처럼 서비스로서 인스톨 하려면, init 스크립트를 수정하고 인스톨한다.
    # sed -e 's/FOO/lighttpd/g' doc/rc.lighttpd > lighttpd.init
    # chmod a+rx lighttpd.init
    # cp lighttpd.init /etc/init.d/lighttpd
    # cp -p doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
    # install -Dp ./doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
        # chkconfig lighttpd on
기본 설정

lighttpd 설정 파일의 문법은 아파치와의 눈에 보이는 가장 큰 차이점이라 할 수 있다. 위키의 설정 페이지 예제는 아파치의 XML스러운 httpd.conf보다 펄(혹은 PHP나 파이썬)쪽에 더 가까워 보인다. 정적인 파일들을 지닌 간단한 웹사이트의 경우, 아파치의 경우와 같이 도큐먼트 루트, 로그파일명, 리눅스 사용자와 그룹명 등을 명시할 필요가 있다. 다음의 아파치 설정(httpd.conf)과 lighttpd 설정(lighttpd.conf)은 대등하다.

Apache:
DocumentRoot /var/www/html
CustomLog /var/www/logs/access
ErrorLog /var/www/logs/error
User www
Group www
lighttpd:
server.document-root = "/var/www/html"
accesslog.filename = "/var/www/logs/access"
server.errorlog = "/var/www/logs/error"
server.username = "www"
server.groupname = "www"
server.modules = ( "mod_accesslog" )
lighttpd는 아파치와 유사한 인클루드 메커니즘을 가지고 있기 때문에 lighttpd.conf가 더 커질 필요가 없다. 추가적인 모듈을 사용하기 위해, 그 기능을 켜고 그 옵션을 설정하면 된다. 아파치는 LoadModule로 이것을 켜지만, lighttpd는 단지 server.modules 배열에서 주석처리 안된 모듈명을 인클루드 한다. 그보다 훨씬 필요한 유일한 하나는 mod_accesslog이다.

인증(Authentication)과 권한부여(Authorization)

lighttpd는 .htaccess 파일을 지원하지 않으므로 모든 설정을 lighttpd.conf 파일 혹은 그것이 인클루드하는 파일에 명시할 필요가 있다. 이것은 기본적인 아파치 user 파일을 잘 이해하고 인증을 소화한다. 그러나 group 파일 지원은 아직 구현되지 않았다. 다음은 special이라 부르는 최상위 디렉토리에 비밀번호 보호를 거는 방법이다.

Apache:
<Location /special>
  AuthName "My Special Directory"
  AuthType Basic
  AuthUserFile /var/www/passwords/users
  Order deny,allow
  require valid-user
</Location>
lighttpd:
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/passwords/users"
auth.require = ( "/special/" =>
  (
  "method"   => "basic",
  "realm"    => "My Special Directory",
  "require"  => "valid-user"
  )
)
가상 호스트

이번엔 열심히 일하면서도 진가를 인정받지 못하는 여러분의 웹서버를 위한 또 다른 과제다: scratch.example.com과 sniff.example.com로 불리우는 두 사이트를 관리하는 일이다.

Apache:
NameVirtualHost *
<VirtualHost *>
  ServerName "scratch.example.com"
  DocumentRoot "/var/www/hosts/scratch/docs"
<VirtualHost>
<VirtualHost *>
  ServerName "sniff.example.com"
  DocumentRoot "/var/www/hosts/sniff/docs"
<VirtualHost>
lighttpd:
$HTTP["host"] == "scratch.example.com" {
  server.document-root = "/var/www/hosts/scratch/docs/" }
$HTTP["host"] == "sniff.example.com" {
  server.document-root = "/var/www/hosts/sniff/docs/" }
이는 힘들게 일하는 방식이다. 만약 여러분이 많은 호스트들을 관리한다면, 가상 호스트 모듈로 입력을 더 줄일 수 있다:

Apache:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
VirtualDocumentRoot /var/www/hosts/%1/docs
lighttpd:
server.modules = ( ..., "mod_evhost", ... )
evhost.path-pattern = "/var/www/hosts/%3/docs"
Server-Side Includes (SSI)

동적 컨텐츠를 향한 기초 걸음마로, 파일끝에 .shtml를 붙여서 SSI를 켜는 것은 쉽다.

Apache:
AddHandler server-parsed .shtml
lighttpd:
server.modules = ( ..., "mod_ssi", ... )
ssi.extension = ( "shtml" )
PHP

lighttpd 는 CPU 집중적인 동적 컨텐츠를 또 다른 프로세스에 덜어줌으로써 정적 파일 처리량을 최적화 한다. PHP를 내부적으로 처리하기보다는 아파치가 mod_php를 쓰는 것처럼, lighttpd도 FastCGI에 그것을 맡긴다. 이러한 설정 부분은 지루하고 활기없는 .php파일들을 활기찬 PHP 스크립트로 변화시킨다. 이곳과 같은 패밀리 사이트에서 보는 것 보다 좀 더 즐겁게 세부적인 것을 보려면, 이 페이지를 참조하라.

Apache:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
lighttpd:
server.modules = ( ..., "mod_fastcgi", ... )
fastcgi.server =
  ( ".php" =>
    ( "localhost" =>
      (
      "socket" => "/tmp/php-fastcgi.socket",
      "bin-path" => "/usr/local/bin/php"
      )
    )
  )
lighttpd의 장점

lighttpd 는 압축, 디렉토리 목록나열, 사용자 디렉토리, SSL, WebDAV, 그리고 URL 다시쓰기(rewriting)나 리다이렉션에 대해 아파치와 동등한 모듈을 포함한다. 이러한 것들에 대해서는 웹사이트 상에서 읽어볼 수 있다. lighttpd에만 있는 다른 흥미로운 모듈들도 있다.

조그만 YouTube가 되고 싶다면, mod_flv_streaming 모듈을 사용하여 수천개의 플래시 무비를 평행하게 스트리밍할 수 있다. 비록 YouTube는 아직 이 모듈을 사용하지는 않지만, 정적 파일들에 대해서는 lighttpd로 수행한다.

여러분이 만약 수많은 플래시 파일들을 보유한 사이트를 가지고 있다면 핫링킹(hotlinking)에 대해 보호하는 것은 어떤가. 어떠한 파일 타입에도 적용가능한 lighttpd의 해결책은 mod_secdownload이다. 특별한 URL을 생성하는 함수를 작성하여 이 모듈이 그 URL을 가지고 주어진 파일을 주어진 시간만큼 접근할 수 있는 권한을 주는 것이다.

Lighty 1.5.0

Kneschke는 현재 1.5.0 버전에 박차를 가하고 있다. 이 버전에서는 성능과 유연성이 향상될 것이다. 새로운 I/O 서브시스템은 스레딩(여기서는 스레드가 맞을 듯 하다)과 비동기 I/O -- POSIX나 리눅스 네이티브, 혹은 glib 2.0에 있는 userland gthread wrapper -- 를 통해 향상될 것이다.

mod_proxy_core는 mod-proxy, mod-fastcgi, mod-scgi 세 개의 백-엔드(backend) 모듈을 통합한다. 실제 처리에서 프로토콜을 분리함으로써 로드밸런싱 및 실패처리(fail-over), keep-alive, 기본 프록시 기능에 내부 큐를 사용하는 것들이 가능해진다.

mod_magnet라 부르는 최근의 추가사항은 lighttpd의 미래에 커다란 역할을 할 것으로 기대된다. 이것은 URL 재작성이나 컨텐츠 생성을 포함하여 HTTP 요청과 응답의 서로다른 단계에 접근하게 할 수 있다. 한가지 흥미로운 선택은 아파치의 mod_rewrite와 같은 복잡한 문법 보다는 Lua라는 내장된 스크립트 언어를 사용한다는 것이다. 우리는 개발자들이 이것을 좋아하게 되던지 아니면 아파치의 친숙하지만 때론 어려운 rewrite 규칙에 고착하게 되는지 보게될 것이다.

Lighty는 어디로 가고 있는가?

Kneschke는 lighttpd의 미래가 다음 두가지 경우를 따를 것이라 기대한다:
  • 고성능, 고사용성의 컨텐츠 전송
  • 임베디드 서버, 크로스 컴파일, 적은 메모리 사용
1.5.0 이후에, mod_magnet는 좀더 많은 동적 서버 설정을 제공할 것이다. 이는 .htaccess을 지원하지 않아 lighttpd로 옮겨가길 거부해온 일부 아파치 개발자들을 끌어들일 것이다. 필자는 Comet--역 Ajax의 한 종류, 새로운 데이터가 있을때 서버가 클라이언트를 업데이트한다--에 대한 지원이 계획되길 고대하고 있다. 이것은 웹 대쉬보드나 채팅, 혹은 다른 상당히 인터랙티브한 어플리케이션들을 가지고 있다. Ajax와 Comet으로 웹 어플리케이션은 좀 더 전통적인 GUI 어플리케이션과 같은 모습을 할 수 있다. 그러나 이러한 새로운 기능들이 아니더라도 lighttpd는 벌써 아파치의 강력한 경쟁상대--특히 메모리가 제한되어 있거나 많은 정적파일들로 구성된 작업량에 대해서--이다. 가벼운게 좋은거다.


저자 Bill Lubanovic는 70년대에 UNIX로 소프트웨어 개발을 시작했고, 80년대에는 GUIs, 90년대에는 웹개발을 해왔다. 그는 현재 한 풍력 관련 회사에서 웹 비주얼 작업을 하고 있다.
Posted by 영혼도둑
Study/Mysql2007. 12. 10. 16:20


Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options
to be set for the connection. This ensures consistent query semantics.
Enable these options and then reissue your query

이런 애러가 난다..

<?


mssql_query("SET ANSI_NULLS ON",$con_log);
mssql_query("SET ANSI_WARNINGS ON",$con_log);
$sql="[UP_SM_MutantLog] '$date',1000";
$rs=mssql_query($sql,$con_log);

?>

이런식으로 해결하면 됨...

Posted by 영혼도둑
Study/Shell2007. 9. 14. 18:18
[root@nms mutant]# cat ex070912.log | awk '{ if($12=="200") {print $10} }'  | sort | uniq -c | sort

맨날 까묵기에... ㅡㅡ;

Posted by 영혼도둑
Personal2007. 9. 12. 00:23
◑ 양력 : 2007년 8월 28일(화)
◐ 음력 : 2007년 7월 16일 申시 [女子, 1세]
 
四柱 時柱 日柱 月柱 年柱
天干 偏印 本人 偏財 傷官
地支 偏官 傷官 偏官 偏印
五行分析
1 2 1 2 2
調候用神 (壬,甲,丙)
 
◈ 추천이름 해설
이     름

 
물가
 
한자획수 17 8 7
 
자원오행
 
음령오행
 
획수음양
 

[ 解說 ]
 
수리길흉 ◎ 수리 4격(數理 4格)
元格(초년운) 15획 통솔격(統率格), 복수운(福壽運)
亨格(청년운) 25획 안강격(安康格), 재록운(財祿運)
利格(장년운) 24획 입신격(立身格), 축재운(蓄財運)
貞格(인생총운) 32획 순풍격(順風格), 왕성운(旺盛運)

수리 4격이 모두 吉격으로 구성되어 있으므로 바람직합니다.

※ 각 운의 자세한 내용은 아래의 설명을 참고하시기 바랍니다. ☞ 설명
※ 작명에서 사용하는 획수(원획)는 옥편의 획수와 다를 수 있습니다.
    자세한 내용은 작명칼럼의 "변획수 산정법"을 참고 하시면 됩니다.
 
 
사주용신 이름은 후천운에 해당합니다. 좋은 이름이란 사주에 필요한 오행을 보완함이 으뜸입니다. 여기에서는 사주용신법(四柱用神法)을 자원오행을 기준으로 하였습니다. 자원오행이란 한자 자체가 지니고 있는 의미로 오행을 구분한 것을 말합니다.

이름의 자원오행이 사주에 필요한 오행 木, 水, 火으로 구성이 되어 있어야 사주에 합당한 이름입니다. 이를 바탕으로 이름을 분석한 결과 이름의 자원오행이 사주에 필요한 '水火'으로 구성되어 있어 사주에 합당한 이름입니다.
 
 
획수음양 획수음양(劃數陰陽)이란 한자의 획수를 세어 음양을 따져보는 것입니다.
우주만물은 모두가 음과 양의 상대성 원리에 의해 구성이 되어있습니다.
마찬가지로 이름도 음과 양이 적절하게 조화를 이루어야 좋습니다.
이름이 음과 양으로 조화된 '양음양'으로 구성이 되어있어 좋습니다.
 
 
음령상생 음령(한글)오행(音靈五行)의 상생(相生)관계를 따져보는 것입니다.
성명학의 일부 이론 중 하나로 역학적으로 맞지 않는 사례가 많아,
역학계에서는 퇴조된 이론이므로 참고정도로만 하시면 됩니다.
이름의 음령오행이 '金金土'으로 구성되어 있습니다.
 
 
불용문자 이름에 뜻이 나쁜한자, 확장한자, 불용문자로 분류된 한자는 없습니다.


◈ 수리길흉 / 수리 4격 상세설명
 
초년운 元格(15획) 통솔격(統率格), 복수운(福壽運)  ☞  吉

◎ 통솔수복지상(統率壽福之象)
천성이 지혜롭고 덕망이 있고 윗사람을 잘 섬기고 융통성과 아량이 넓어 아랫사람을 잘 거느리고 덕망이 두터워 순조롭게 자립 대성하여 교육, 군인, 예술, 운수, 토건업에 종사해도 명성을 얻고 부귀 장수하는 길운이다. 가정 생활도 안정되어 행복하고 자식 덕도 있다. 여자인 경우는 현모양처로 시부모도 잘 모신다.
 
청년운 亨格(25획) 안강격(安康格), 재록운(財祿運)  ☞  吉

◎ 안전건창지상(安全健暢之象)
지모가 뛰어나고 재치도 있고 솔직하고 개성이 뚜렷하여 자수성가(自手成家)하고 대업을 이룬다. 남들로부터 존경을 받고 평생 부귀영화 한다. 금융계, 정계, 법조계, 사업가.등으로 크게 출세한다.
 
장년운 利格(24획) 입신격(立身格), 축재운(蓄財運)  ☞  吉

◎ 입신축재지상(立身蓄財之象)
처음에는 아무것도 가진 것이 없는 맨손 '적수공권(赤手空拳)'으로 꾸준히 노력하여 재산을 모으며 말년에는 크게 번창하여 금융계, 운수업계, 문예계, 정계, 법조계, 행정계로 나가도 큰 이공을 세워 이름을 널리 떨칠 대길운이다. 이성복도 있어 이성들이 잘 따르니 이 또한 행운이라 아니할 수 없다.
 
인생총운 貞格(32획) 순풍격(順風格), 왕성운(旺盛運)  ☞  吉

◎ 의외행복지상(意外幸福之象)
뜻밖에 찬스를 얻어 일약 성공할 수 있는 수이다. 왕성한 활동력과 외유내강한 처세로 웃사람의 원조나 후견에 큰 힘을 입어 순풍에 돛을 단 듯 순조롭게 성공한다.


◈ 한자 상세설명

[지]
뜻 : 물가
원획 : 총 8획(작명용 획수)
필획 : 총 7획(옥편상의 획수)
이름에 沚를 사용한 과거급제자
   - 이지(李沚, 1724年生) : [사마시] 정조 7년(1783) 식년시 삼등 급제
(모두 1명이 사용했습니다.)
 

[우]
뜻 : 클, 해돋을
원획 : 총 7획(작명용 획수)
필획 : 총 7획(옥편상의 획수)
Posted by 영혼도둑