Moin Christoph,
Deshalb denke ich ja auch schon die ganze Zeit nach ;)
Dummerweise sind das aber reguläre Anfragen, die kann man
ja nicht einfach ignorieren.
Korrekt.
if(head.clients.clientnum > MAX_CLIENT_NUM) {
fo_log(LOG_STD,__FILE__,__LINE__,"rejecting connection\n");
writen(connfd,"507 Server has to many connections\n",35);
close(connfd);
pthread_mutex_unlock(&head.clients.lock);
}Ist aber sehr brutal.
Ja, ich weiss. Aber was soll ich sonst tun?
Wo ist denn da jetzt der Flaschenhals?
Im Server.
Das Problem ist, dass der poll-Thread jedesmal, wenn er
getimesliced werden koennte (im select()) direkt wieder
zurueck kehrt mit einer neuen Verbindung. Da hat halt ein
Worker-Thread kaum Gelegenheit, zu arbeiten.
Unwahrscheinlich, sind wohl eher die Platten.
Noe. Der Flaschenhals ist der Server.
Wieviel Speicher ist denn zur Verfügung?
Ein Gig.
Kann man was puffern? Forumshauptdatei komplett z.B.?
Das wird schon getan :)
Und das größte Problem, wie immer:
Auslagerungsdatei?
Wie sieht der Speicherbedarf aus? Wird viel ausgelagert?
Mem: 309M Active, 399M Inact, 218M Wired, 34M Cache, 112M Buf, 45M Free
Swap: 500M Total, 3400K Used, 497M Free
Nicht wirklich.
Gruesse,
CK