linuxÏÂfile descriptoerÏÞÖÆ
ĬÈÏ·ÖÀà 2009-11-21 14:47 ÔĶÁ0 ÆÀÂÛ0
×ֺţº ´ó´ó ÖÐÖРСС
Tuning file descriptor limits on Linux
Linux limits the number of file descriptors that any one process may open; the default limits are 1024 per process. These limits can prevent optimum performance of both benchmarking clients (such as httperf and apachebench) and of the web servers themselves (Apache is not affected, since it uses a process per connection, but single process web servers such as Zeus use a file descriptor per connection, and so can easily fall foul of the default limit).
The open file limit is one of the limits that can be tuned with the ulimit command. The command
ulimit -aS
displays the current limit, and
ulimit -aH
displays the hard limit (above which the limit cannot be increased without tuning kernel parameters in /proc).
The following is an example of the output of
ulimit -aH
. You can see that ......
1¡¢ ¹ØÓÚÍøÂç½Ó¿Ú¼°ÅäÖù¤¾ß˵Ã÷£»
ÍøÂç½Ó¿Ú(interface)ÊÇÍøÂçÓ²¼þÉ豸ÔÚ²Ù×÷ϵͳÖеıíʾ·½·¨£¬±ÈÈçÍø¿¨ÔÚLinux²Ù×÷ϵͳÖÐÓà ethX,ÊÇÓÉ0¿ªÊ¼µÄÕýÕûÊý£¬±ÈÈçeth0¡¢eth1...... ethX¡£¶øÆÕͨèºÍADSLµÄ½Ó¿ÚÊÇ pppX£¬±ÈÈçppp0µÈ£»
ÔÚLinux²Ù×÷ϵͳÖÐÅäÖÃÍøÂç½Ó¿Ú£¬Ò»°ãÊÇͨ¹ýÍøÂçÅäÖù¤¾ßʵÏֵ쬵«×îÖÕÄ¿µÄ»¹ÊÇͨ¹ýÍøÂçÅäÖù¤¾ßÀ´´ïµ½ÐÞ¸ÄÓëÍøÂçÏà¹ØµÄÅäÖÃÎļþ¶øÆð×÷Óõġ£ÓÉ´Ë˵À´£¬ÎÒÃÇÅäÖÃÍøÂç¿ÉÒÔÖ±½ÓÐÞ¸ÄÅäÖÃÎļþ¡£±ÈÈçÍøÂçÍøÂç½Ó¿Ú£¨Íø¿¨£©µÄIPµØÖ·¡¢×ÓÑÚÂë¡¢Íø¹Ø£¬ÔÚSlackware ÖÐÖ»ÐèÐÞ¸ÄÒ»¸öÅäÖÃÎļþ¾ÍÐÐÁË /etc/rc.d/rc.inet1 £¬¶øÔÚ Redhat/Fedora µÈ»òÒÔRedhat/Fedora Ϊ»ù´¡µÄ·¢ÐаæÖУ¬Ò»°ã񻃾¼°µ½ºÃ¼¸¸öÎļþ£¬±ÈÈç°üÀ¨ /etc/sysconfig/network-scripts/ifcfg-eth0ÔÚÄڵȡ£
Á˽âLinuxÍøÂçÅäÖÃÎļþÊǼ«ÎªÖØÒªµÄ£¬ÎÒÃÇͨ¹ý¹¤¾ßÐÞ¸ÄÁËʲô£¬ÊÇÔõôÉúЧµÄ£¬Ö»ÓÐÁ˽âÍøÂçÅäÖÃÎļþ²ÅÄܸãÇå³þ¡£×ö¸ö²»Ç¡µ±µÄ±ÈÓ÷£ºLinux ϵͳÊÇÒ»¸ö͸Ã÷µÄºÐ×Ó£¬ÖÁÓÚºÐ×ÓÀï×°µÄÊÇʲô¶¼ÊÇһĿÁËÈ»µÄ¡£¶ø±ÕÔ´²Ù×÷ϵͳ£¬ÎÒÃÇûÓлú»áÖªµÀÕâЩ£¬¸ü²»ÖªµÀËûÊÇÔõôʵÏֵġ£
¶ÔÓÚ¸´ÔÓµÄÍøÂçÄ£ÐÍ£¬Linux ÊÇÓм«´óµÄÓÅÊÆ£¬¿ÉÄÜÔÚÎÒÃÇ¿´¿´man ºÍhelp£¬ÐÞ¸ÄÐÞ¸ÄÅäÖÃÎļþ£¬ÔÚ¼¸·ÖÖӾͿÉÒ ......
LINUX³£ÓÃÃüÁ»ù´¡£©
1. man ¶ÔÄãÊìϤ»ò²»ÊìϤµÄÃüÁîÌṩ°ïÖú½âÊÍ
eg:man ls ¾Í¿ÉÒԲ鿴lsÏà¹ØµÄÓ÷¨
×¢£º°´q¼ü»òÕßctrl+cÍ˳ö£¬ÔÚlinuxÏ¿ÉÒÔʹÓÃctrl+cÖÕÖ¹µ±Ç°³ÌÐòÔËÐС£
2. ls ²é¿´Ä¿Â¼»òÕßÎļþµÄÊô*£¬ÁоٳöÈÎһĿ¼ÏÂÃæµÄÎļþ
eg: ls /usr/man
ls -l
a.d±íʾĿ¼(directory)£¬Èç¹ûÊÇÒ»¸ö"-"±íʾÊÇÎļþ£¬Èç¹ûÊÇlÔò±íʾÊÇÒ»¸öÁ¬½ÓÎļþ(link)
b.±íʾÎļþ»òÕßĿ¼Ðí¿ÉȨÏÞ.·Ö±ðÓÿɶÁ(r)£¬¿Éд(w)£¬¿ÉÔËÐÐ(x)¡£
3. cp ¿½±´Îļþ
eg: cp filename1 filename2 //°Ñfilename1¿½±´³Éfilename2
cp 1.c netseek/2.c //½«1.c¿½µ½netseekĿ¼ÏÂÃüÃûΪ2.c
4. rm ɾ³ýÎļþºÍĿ¼
eg: rm 1.c //½«1.cÕâ¸öÎļþɾ³ý
5. mv ÒÆ×ßĿ¼»òÕ߸ÄÎļþÃû
eg: mv filename1 filename2 //½«filename1 ¸ÄÃûΪfilename2
mv qib.tgz ../qib.tgz //ÒÆµ½ÉÏÒ»¼¶Ä¿Â¼
6. cd ¸Ä±äµ±Ç°Ä¿Â¼ pwd ²é¿´µ±Ç°ËùÔÚĿ¼ÍêÕû·¾¶
eg: pwd //²é¿´µ±Ç°ËùÔÚĿ¼·¾¶
cd netseek //½øÈënetseekÕâ¸öĿ¼
cd //Í˳öµ±Ç°Ä¿Â¼
7. cat£¬moreÃüÁî
½«Ä³¸öÎļþµÄÄÚÈÝÏÔʾ³öÀ´¡£Á½¸öÃüÁîËù²»Í¬µÄÊÇ:cat°ÑÎļþÄÚÈÝÒ»Ö±´òÓ¡³öÀ´£¬¶ø moreÔò·ÖÆÁÏÔʾ
eg; cat>1.c //¾Í¿ÉÒÔ°Ñ´úÂëÕ³Ìûµ½1.cÎļþÀ° ......
gcc mousekey.c -lX11 -IX11
´ò¿ªmousekeysÔËÐÐ./a.out
¹Ø±ÕmousekeysÔËÐÐ./a.out 1,ÕâÀïÔÚa.outºóÃæËæ±ã¼ÓÒ»¸ö²ÎÊý¾Í¿ÉÒÔÁË£¬ÒòΪÅжÏÌõ¼þΪ if(argc < 2)
/*********source code***************/
#include <stdio.h>
#include <string.h>
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
int main(int argc, char *argv[])
{
Display *display;
unsigned long which;
XkbDescPtr xkb;
unsigned int status_mask = 0;
unsigned short mk_delay = 160;
unsigned short mk_interval = 50;
unsigned short mk_time_to_max = 30;
unsigned short mk_max_speed = 50;
short mk_curve = 0;
Status S;
status_mask = XkbMouseKeysMask;
display = XOpenDisplay(NULL);
xkb = XkbGetMap(display, 0, XkbUseCoreKbd);
if((int)xkb == BadAlloc || xkb == NULL)
{
printf("ERROR: unable to allocate storege.\n");
return 1;
}
if((S = XkbGetControls(disp ......
LinuxÏÂÀ©Õ¹Ó²ÅÌ£¨Ò»£©
(2009-09-26 19:15:12)
±êÇ©£ºit
ËÄ¡¢fdisk ¶ÔÓ²Å̼°·ÖÇøµÄ²Ù×÷£¬½øÈëfdisk ¶ÔÓ²Å̲Ù×÷½×¶Î
¡¡¡¡ÎÒÃÇ¿ÉÒÔ¶ÔÓ²Å̽øÐзÖÇø²Ù×÷£¬Ç°ÌáÊÇÄú°Ñfdisk -l ŪÃ÷°×ÁË£»Í¨¹ýfdisk -l
£¬ÎÒÃÇÄÜÕÒ³ö»úÆ÷ÖÐËùÓÐÓ²Å̸öÊý¼°É豸Ãû³Æ£»±ÈÈçÉÏÃæµÄÀý×Ó£¬ÎÒÃǻῴµ½Á½¸öÉ豸һ¸öÊÇ/dev/hda £¬ÁíÒ»¸öÊÇ/dev/sda
£»
¡¡¡¡fdisk ²Ù×÷Ó²Å̵ÄÃüÁî¸ñʽÈçÏ£º
¡¡¡¡[root@localhost beinan]# fdisk É豸
¡¡¡¡±ÈÈçÎÒÃÇͨ¹ý fdisk -l µÃÖª /dev/hda »òÕß
/dev/sdaÉ豸£»ÎÒÃÇÈç¹ûÏëÔÙÌí¼Ó»òÕßɾ³ýһЩ·ÖÇø£¬¿ÉÒÔÓÃ
¡¡¡¡[root@localhost beinan]# fdisk /dev/hda
¡¡¡¡»ò
¡¡¡¡[root@localhost beinan]# fdisk /dev/sda
¡¡¡¡×¢ ÔÚÒÔºóµÄÀý×ÓÖУ¬ÎÒÃÇÒªÒÔ /dev/sdaÉ豸ΪÀý£¬À´½²½âÈçºÎÓÃfdisk
À´²Ù×÷Ìí¼Ó¡¢É¾³ý·ÖÇøµÈ¶¯×÷£»
¡¡¡¡1¡¢fdisk µÄ˵Ã÷£»
¡¡¡¡µ±ÎÒÃÇͨ¹ý fdisk É豸£¬½øÈëÏàÓ¦É豸µÄ²Ù×÷ʱ£¬»á·¢ÏÖÓÐÈçϵÄÌáʾ£»ÒÔ fdisk
/dev/sda É豸ΪÀý£¬ÒÔÏÂͬ£»
[root@localhost beinan]# fdisk /dev/sda
Command (m for help): ÔÚÕâÀï°´m £¬¾Í»áÊä³ö°ïÖú£»
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos com ......
LinuxÌṩ×î³£ÓõÄÍøÂçͨÐÅÓ¦ÓóÌÐò¿ª·¢½Ó¿Ú--BerkerleyÌ×½Ó×Ö(Socket)£®Ëü¼ÈÊÊÓÃÓÚͬһÖ÷»úÉϽø³Ì¼äͨÐÅ(IPC)£¬ÓÖÊÊÓÃÓÚ²»Í¬Ö÷»úÉϵĽø³Ì¼äͨÐÅ¡£Ì×½Ó×ÖµÄÉèÖÃͨ¹ýsocketµ÷ÓÃÍê³É£º
int socket(int family,int type,int protocol);
ÆäÖÐfamilyָͨÐÅÓò»òÐÒé×壬Linuxϵͳ֧³ÖµÄÍøÂçÐÒé×åÓÐPF_UNIX£¬PF_IPX£¬PF_PACKETµÈ¼¸Ê®ÖÖ£»typeΪÌ×½Ó×ÖÀàÐÍ,ĿǰÓÐSOCK_STREAM¡¢SOCK_DGRAM¡¢SOCK_RAW¡¢SOCK_PACKETµÈ£»protocolÊÇÌ×½Ó×ÖËùÓõÄÌØ¶¨ÐÒéÀàÐͺţ®
LinuxϵͳÌṩµÄ»ùÓÚÊý¾ÝÁ´Â·²ã¿ª·¢Ó¦ÓóÌÐòµÄ½Ó¿Ú¼¯³ÉÔÚÌ×½Ó×ÖÖУ¬ËüÊÇͨ¹ý´´½¨packetÀàÐ͵ÄÌ×½ÓÓʹӦÓóÌÐò¿ÉÖ±½ÓÔÚÊý¾ÝÁ´Â·²ã½ÓÊÕ»ò·¢ËÍδ±»ÏµÍ³´¦ÀíµÄÔʼµÄÊý¾Ý±¨ÎÄ(ÈçARP±¨ÎÄ)£¬Óû§Ò²¿ÉÒÔʹÓÃpacketÀàÐ͵ÄÌ×½ÓÓîÔÚÎïÀí²ãÉ϶¨Òå×Ô¼ºÌØÊâµÄÍøÂçÐÒé¡£Ö»ÓÐ×¢²áºÅΪ0µÄÓû§(³¬¼¶Óû§)½ø³Ì²ÅÄܽ¨Á¢»ò´ò¿ªÓÃÓÚ·ÃÎÊÍøÂçµÍ²ãµÄÌ×½Ó×Ö£®ÔÚLinuxϵͳÖУ¬ÓÃÒÔÏÂÈýÖÖ·½Ê½´´½¨µÄpacketÌ×½Ó×Ö¿ÉÖ±½ÓÓÃÓÚ·ÃÎÊÊý¾ÝÁ´Â·²ã£º
(1)PF_INETÐÒé×åÖÐSOCK_PACKEIÀàÐ͵ÄÌ×½Ó×Ö
(2)PF_PACKETÐÒé×åÖÐSOCK_RAWÀàÐ͵ÄÌ×½Ó×Ö
(3)PF_PACKETÐÒé×åÖÐSOCK_DGRAMÀàÐ͵ÄÌ×½Ó×Ö
Linux 2£®0ÖжÔÊý¾ÝÁ´Â·²ãµÄ²Ù×÷Ö÷ҪʹÓÃSOCK_PACKET¶¨ÒåµÄ ......