영카트 on_uid 와 로봇 문제 정보
영카트 on_uid 와 로봇 문제본문
몇가지 조사를 해보니 uid 생성과도 관련이 있지않을까 생각이 되는군요
유니크 키값을 생성하기 위해서 yc4_on_uid 테이블에 LOCK을 걸고
insert를 해서 유니크 키 를 생성하게 되어있는데
정상적인 접속은 테이블에 insert 1번, update 1번 하게 되어있습니다(영카트 예전 버젼 기준)
on_uid 테이블에 레코드 수가 너무 많아서 이상하게 생각되어
테이블을 삭제하고 ip필드를 추가해서 접속 IP를 기록해보니 이미지와 같은 현상이 보이는군요
이미지에서 보듯이 1~3초 간격으로 마구잡이로 생성되고 있음을 알 수 있습니다
테이블을 삭제하고 12시간 후에 조사한 내용입니다
로봇은 uid 생성을 하지않도록 설정은 추가 했지만 저 아이피는 agent가 IE6으로 나오는군요
저 아이피로 검색한 페이지 수가 20 페이지 입니다
시작 시간 21:15:09 부터 22:13:59 까지 1시간 동안 기록 입니다
20페이지 x 30 행 = 600 즉 600번의 insert를 하고 있다는 말이죠
그리고 사용중인 영카트 버젼은 예전 버젼이라 한번 접속에 1번 insert 하지만
최신버젼은 2번 insert를 하게 되어있습니다
키를 만들때 insert후에 update를 동시에 하게 되어있으니
실제로는 1200번의 디비 쿼리를 하게 됩니다
(최신버젼 이라면 insert 1200번 update 1200번 합계 2400번이 됩니다
$on_uid_key = get_unique_id()
$on_direct_key = get_unique_id() --이렇게 두개의 키를 만들게 되어있죠 )
그런데 저런 아이피가 한둘이 아니라는 것이 문제 입니다
2~3개의 로봇이 동시에 페이지를 긁어댄다면 몇 천번의 쿼리가 짧은 시간에 발생하게 됩니다
on_id를 보면 11만4천 인데 12시간 동안 22만8천번의 쿼리를 했다는 말입니다
(더 많은 레코드가 있지만 검색한 저 번호만으로 계산해도 그렇게 됩니다)
(더 많은 레코드가 있지만 검색한 저 번호만으로 계산해도 그렇게 됩니다)
신버젼이라면 2배가 되겠죠
게다가 order테이블과 cart테이블에 같은 번호가 있는지 찾는 것까지 합치면 쿼리수가 너무 많습니다
select 만 한다면 그나마 나은데 insert, update를 하는 횟수가 저렇게 많으니 문제입니다
이미지 마지막 4행, 5행을 주목해 볼 필요가 있습니다
22:13:31~22:13:44 시간차가 13초 입니다
이것이 개인이 접속해서 키를 얻기 위해 기다려야 하는 시간이 되면
페이지 열리는데 10초 이상이라는 엄청난 시간을 기다려야 한다는 말이 됩니다
가끔씩 오래 걸리는 이유가 될 것 같습니다
가끔씩 오래 걸리는 이유가 될 것 같습니다
robot.txt가 만능은 아니고 몇개의 아이피는 차단을 시켰지만 일일이 추가할 수도 없는 노릇이고...
우선은 extend 폴더에 키생성 화일이 있어서 사이트에 접속하면 무조건 생성하는 것을
상품과 관련 있는 페이지에서 include 하도록 이동 시키는 것인데
뭔가 다른 방법을 찾아야할 것으로 보입니다
추천
0
0
댓글 3개

헐....
영카트이용자가 아니라 달리 할 이야기는 없지만 영카트의 공통적인 현상이고 문제라면 리자님이 균이님께 상을 주셔야겠습니다.
영카트이용자가 아니라 달리 할 이야기는 없지만 영카트의 공통적인 현상이고 문제라면 리자님이 균이님께 상을 주셔야겠습니다.

감사한 일이아니일가요 ㅎㅎ

저도 메인에 포함해 놓으니 부담이 되어서 상품관련 페이지에서만 작동하도록 해놓았습니다.