Flash plugin 과 curl 의 관계.

그동안 Debian Lenny(Stable) 을 쓰다가..
아주 가끔(?) Sid(Unstable) 소스트리에서 패키지를 설치를 했더니.. 의존성이 꼬이기 시작했다.
그래서 6월 2일(지방선거 - 임시공휴일)에 투철한 삽질정신으로 Sid 로 패키지 업그레이드를 시도했다.

오호~ 모두 순조롭게 잘 진행되었고..
xorg 설정도 어느정도 맞추었고,
듀얼모니터 설정도 잘 되어서 작업을 시작해 보려고 했더니..
노트북 스크린에서 LCD 모니터로 마우스 커서가 한번 넘어가면, 절대 돌아오지 않는 망측한 버그가 있는 것이었다.
몇시간 삽질을 했지만, 해결하기엔 너무 문제가 커졌고, Sid 의 명성을 경험해본이상.. Stable 로 돌아가야 겠다고 마음먹고 downgrade 를 시도했으나, libc6 관련 라이브러리와 의존성이 모두 파괴!!

하품을 머금고..
24GB 의 안쓰고 남겨두었던 파티션을 하나 할당해서 Stable 버전으로 설치.
기존의 망가진 파티션은 그냥.. home 파티션으로 할당해서 기존 개발환경은 다 복구했다.

아무튼, 삽질의 과정중에
linux 용 google chrome 안정버전을 설치할 수 있다는 정보를 얻고, 기존 베타버전을 제거한뒤, 설치를 했다.

그리고, flash plugin 도 10.1 rc51 로 받아서 chrome 의 plugins 디렉토리에 넣었는데..
flash 가 들어간 사이트에선 전혀 플래시가 보이지 않는 문제가 발생했다.

그래서.. 콘솔에서 명령으로 실행을 해봤더니..

Adobe Flash Player error: could not load cURL library
Adobe Flash Player error: could not load cURL library
Adobe Flash Player error: could not load cURL library

라는 오류를 열심히 뱉고 있었던 것이었다.

그렇다!!

curl libray 가 필요했던 것이다.

sudo apt-get install curl

로 상황종료!!

플래시에서 curl library 를 사용하는것을 처음 알게 되었다.

Posted in google-chrome | Tagged , , | Leave a comment

Linux cron 관련 팁(?)

1시간 마다 페이스북 API를 호출해서 업데이트 여부를 체크한뒤,
DB에 쌓으려고 cron 으로 작업을 등록시켜놓았다.
그런데.. 페이스북은 업데이트가 되었지만, DB는 업데이트가 안되는 것이다.!!

ruby 버전이 의심이 되어서 logger 를 이용해서 version 정보를 로그로 남게 해보니,
역시나 1.9.3-dev 로 나와야 하는데, 1.8.7로 찍히는 것이다.
환경설정 문제인데.. 검색을 해보니 환경설정을 다시 읽어들이게 하라는 것이다.
보안관련 이슈라는데.. 좀 더 찾아봐야겠다.

아무튼, 호출되는 스크립트 상단에서 source /home/eunchul/.bashrc 를 추가해줌으로 해결!

Posted in bash, commands, debian, linux, system | Tagged , | Leave a comment

Passenger 설정으로 Rails 응답속도 개선하기.

새벽에 잠이 안와서 미루고 미뤄뒀던, passenger 세부 설정을 살펴보았다.

문제는, 한동안 접속이 없다가 페이지 접속을 시도하면 처음 응답까지 대략 10여초는 족히 걸리는 것이다.
한번 접속한뒤에는 메모리에 올라와서 응답속도가 정상으로 돌아오지만..

환경: Debian Lenny amd64, Memory 256MB, ruby-1.9.3-dev, rails3-beta3, passenger-2.2.11, apache2.2

우선 Configuration Phusion Passenger 를 읽어보고, 서버 환경에 맞게끔 수치를 조절하면서 적용을 시켜보면 될것이다.

Global server configuration


PassengerMaxPoolSize 4
PassengerPoolIdleTime 0
RailsFrameworkSpawnerIdleTime 0
RailsAppSpawnerIdleTime 0

PassengerMaxPoolSize
Rails 나 Rack 애플리케이션 인스턴스이 동시에 활성화 되는 최대 갯수.
숫자가 클수록 더 많은 메모리를 사용하게 되지만, HTTP client 를 동시에 처리하는 능력은 향상된다.
문서에서는 2G 메모리의 경우 30 으로,
VPS환경에 256MB 이며, MySQL 같은 서비스를 같이 사용하면 (나의 경우..;;;) 2 정도로 추천하고 있다.

PassengerPoolIdleTime
애플리케이션 인스턴스가 유휴상태로 되는데 걸리는 시간(초 단위)을 설정한다.
즉, 일정시간(설정된 초)후에도 어떠한 트래픽이 없다면 메모리 보호(확보)를 위해 shutdown 된다.
문서상에선 공유되지 않는 호스트에 몇몇 애플리케이션만 동작하고, 언제나 사용가능하려면 0 을 추천한다.

RailsFrameworkSpawnerIdleTime
FrameworkSpawner 서버는 idle timeout 를 가지고 있다.
일정 시간(초) 어떤 요청을 받지 않으면 자동으로 shutdown 이 될것이다.
유휴상태가 되게 하지 않으려면, 0 값으로 설정하라.

RailsAppSpawnerIdleTime
RailsFrameworkSpawnerIdleTime 과 비슷하다.
차이점은 FrameworkSpawner 서버가 아닌 ApplicationSpawner 서버가 해당된다는 점.

문서를 대충 보고, 필요하다 생각되는 설정만 추가했으나,
시간을 두고 서버를 운영하면서 최적의 값을 찾아가야 겠다.

Posted in system, web | Tagged , | Leave a comment