서버알못, 웹프알못에 전환 후기 입니다.

 

 

서버 관련된 프로그램은 xampp 를 설치하여 사용 중 입니다.

서버는 총 3대 운영 중이고..

2대는 데스크탑(윈10 64비트 환경 - i3 6100, 8기가램) - 동접수 각각 700 ~ 1000명내외

1대는 서버 (윈도 서버 2016 64비트  사양은 지금 보질 못해서 램만 기억 합니다 . 56기가램) - 동접수 2000명 가량

(xe 사용 시 렉이나 문제 없이 안정적으로 운영되었음)

를 운영 중인데 테스트는 별개에 노트북에 xampp 설치 후에 localhost 로 테스트를 완료하였습니다.

(사이트 특성상 사용자가 지속 접속하면서 검색을 지속적으로 하고 있습니다.)

 

* 준비 *

노트북에서 xe를 라이믹스로 전환을 시도하였고.

에러나거나 하는 모듈이나 에드온들을 모두 수정/삭제/포기 등을 한 후 데스크탑에 운영 중인 서버 전환을 먼저

시도 한 결과 매우 성공적으로 전환을 할 수 있었습니다.

 

* 결과 *

Xe를 운영했을 때 CPU 점유율이 80~90% 왔다갔다 하던 것이

라이믹스로 전환 한 이후 30%이하로  떨어지고 속도도 매우 안정적이네요 .. 기쁨 ^-^

 

* 문제 발생은 데스크탑이 아닌 서버에서 발생했어요....*

라이믹스 전환 매우 쉽다고 자만에 빠져 남어지 서버까지 전환을 시도한 결과는 처참했습니다. 

 

1. 글쓰기 문제

해당 서버는 기존에 8080포트를 사용하다가 현재 80포트까지 열어둔 상태여서.. 포트가 두개 입니다.

문제는 사용자 대부분이 기존부터 8080포트를 이용하는데 라이믹스 포트설정을 안한 상태로 그냥 쓰다보니...

80포트로 접속하면 문제 없으나 8080포트로 접속하게 되면 글쓰기나 파일 첨부가 안되는 현상이 발생했습니다.

----------------------------------------------
AJAx commuication error while requesting ... 어쩌고 저쩌고  0 error (error)
 

그런데 신기하게도 최고권한자 아이디는 문제가 없는데.. 일반 회원만 문제가 생기는 현상이 발생되어서...

결국 서버상에서 80포트를 죽이고 라이믹스 포트 설정에 8080 삽입 한 후 이 문제는 해결하였습니다.

현재 글쓰기는 잘 됩니다.

 

2. 사용자가 좀 증가하니 ... 이러한 오류가 뜨기 시작합니다.

 

HTTP 505 오류
•웹 사이트는 유지 관리 중입니다.
•웹 사이트에 프로그래밍 오류가 있습니다.

 

==>>> 새로 고침하면 또 열립니다. ㅠ____________ㅠ

 

3. 일반적인 게시판 이용 시에는 문제가 없다가도... 관리자 페이지.. 특히 메뉴 편집 부분에서

----------------------------------------------
AJAx commuication error while requesting
menu.getMenuAdminSiteMap
0 error (error)
----------------------------------------------
undefined
----------------------------------------------
                                          [확인]

 

이러한 팝업이 작렬하기 시작하였습니다. .. 그런데 또 다시 시도하면 됩니다. (간헐적 현상 입니다....)

라이믹스 관리자 페이지에서는 

PHP Fatal error : Maximum execution time of 120 seceond exccded in

..... session.php on line 144  와 같은 에러 메시지를 보여 줍니다.

 

4. 저 팝업이 뜰 때 서버에 에러로그를 보면...

PHP Fatal error: Out of memory (allocated 80740352) (tried to allocate 12352 bytes) in admin.admin.view.php Line xxxx

 

이런 것이 무수히 많이도 나옵니다....

파일 보고 대충 모듈쪽에 뜨는 파일이 있어서 사이트관리(숭숭군님 배포모듈) 등 ..

보이는 파일 경로 확인 후 추가설치한 모듈 몇개는 지워버렸는데

모듈문제가 아닌지 코어쪽 파일도 간간히 뜨고 있습니다.

 

5. 사용자 환경에서는 게시판이 빠르다가 느리다가를 반복하고 있습니다.

 

