2013-12-10 3 views
2

저는 Joomla 1.5.10 기반 인트라넷 시스템을 사용하고 있습니다. DB 스레드의 수가 너무 많아 성능이 떨어지는 경우가 있습니다. 관리자 섹션을 통해 확인할 때 로그인 한 사용자 수만 볼 수 있습니다. 이 수는 1000-5000 사이입니다. 내가 쿼리 위에 실행하고 로그인 한 관리자를 통해 사용자 아래에있는 데이터를 확인하는 경우, 예를 들어Joomla 1.5 : joomla 기반 인트라넷 시스템에서 동시/활성 사용자 수를 찾는 방법

select count(*) from jos_session; 

:

select count(*) from jos_session; = 2628 
logged-in users visible from admin section = 1545 
를이 동시 활성 사용자를 찾을 쿼리 아래 실행 올바른지

두 결과가 서로 일치하지 않습니다. 또한 한 번에 내 시스템에서 동시/활성 사용자를 찾는 가장 좋은 방법은 무엇입니까?

+1

1.5.26 + 최신 패치 적용으로 업그레이드하십시오. 1.5.10은 매우 안전하지 않습니다. –

답변

1

나는 단지 __session을 분석함으로써 당신이 필요로하거나 원하는 정보를 얻지 못할 것이라고 생각합니다.

administrator\modules\mod_status\mod_status.php

나열된 모든 쿼리가 있습니다 : 당신은 당신이 백 엔드에서 무엇을보고 이해하는 데 필요한 경우는에있는 모듈을 확인합니다. 중요한 것은 guest이 인증되지 않은 사용자이며 client_id (프론트 엔드 (0) VS 백엔드 인증 (1))임을 이해하는 것입니다. 여기

는 것입니다 :

  • jos_session 저장 만료되지 않은 모든 세션
  • 아마
  • 당신이 닫히고 경우 사용자가 아마도 새로운 세션 ID를 얻을 수 있다는 것을 의미 SSO 인증 메커니즘을 가지고 브라우저를 다시 엽니 다. active 세션이 사용자보다 많으면 세션 만료 시간이 높음으로 설정되어 있음을 나타내는 명확한 신호입니다. 너무 많은 사용자가 count에 대한 너무 큰 값을 가질 경우

    SELECT `username`, count(username) FROM `jos_session` WHERE 1 GROUP BY `username` 
    

    이 세션의 수명이 단축 :

는 그냥 jos_session에 대해 쿼리를 수행합니다.

이 방법을 사용하면 시스템의 특정 시간에 얼마나 많은 사용자가 있는지에 대한보다 현실적인 그림을 얻을 수 있지만이 또한 단지 세션 일 뿐이며 실제로 얼마나 많은 사용자가 실제로 수행 중인지에 대한 정확한 정보는 제공하지 않습니다. 웹 사이트에서의 행동.

일반 영어로 표시하려면 다음과 같이 말합니다. 1500 명의 사용자가 마지막 [FILL IN SESSION LIFETIME] 분에 인트라넷을 열었다는 것을 알고 있습니다.

Session settings

당신은 방법을 정확하게 이해 값이 높은 이유 DB 스레드가 생성 얻을 말고해야합니다.

기본적으로 documentation

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling mysql_close(). 당신이 AJAX 요청과 서버가 사용자가 열어 브라우저를 경우에도 실행할 수있는 몇 가지 정보를 얻을 수있는 자바 스크립트 폴링 같은이있는 경우 확인 가치가있을 수도 있습니다 인용.

희망 사항은 다른 방식으로도 도움이되기를 바랍니다.

+0

설명을위한 많은 감사 발렌틴. 내 시스템에는 게스트 사용자를위한 규정이 없습니다. 로그인 한 후에 만 ​​사용자가 응용 프로그램에 입장 할 수 있습니다. 또한, 당신이 제공하는 쿼리를 실행할 때 count> = 4 인 소수의 사용자 만있는 것으로 나타났습니다. 최대 사용자 수는 1-2입니다. 이 스크립트를 실행하더라도 관리 섹션 (1966)에 표시된 로그인 사용자와 위의 쿼리 실행 후 가져온 레코드 수 (1579) 사이에는 차이가 있습니다. 내 애플리케이션에서 세션 수명을 어떻게 관리 할 수 ​​있습니까? – ursitesion

+0

Jooma -> 글로벌 구성 -> 시스템 -> 세션 설정 (1.5와 비슷한 것이어야합니다.) –

+0

감사합니다. 설정을 얻었으며 세션 수명이 120 분이라는 것을 알았습니다. – ursitesion