file descriptors

Murat Arslan (arslanm@arslanm.linux-tr.EU.org)
Wed, 22 Apr 1998 15:53:28 +0300 (EEST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--986975756-1184811616-893246417=:4539
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.3.96.980422154948.5882B@gate.marketweb.net.tr>

SeLamLar,

Bir sure once Linux'de maximum socket sayIsInI nasIL arttIrabiLiriz
gibisinden soruLar geLiyordu.. Ekte 2.0.30 sonrasI herhangi bir
kernel iCin patch gonderiyorum.. Bu patch yapILdIGInda linux makinanIz
3000 socket kaLdIrabiLecek duruma geLir.

echo 32768 > /proc/sys/kernel/inode-max
echo 8192 > /proc/sys/kernel/file-max

patch kurduktan sonra sorun cikarsa, komutlarini girmeyi deneyin.

Asagidaki ufak programla da max socket sayisini deneyebilirsiniz..

/* testsocks.c, arslanm@cyberdude.com
*
* Program 7. (echo) porta baglanarak acilabilecek maximum socket sayisini
* deniyor. /etc/inetd.conf 'dan (eger) echo kaldirilmissa ekleyin.
* program sonunda `killall -HUP inetd` yapmayi unutmayin.
*
* prompt> gcc -o testsocks testsocks.c
* prompt> ./testsocks
* 2998 adet baglanti gerceklestirildi!
* prompt>
*/

#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>

#define ADRES "127.0.0.1"
#define PORT 7
#define KACTANE 3000

int i;
int my_connect (char *name, int port) {
int sock, con;
struct sockaddr_in s_addr;

bzero((struct sockaddr_in * )&s_addr,sizeof(s_addr));
s_addr.sin_family = AF_INET;
s_addr.sin_port = htons(port);
sock = socket (AF_INET,SOCK_STREAM,6);
if (sock < 0) {
if(i != 1)
printf("%d adet baglanti gerceklestirildi!\n", i);
else
printf("Soket acilamadi!\n");
exit(0);
}
con = connect(sock,(struct sockaddr *) &s_addr,sizeof(s_addr));
if (con) {
if(i != 1)
printf("%d adet baglanti gerceklestirildi!\n", i);
else
printf("Sokete baglanilamadi!\n");
exit(0);
}
return sock;
}
void main(void) {
int c;
for(i=1 ; i < KACTANE ; i++)
c = my_connect(ADRES, PORT);
}

KoLay geLsin,
__
Murat Arslan
PGP KeyID : 2047/673351F1
For PGPkey: finger arslanm@gate.marketweb.net.tr
Key FPrint: F1C6 E3F2 91C2 CD98 440B 4073 DFBC 532F

--986975756-1184811616-893246417=:4539
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="fd.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.980422150017.4539B@gate.marketweb.net.tr>
Content-Description: fd patch for 3000 file descriptors

ZGlmZiAtdSAtciBsaW51eC0yLjAuMzMtd29ya2luZy1vbi9mcy9zZWxlY3Qu
YyBsaW51eC0yLjAuMzMvZnMvc2VsZWN0LmMNCi0tLSBsaW51eC0yLjAuMzMt
d29ya2luZy1vbi9mcy9zZWxlY3QuYwlNb24gRGVjIDMwIDE1OjU3OjAyIDE5
OTYNCisrKyBsaW51eC0yLjAuMzMvZnMvc2VsZWN0LmMJTW9uIEFwciAyMCAx
OTo0MToxNiAxOTk4DQpAQCAtMjEsNiArMjEsNyBAQA0KICNpbmNsdWRlIDxs
aW51eC9lcnJuby5oPg0KICNpbmNsdWRlIDxsaW51eC9wZXJzb25hbGl0eS5o
Pg0KICNpbmNsdWRlIDxsaW51eC9tbS5oPg0KKyNpbmNsdWRlIDxtYWxsb2Mu
aD4NCiANCiAjaW5jbHVkZSA8YXNtL3NlZ21lbnQuaD4NCiAjaW5jbHVkZSA8
YXNtL3N5c3RlbS5oPg0KQEAgLTIzNywyMyArMjM4LDQ5IEBADQogICogVXBk
YXRlOiBFUkVTVEFSVFNZUyBicmVha3MgYXQgbGVhc3QgdGhlIHh2aWV3IGNs
b2NrIGJpbmFyeSwgc28NCiAgKiBJJ20gdHJ5aW5nIEVSRVNUQVJUTk9IQU5E
IHdoaWNoIHJlc3RhcnQgb25seSB3aGVuIHlvdSB3YW50IHRvLg0KICAqLw0K
KyNkZWZpbmUgcm91bmRiaXQobiwgdHlwZSkgKCgobikgKyBzaXplb2YodHlw
ZSkqOCAtIDEpICYgfihzaXplb2YodHlwZSkqOC0xKSkNCitzdGF0aWMgdW5z
aWduZWQgbG9uZyAqIHNhdmVfZmRzWzUwXSA9IHtOVUxMLCB9Ow0KK3N0YXRp
YyBpbnQgZmRzX2luZGV4ID0gMDsNCiBhc21saW5rYWdlIGludCBzeXNfc2Vs
ZWN0KGludCBuLCBmZF9zZXQgKmlucCwgZmRfc2V0ICpvdXRwLCBmZF9zZXQg
KmV4cCwgc3RydWN0IHRpbWV2YWwgKnR2cCkNCiB7DQorCXVuc2lnbmVkIGxv
bmcgKiBmZHMgPSAwOw0KIAlpbnQgZXJyb3I7DQotCWxpbWl0ZWRfZmRfc2V0
IHJlc19pbiwgaW47DQotCWxpbWl0ZWRfZmRfc2V0IHJlc19vdXQsIG91dDsN
Ci0JbGltaXRlZF9mZF9zZXQgcmVzX2V4LCBleDsNCisJbGltaXRlZF9mZF9z
ZXQgKnJlc19pbiwgKmluOw0KKwlsaW1pdGVkX2ZkX3NldCAqcmVzX291dCwg
Km91dDsNCisJbGltaXRlZF9mZF9zZXQgKnJlc19leCwgKmV4Ow0KIAl1bnNp
Z25lZCBsb25nIHRpbWVvdXQ7DQorCWludCBzaXplOw0KIA0KIAllcnJvciA9
IC1FSU5WQUw7DQogCWlmIChuIDwgMCkNCiAJCWdvdG8gb3V0Ow0KIAlpZiAo
biA+IE5SX09QRU4pDQogCQluID0gTlJfT1BFTjsNCi0JaWYgKChlcnJvciA9
IGdldF9mZF9zZXQobiwgaW5wLCAmaW4pKSB8fA0KLQkgICAgKGVycm9yID0g
Z2V0X2ZkX3NldChuLCBvdXRwLCAmb3V0KSkgfHwNCi0JICAgIChlcnJvciA9
IGdldF9mZF9zZXQobiwgZXhwLCAmZXgpKSkgZ290byBvdXQ7DQotCXRpbWVv
dXQgPSB+MFVMOw0KKyANCisgICAgICAgIHNpemUgPSByb3VuZGJpdChOUl9P
UEVOLCB1bnNpZ25lZCBsb25nKSAvIDg7DQorICAgICAgICBpZiAoc2F2ZV9m
ZHNbZmRzX2luZGV4XSkgew0KKyAgICAgICAgICAgICAgICBmZHMgPSBzYXZl
X2Zkc1tmZHNfaW5kZXhdOw0KKyAgICAgICAgICAgICAgICBzYXZlX2Zkc1tm
ZHNfaW5kZXhdID0gTlVMTDsNCisgICAgICAgICAgICAgICAgaWYgKGZkc19p
bmRleCA+IDApDQorICAgICAgICAgICAgICAgICAgICAgICAgLS1mZHNfaW5k
ZXg7DQorICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgICAgICBmZHMg
PSBrbWFsbG9jKDYgKiBzaXplLCBHRlBfS0VSTkVMKTsNCisgICAgICAgIH0N
CisgICAgICAgIGlmICghZmRzKSB7DQorICAgICAgICAgICAgICAgIGVycm9y
ID0gLUVOT01FTTsNCisgICAgICAgICAgICAgICAgZ290byBvdXQ7DQorICAg
ICAgICB9DQorICAgICAgICBpbiA9IChsaW1pdGVkX2ZkX3NldCAqKSBmZHM7
DQorICAgICAgICBvdXQgPSAobGltaXRlZF9mZF9zZXQgKikgKCgoY2hhciop
ZmRzKSArIHNpemUpOw0KKyAgICAgICAgZXggPSAobGltaXRlZF9mZF9zZXQg
KikgKCgoY2hhciopZmRzKSArIHNpemUqMik7DQorICAgICAgICByZXNfaW4g
PSAobGltaXRlZF9mZF9zZXQgKikgKCgoY2hhciopZmRzKSArIHNpemUqMyk7
DQorICAgICAgICByZXNfb3V0ID0gKGxpbWl0ZWRfZmRfc2V0ICopICgoKGNo
YXIqKWZkcykgKyBzaXplKjQpOw0KKyAgICAgICAgcmVzX2V4ID0gKGxpbWl0
ZWRfZmRfc2V0ICopICgoKGNoYXIqKWZkcykgKyBzaXplKjUpOw0KKw0KKyAg
ICAgICAgaWYgKChlcnJvciA9IGdldF9mZF9zZXQobiwgaW5wLCBpbikpIHx8
DQorICAgICAgICAgICAgKGVycm9yID0gZ2V0X2ZkX3NldChuLCBvdXRwLCBv
dXQpKSB8fA0KKyAgICAgICAgICAgIChlcnJvciA9IGdldF9mZF9zZXQobiwg
ZXhwLCBleCkpKSBnb3RvIG91dDsNCisgCXRpbWVvdXQgPSB+MFVMOw0KIAlp
ZiAodHZwKSB7DQogCQllcnJvciA9IHZlcmlmeV9hcmVhKFZFUklGWV9XUklU
RSwgdHZwLCBzaXplb2YoKnR2cCkpOw0KIAkJaWYgKGVycm9yKQ0KQEAgLTI2
MywxNyArMjkwLDE4IEBADQogCQlpZiAodGltZW91dCkNCiAJCQl0aW1lb3V0
ICs9IGppZmZpZXMgKyAxOw0KIAl9DQotCXplcm9fZmRfc2V0KG4sICZyZXNf
aW4pOw0KLQl6ZXJvX2ZkX3NldChuLCAmcmVzX291dCk7DQotCXplcm9fZmRf
c2V0KG4sICZyZXNfZXgpOw0KKyAgICAgICAgemVyb19mZF9zZXQobiwgcmVz
X2luKTsNCisgICAgICAgIHplcm9fZmRfc2V0KG4sIHJlc19vdXQpOw0KKyAg
ICAgICAgemVyb19mZF9zZXQobiwgcmVzX2V4KTsNCisNCiAJY3VycmVudC0+
dGltZW91dCA9IHRpbWVvdXQ7DQogCWVycm9yID0gZG9fc2VsZWN0KG4sDQot
CQkoZmRfc2V0ICopICZpbiwNCi0JCShmZF9zZXQgKikgJm91dCwNCi0JCShm
ZF9zZXQgKikgJmV4LA0KLQkJKGZkX3NldCAqKSAmcmVzX2luLA0KLQkJKGZk
X3NldCAqKSAmcmVzX291dCwNCi0JCShmZF9zZXQgKikgJnJlc19leCk7DQor
ICAgICAgICAgICAgICAgIChmZF9zZXQgKikgaW4sDQorICAgICAgICAgICAg
ICAgIChmZF9zZXQgKikgb3V0LA0KKyAgICAgICAgICAgICAgICAoZmRfc2V0
ICopIGV4LA0KKyAgICAgICAgICAgICAgICAoZmRfc2V0ICopIHJlc19pbiwN
CisgICAgICAgICAgICAgICAgKGZkX3NldCAqKSByZXNfb3V0LA0KKyAgICAg
ICAgICAgICAgICAoZmRfc2V0ICopIHJlc19leCk7DQogCXRpbWVvdXQgPSBj
dXJyZW50LT50aW1lb3V0IC0gamlmZmllcyAtIDE7DQogCWN1cnJlbnQtPnRp
bWVvdXQgPSAwOw0KIAlpZiAoKGxvbmcpIHRpbWVvdXQgPCAwKQ0KQEAgLTI5
Miw5ICszMjAsMTggQEANCiAJCQlnb3RvIG91dDsNCiAJCWVycm9yID0gMDsN
CiAJfQ0KLQlzZXRfZmRfc2V0KG4sIGlucCwgJnJlc19pbik7DQotCXNldF9m
ZF9zZXQobiwgb3V0cCwgJnJlc19vdXQpOw0KLQlzZXRfZmRfc2V0KG4sIGV4
cCwgJnJlc19leCk7DQorICAgICAgICBzZXRfZmRfc2V0KG4sIGlucCwgcmVz
X2luKTsNCisgICAgICAgIHNldF9mZF9zZXQobiwgb3V0cCwgcmVzX291dCk7
DQorICAgICAgICBzZXRfZmRfc2V0KG4sIGV4cCwgcmVzX2V4KTsNCiBvdXQ6
DQorICAgICAgICBpZiAoZmRzKSB7DQorICAgICAgICAgICAgICAgIGlmIChm
ZHNfaW5kZXggPCA0OCkgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChzYXZlX2Zkc1tmZHNfaW5kZXhdKQ0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKytmZHNfaW5kZXg7DQorICAgICAgICAgICAgICAgICAg
ICAgICAgc2F2ZV9mZHNbZmRzX2luZGV4XSA9IGZkczsNCisgICAgICAgICAg
ICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICAgICAgICAgICAgICBrZnJl
ZShmZHMpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICB9DQogCXJl
dHVybiBlcnJvcjsNCiB9DQpkaWZmIC11IC1yIGxpbnV4LTIuMC4zMy13b3Jr
aW5nLW9uL2luY2x1ZGUvbGludXgvZnMuaCBsaW51eC0yLjAuMzMvaW5jbHVk
ZS9saW51eC9mcy5oDQotLS0gbGludXgtMi4wLjMzLXdvcmtpbmctb24vaW5j
bHVkZS9saW51eC9mcy5oCVRodSBBcHIgIDIgMTg6MDM6NTEgMTk5OA0KKysr
IGxpbnV4LTIuMC4zMy9pbmNsdWRlL2xpbnV4L2ZzLmgJTW9uIEFwciAyMCAx
OTo0Mjo1OCAxOTk4DQpAQCAtMjcsNyArMjcsNyBAQA0KIA0KIC8qIEZpeGVk
IGNvbnN0YW50cyBmaXJzdDogKi8NCiAjdW5kZWYgTlJfT1BFTg0KLSNkZWZp
bmUgTlJfT1BFTiAyNTYNCisjZGVmaW5lIE5SX09QRU4gMzAwMA0KIA0KICNk
ZWZpbmUgTlJfU1VQRVIgNjQNCiAjZGVmaW5lIEJMT0NLX1NJWkUgMTAyNA0K
ZGlmZiAtdSAtciBsaW51eC0yLjAuMzMtd29ya2luZy1vbi9pbmNsdWRlL2xp
bnV4L2xpbWl0cy5oIGxpbnV4LTIuMC4zMy9pbmNsdWRlL2xpbnV4L2xpbWl0
cy5oDQotLS0gbGludXgtMi4wLjMzLXdvcmtpbmctb24vaW5jbHVkZS9saW51
eC9saW1pdHMuaAlXZWQgSnVsIDE3IDE1OjEwOjAzIDE5OTYNCisrKyBsaW51
eC0yLjAuMzMvaW5jbHVkZS9saW51eC9saW1pdHMuaAlNb24gQXByIDIwIDE5
OjQzOjMzIDE5OTgNCkBAIC0xLDEyICsxLDEyIEBADQogI2lmbmRlZiBfTElO
VVhfTElNSVRTX0gNCiAjZGVmaW5lIF9MSU5VWF9MSU1JVFNfSA0KIA0KLSNk
ZWZpbmUgTlJfT1BFTgkJIDI1Ng0KKyNkZWZpbmUgTlJfT1BFTgkJMzAwMA0K
IA0KICNkZWZpbmUgTkdST1VQU19NQVggICAgICAgMzIJLyogc3VwcGxlbWVu
dGFsIGdyb3VwIElEcyBhcmUgYXZhaWxhYmxlICovDQogI2RlZmluZSBBUkdf
TUFYICAgICAgIDEzMTA3MgkvKiAjIGJ5dGVzIG9mIGFyZ3MgKyBlbnZpcm9u
IGZvciBleGVjKCkgKi8NCiAjZGVmaW5lIENISUxEX01BWCAgICAgICAgOTk5
ICAgIC8qIG5vIGxpbWl0IDotKSAqLw0KLSNkZWZpbmUgT1BFTl9NQVggICAg
ICAgICAyNTYJLyogIyBvcGVuIGZpbGVzIGEgcHJvY2VzcyBtYXkgaGF2ZSAq
Lw0KKyNkZWZpbmUgT1BFTl9NQVggICAgICAgIDMwMDAJLyogIyBvcGVuIGZp
bGVzIGEgcHJvY2VzcyBtYXkgaGF2ZSAqLw0KICNkZWZpbmUgTElOS19NQVgg
ICAgICAgICAxMjcJLyogIyBsaW5rcyBhIGZpbGUgbWF5IGhhdmUgKi8NCiAj
ZGVmaW5lIE1BWF9DQU5PTiAgICAgICAgMjU1CS8qIHNpemUgb2YgdGhlIGNh
bm9uaWNhbCBpbnB1dCBxdWV1ZSAqLw0KICNkZWZpbmUgTUFYX0lOUFVUICAg
ICAgICAyNTUJLyogc2l6ZSBvZiB0aGUgdHlwZS1haGVhZCBidWZmZXIgKi8N
CmRpZmYgLXUgLXIgbGludXgtMi4wLjMzLXdvcmtpbmctb24vaW5jbHVkZS9s
aW51eC9wb3NpeF90eXBlcy5oIGxpbnV4LTIuMC4zMy9pbmNsdWRlL2xpbnV4
L3Bvc2l4X3R5cGVzLmgNCi0tLSBsaW51eC0yLjAuMzMtd29ya2luZy1vbi9p
bmNsdWRlL2xpbnV4L3Bvc2l4X3R5cGVzLmgJU2F0IE9jdCAyNSAxNjozNTo1
OCAxOTk3DQorKysgbGludXgtMi4wLjMzL2luY2x1ZGUvbGludXgvcG9zaXhf
dHlwZXMuaAlNb24gQXByIDIwIDE5OjQ0OjA3IDE5OTgNCkBAIC0zMCw3ICsz
MCw3IEBADQogI2RlZmluZSBfX05GREJJVFMJKDggKiBzaXplb2YodW5zaWdu
ZWQgbG9uZykpDQogDQogI3VuZGVmIF9fRkRfU0VUU0laRQ0KLSNkZWZpbmUg
X19GRF9TRVRTSVpFCTEwMjQNCisjZGVmaW5lIF9fRkRfU0VUU0laRQk0MDk2
DQogDQogI3VuZGVmIF9fRkRTRVRfTE9OR1MNCiAjZGVmaW5lIF9fRkRTRVRf
TE9OR1MJKF9fRkRfU0VUU0laRS9fX05GREJJVFMpDQo=
--986975756-1184811616-893246417=:4539--