==

신기한 것은 .. xampp 폴더와 설정이 .. 서버와 데스크탑과 일치한다는 점입니다.

심지어 DB도 일치 합니다.

심지어 라이믹스로 전환한 웹파일 폴더도 동일합니다.

.. 

라이믹스 1.9.9.8 master 버전 (전혀 수정이 없는) 것을 덮어 씌워봐도 마찬가지 현상이 발생합니다.

사용이 아애 안되는 것은 아닌 중간 중간 간헐적 팝업/오류........사이트 느림...

 

데스크탑에서 잘 작동하는 라이믹스 운영 폴더를 그대로 덮어 씌워봐도

동일한 문제가 발생하는거보면.... 라이믹스 문제는 아닌 것 같은데..

예상 가능한 서버 문제가 무엇이 있을까요..? 당췌.. 초보라..

저와 같은 시행착오를 겪으신 분들이 계시면 조언 좀 부탁드립니다.

 

URL 자체가 외부 환경에서 접속이 안되는지라 제공못해드리고 뜬구름 잡는 질문드려서 죄송합니다. ㅠㅠ

그저.. 도움이 될만한 조언 한개씩 투척 해주시면 감사하겠습니다.^_^

 

 

 

---- 서버 환경  (라이믹스 서버환경 표시 복사) ----

[Basic Information]
rhymix_version : 1.9.9.8
date : 2020-10-05 10:49:41 +0900 (2020-10-05 01:49:41 UTC)
php : 7.1.33 (64-bit)
server : Apache/2.4.41 (Win64) OpenSSL/1.0.2s PHP/7.1.33
os : Windows NT 10.0
sapi : apache2handler
baseurl : -
basedir : D:\web (0:0)
user : unknown
ssl : none

[System Settings]
db.type : mysqli (myisam, utf8)
db.version : 
cache.type : file
locale.default_lang : ko
locale.default_timezone : Asia/Seoul
locale.internal_timezone : 7200
mobile.enabled : false
mobile.tablets : false
session.use_db : false
session.use_keys : false
session.use_ssl : false
session.use_ssl_cookies : false
view.concat_scripts : js
view.minify_scripts : all
use_rewrite : false
use_sso : false

[PHP Settings]
session.auto_start : 
max_file_uploads : 20
memory_limit : 10240M
post_max_size : 1024M
upload_max_filesize : 1024M
extensions : bcmath, bz2, calendar, curl, dom, exif, fileinfo, ftp, gd, gettext, hash, iconv, json, libxml, mbstring, mcrypt, mysqli, mysqlnd, openssl, pcre, pdo, pdo_mysql, pdo_sqlite, phar, readline, simplexml, wddx, xml, xmlreader, xmlwriter, zip, zlib

[Modules]
module : adminlogging (1.7), advanced_mailer (2.1.0), board (1.7.2), board_extend (1.1), couponmanagement (1.0.0), elfinderxe (0.2), eventsticker (2.1.0), exam (0.8.2), google_calendar (1.0.0), iconshop (0.4), keyword (1.0.8), krzip (1.8.0), loginlog (1.5.0), lotterylotto (1.0.5), member_expire (1.2.7), ncenterlite (3.1), pointhistory (0.2.1), profiler (1.0), quizgame (0.1), schedule (1.1), sejin7940_copy (1.4), xboard (1.4.3)

[Addons]
addon : aa_keyword (1.0.3), adminlogging (1.7), admin_hide (1.0), blockact (1.1), jquery_snow (0.1), layerAlert (1.1), login_2sisstore (1.1), memberinfo (1.10), member_icon_print (0.3), member_pointsend (0.2.1), new_document_notify (2.0), new_document_notify2 (2.0), new_document_notify3 (2.0), new_document_notify4 (2.0), new_document_notify6 (2.0), new_document_notify_x (2.0), photoswipe (1.0.1), recaptcha (1.0.0), sakura (1.0.1), sejin7940_all_notice (1.4), write_limit (1.2.1)

[Layouts]
layout : simple_world (1.1.0), user_layout (1.7), xedition (1.9)

[Widgets]
widget :  (),  (),  (), contactfree (1.0), counter_status (1.7), keywordstat (1.0.2), member_group (0.1), pado_ajax_newsWidget (1.9), pollWidget (2.0), rank_point (1.0), sys_status (3.1.1), tab_newest_document (0.1), towc_new_docu (1.9)

