Merci pour cette réponse, ça me met sur une piste. On vient de passer en dédié, et le reste du site ne devrait pas pomper autant (portail j'ai suroptimisé la partie SQL + cache, le blog j'ai ajouté un cache maison aussi et tout ce qui est inutilisé a été impitoyablement supprimé).
Par contre j'ai bien installé le mod guest sessions pour retirer le SID dans le cadre du rewriting, mais j'ai plusieurs sessions par ip, je peux régler le chiffre.
J'avais été amené à ajouter ceci avant d'installer le rewriting, c'est au dessus du paragraphe
//
// Regenerate the auto-login key
//
Avant
$sql = "INSERT INTO " . SESSIONS_TABLE . "
(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin)
VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $admin)";
if ( !$db->sql_query($sql) )
dans sessions.php paragraphe create or update a session
// rajout MOD
$sql = "SELECT COUNT(*) as numrows FROM ". SESSIONS_TABLE ." WHERE session_ip = '$user_ip'";
$result = $db->sql_query($sql);
if ( !$result )
{
message_die(CRITICAL_ERROR, 'Error checking existing sessions', '', __LINE__, __FILE__, $sql);
}
$numrows = $db->sql_fetchrow($result);
if($numrows['numrows'] > 4) // réglage ici
{
$delete_limit = $numrows['numrows'] - 4;
switch( SQL_LAYER )
{
case 'mysql4':
$sql = "DELETE FROM ". SESSIONS_TABLE ." WHERE session_ip = '$user_ip' ORDER BY session_start ASC LIMIT $delete_limit";
break;
default:
$sql = "SELECT session_start FROM ". SESSIONS_TABLE ." WHERE session_ip = '$user_ip' ORDER BY session_start DESC LIMIT 4";
$result = $db->sql_query($sql);
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error select session data', '', __LINE__, __FILE__, $sql);
}
$session_rows = $db->sql_fetchrowset($result);
$sql = "DELETE FROM ". SESSIONS_TABLE ." WHERE session_ip = '$user_ip' AND session_start < ".$session_rows[3]['session_start'];
}
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error deleting old sessions', '', __LINE__, __FILE__, $sql);
}
}
//fin rajout MOD
C'est du vieux code, pour limiter les sessions, ça date on avait des problèmes de table de sessions pleine. Ca doit faire double emploi, voire parasiter le mod guest sessions. J'avais commenté le fichier, je peux le retirer, il n'y avait que ça à ajouter. Je retire ?