[Widgetstyles]
widgetstyle : simple (1.7)

  • profile
    1. 80포트를 쓰시고 싶다면 8080로 접속하는 접속자를 강제로 80포트로 리디렉션 하는 방법이 있습니다.
    하지만 8080포트로 쓰시기로 결정한 것 같군요.

    3. 에러 내역에 많이 나와있습니다.
    php.ini 에서
    execution time 부분을 늘려주면 될것 같습니다.

    4. 램이 부족하다고 하는 것같습니다.
    램을 8기가나 먹을 만한 그런 구조라니.. 윈도우 시스템이라 다른데서 리소스가 새고 있지 않나 의심해봅니다.
  • profile profile

    2. execution_time을 이미 2분이나 주었는데 더 늘리면 서버가 다운되는 수가 있습니다. 타임아웃이 발생할 때는 타임아웃 설정을 더 줄여서 범인을 잡아족치는 것이 튜닝의 기본입니다. 에러가 나든 안 나든 실제로 몇 초 이상 기다려주는 사용자는 없으니까요.^^

    3. memory_limit이 10240M인데, 10기가로도 부족하다면 뭔가 굉장히 비효율적으로 돌아가는 모듈이 있는 거겠죠... 이건 에러가 뜨는 파일을 찾아봐야 소용없습니다. 실제로 램을 다 먹은 놈은 다른 곳에 숨어 있고, 그 후에 램을 쓰려던 죄 없는 모듈들이 에러를 뿜는 상황이거든요.

  • profile profile
    댓글 남겨주셔서 매우 감사합니다. ^-^

    1. 포트는 기본적으로 8080을 많이 사용하기에 임시적으로 그렇게 해두었습니다. 테스트가 완료되면 80포트로 사용할 예정입니다.
    3. execution time 은 120으로 설정해두었는데.. 2분 동안 먹통이 되다가.. 에러를 뿜고 있습니다. 더 늘려 볼까요?
    4. 대부분 오류 메시지에 나오는 메모리는 상당히 적은량을 할당하지 못해서 발생하는 오류로 뜨고 있습니다.
    서버에서 리소스 모니터로 보면 사용량이 15%이하로 나오고 있습니다... 아무것도 깔린 것이 없는 OS에...
    메모리 누수라면 무엇이 문제일까요? ㅠㅠ
  • profile profile
    댓글 남겨주셔서 매우 감사합니다. ^-^
    말씀하신 내용에 따르면 execution_time을 더 늘려줄 필요는 없는 것 같네요.. ㅠ.ㅠ
    오히려 테스트 환경에서는 더 줄여서 에러를 더 뿜게 하고.. 그걸 토대로 고쳐라 라는 말씀인 것 같습니다.

    메모리 리미트가 정상이고.. 사용자가 적을 때는 문제가 되지 않다가 어느 순간 등장하면서
    사이트 전체적인 느림 현상이 발생하고 있습니다.
    여전히 서버쪽 설정에 문제라고 생각하고 있긴 한데.. 뭘 건들어야 할지 모르겠네요 흑흑..ㅠㅠ
  • profile profile
    밑에 서버 환경을 복붙해주셨었네요;;
    기본적으로 윈도우 + xampp 조합을 비효율적이라고 생각해서 메모리가 어딘가에서 누수되고 있다고 생각이되네요;;

    execution time의 경우 phpmyadmin 같은 프로그램을 이용할 때 안정적으로 하려고 늘려놓는 편인데 단순히 라이믹스에서 execution_time을 많이 사용할 일은 없겠죠.
    램이 다 차서 실행할 내용이 램의 공간이 비면 실행하려고 큐에서 대기 중이다가 execution time 이 다 되어버리는 문제가 발생할 수도 있나요?
  • profile

    동접이 2000명인데 DB type이 MyISAM이라구요? 어이쿠;;;

    라이믹스 설정도 innodb로 바꾸고, 기존 테이블들을 모두 InnoDB로 변환하는 방법을 검색해 보시기 바랍니다. 물론 MySQL 튜닝값들도 InnoDB 위주로 변경해야 합니다. 서버 사양이 아무리 높아도 그 사양을 제대로 활용하도록 튜닝되어 있지 않으면 실제 성능의 반의 반도 못 뽑아내고 뻗어버리기 쉽습니다. 오히려 사양이 넉넉하다는 이유로 데스크탑보다 튜닝에 신경을 덜 쓴 것이 문제의 원인일 수도 있습니다.

    10년 전 기능만 사용하는 XE와 달리, 라이믹스는 최신 PHP와 서버의 기능을 광범위하게 활용합니다. 따라서 서버 환경이 이상하거나 최적화되지 않은 부분이 있으면 XE보다 더 민감하게 반응할 수 있습니다.

    일단 윈도우에서 PHP를 돌린다는 것부터가 에러로 보입니다만... 이건 당장 바꾸기 어려운 것이니 그냥 두고요... 라이믹스가 유발하는 부하의 패턴에 맞추어 아파치 설정이나 MySQL 튜닝값 등을 조정해 보셔야 할 것 같네요. 505 오류도 PHP 쪽보다는 아파치 쪽의 설정 문제로 보입니다. 라이믹스에서 505 오류를 뿜는 곳은 없거든요.

  • profile profile
    DB엔진이라고 하나요 ? innodb 검색을 좀 해봐야겠네요 초보자도 쉽게 할 수 있는 것이었으면 좋겠습니다.^-^
    기존 DB들이 날아가면 안되는 상황이라 좀 걱정은 되네요.. 노력해보겠습니다.

    Mysql에 경우는 초기값 그대로 유지 중인데요 이런 경우 건들어볼 설정이 무엇이 있을까요?
    지속되는 질문에 매우 송구스럽습니다. ㅠㅠ

    -- 현재 설정 값이 아래 내용인 것 같습니다. --
    key_buffer = 16M
    max_allowed_packet = 1M
    sort_buffer_size = 512K
    net_buffer_length = 8K
    read_buffer_size = 256K
    read_rnd_buffer_size = 512K
    myisam_sort_buffer_size = 8M

    [mysqldump]
    quick
    max_allowed_packet = 16M

    [isamchk]
    key_buffer = 20M
    sort_buffer_size = 20M
    read_buffer = 2M
    write_buffer = 2M

    [myisamchk]
    key_buffer = 20M
    sort_buffer_size = 20M
    read_buffer = 2M
    write_buffer = 2M
  • profile profile

    노트북 테스트 서버쪽에 innodb 로 테이블 모두 변경
    (myadmin상 테이블 우측에 innodb 타입으로 뜨면 되는거겠죠?)
    config.php 파일에도 타입 변경완료했습니다. 내일 서버에 적용해봐야겠네요..


    [System Settings]
    db.type : mysqli (innodb, utf8)
    db.version :
    cache.type : file


    ----
    답변 감사합니다. mysql ..my.ini 파일 설정 검색하러 떠나요 =3=3

  • profile profile
    innodb 관련된 설정이 전혀 안 보이네요. innodb_buffer_pool_size 등 이것저것 추가하셔야 할 것 같습니다. DB는 램을 넉넉하게 줘야 원활하게 돌아갑니다. 서버 램이 수십기가라면 몇기가쯤 DB에 할당하셔도 됩니다.
  • profile profile
    제가 빼먹은 부분 같네요... 말씀하신 부분 찾았습니다.
    innodb_buffer_pool_size = 4096M 정도로 해두고
    남어지는 무슨 설정인지 검색해봐야겠네요 ..^^
    ------------------

    # Comment the following if you are using InnoDB tables
    #skip-innodb
    innodb_data_home_dir = "/xampp/mysql/data"
    innodb_data_file_path = ibdata1:10M:autoextend
    innodb_log_group_home_dir = "/xampp/mysql/data"
    #innodb_log_arch_dir = "/xampp/mysql/data"
    ## You can set .._buffer_pool_size up to 50 - 80 %
    ## of RAM but beware of setting memory usage too high
    innodb_buffer_pool_size = 16M
    innodb_additional_mem_pool_size = 2M
    ## Set .._log_file_size to 25 % of buffer pool size
    innodb_log_file_size = 5M
    innodb_log_buffer_size = 16M
    innodb_flush_log_at_trx_commit = 1
    innodb_lock_wait_timeout = 50
  • ?
    전문가한테 서버세팅의뢰하는게 더 낫지않을까요
  • ? profile
    여건상 불가능한 상황입니다. ㅠ_ㅠ ㅋ