12-23-2005
Hi bright genious
what is Mbuf
The network subsystem uses a memory management facility that revolves around a data structure called an mbuf. Mbufs are mostly used to store data for incoming and outbound network traffic. Having mbuf pools of the right size can have a very positive effect on network performance. If the mbuf pools are configured improperly, both network and system performance can suffer. The AIX operating system offers the capability for run-time mbuf pool configuration. With this convenience comes the responsibility for knowing when the pools need adjusting and how much they should be adjusted.
The mbuf management facility controls two pools of buffers: a pool of small buffers (256 bytes each), which are simply called mbufs, and a pool of large buffers (4096 bytes each), which are usually called mbuf clusters or just clusters. The pools are created from system memory by making an allocation request to the Virtual Memory Manager (VMM). The pools consist of pinned pieces of virtual memory; this means that they always reside in physical memory and are never paged out. The result is that the real memory available for paging in application programs and data has been decreased by the amount that the mbuf pools have been increased. This is a nontrivial cost that must always be taken into account when considering an increase in the size of the mbuf pools.
The initial size of the mbuf pools is system-dependent. There is a minimum number of (small) mbufs and clusters allocated for each system, but these minimums are increased by an amount that depends on the specific system configuration. One factor affecting how much they are increased is the number of communications adapters in the system. The default pool sizes are initially configured to handle small- to medium-size network loads (network traffic of 100-500 packets/second). The pool sizes dynamically increase as network loads increase. The cluster pool shrinks if network loads decrease (the mbuf pool is never reduced). To optimize network performance, the administrator should balance mbuf pool sizes with network loads (packets/second). If the network load is particularly oriented towards UDP traffic (as it would be on an NFS server, for example) the size of the mbuf pool should be two times the packet/second rate
1. To change the maximum size of the mbuf pool to 3MB, enter:
no -o thewall=3072
2.To reset the maximum size of the mbuf pool to its default size, enter:
no -d thewall
To change the default socket buffer sizes on your system, add the following lines to the end of the /etc/rc.net file:
/usr/sbin/no -o tcp_sendspace=16384
/usr/sbin/no -o udp_recvspace=16384
The pool sizes dynamically increase as network loads increase. The cluster pool shrinks if network loads decrease ,if you dont have sufficient memory and your netwok load increase obviously the system will hang ,so in your case to solve the problem you should increase physical memory size or increase the mbuf pool size (compare this with the recommended action in your errpt command ,
for more information u can use the command,By using the netstat command you can get a rough idea of the network load in packets/second.
netstat -I tr0 5
It reports the input and output traffic both for the tr0 adapter and for all LAN adapters on the system. The output below shows the activity caused by a large ftp command operation:
$ netstat -I tr0 2
input (tr0) output input (Total) output
packets errs packets errs colls packets errs packets errs colls
20615 227 3345 0 0 20905 227 3635 0 0
17 0 1 0 0 17 0 1 0 0
174 0 320 0 0 174 0 320 0 0
248 0 443 0 0 248 0 443 0 0
210 0 404 0 0 210 0 404 0 0
239 0 461 0 0 239 0 461 0 0
253 1 454 0 0 253 1 454 0 0
246 0 467 0 0 246 0 467 0 0
99 1 145 0 0 99 1 145 0 0
13 0 1 0 0 13 0 1 0 0
The netstat command also has a flag, -m, that gives detailed information about the use and availability of the mbufs and clusters:
253 mbufs in use:
50 mbufs allocated to data
1 mbufs allocated to packet headers
76 mbufs allocated to socket structures
100 mbufs allocated to protocol control blocks
10 mbufs allocated to routing table entries
14 mbufs allocated to socket names and addresses
2 mbufs allocated to interface addresses
16/64 mapped pages in use
319 Kbytes allocated to network (39% in use)
0 requests for memory denied
0 requests for memory delayed
0 calls to protocol drain routines
The line 16/64 mapped pages in use indicates that there are 64 pinned clusters, of which 16 are currently in use.
This report can be compared to the existing system parameters by issuing a no -a command. The following lines from the report are of interest:
lowclust = 29
lowmbuf = 88
thewall = 2048
mb_cl_hiwat = 58
It is clear that on the test system, the 319 Kbytes allocated to network is considerably short of thewall value of 2048KB and the (64 - 16 = 48) free clusters are short of the mb_cl_hiwat limit of 58.
Dare AIXteam
9 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hy, I've an 486 dx2 laptop an I want to run unix on it, the problem is it has only 4 megabytes of ram, so my question is; does anybody know an unix based OS which runs with only 4 mb?
thanx (7 Replies)
Discussion started by: counTnegaTive
7 Replies
2. UNIX for Dummies Questions & Answers
I want to do a low level format like in windows (C:\format c:) but I don't know how it works in unix or linux.. Can somebody help me ? thnx :) (3 Replies)
Discussion started by: day
3 Replies
3. UNIX for Dummies Questions & Answers
I checked the server and issued various command to investigated. but from teh output of swap -s and swap -l,
i received the following
swap -l
swapfile dev swaplo blocks free
/dev/vx/dsk/swapvol 197,7 16 4194800 4127696
/dev/vx/dsk/swap2 197,8 16 12582896... (3 Replies)
Discussion started by: TRUEST
3 Replies
4. UNIX for Advanced & Expert Users
Hi and thx in advance :)
I have to transfert files between a UNIX server and a Network Appliance Filer and i have problem with accent characters on filename.
On unix side accent are interpreted as follow
ls -l unix* | cat -v
-rwxr--r-- 1 a067842 admDE 0 Sep 24 16:33... (2 Replies)
Discussion started by: solea
2 Replies
5. Shell Programming and Scripting
on the file Ftp'd from the mainframe ,do we have any UNIX command to replace mainframe low and values to space or null.
i tried using tr and it doesn't work ...
Thanks (1 Reply)
Discussion started by: rlmadhav
1 Replies
6. Emergency UNIX and Linux Support
Hi all,
which file has the low priority while linux booting?. I just want to run a script in background with low priority while linux boots up.(I need to include that script to be called from that file) as am a newbie to linux. Any help is appreciated.
Thanks,
SMNK (2 Replies)
Discussion started by: SMNK
2 Replies
7. AIX
Hello All
I have a system running AIX 61 shared uncapped partition (with 11 physical processors, 24 Virtual 72GB of Memory) .
The output from NMON, vmstat show a high run queue (60+) for continous periods of time intervals, but NO paging, relatively low I/o (6000) , CPU % is 40, Low network.... (9 Replies)
Discussion started by: IL-Malti
9 Replies
8. AIX
Hi
I am running AIX 5.2. My server is running low on memory. It it using about 1307775 file pages on a total of 1511424 (from vmstat -v).
I looked at the memory yesterday morning, and we had plenty of free memory. I did a backup from Windows (ftp mget command) of a large file selection. From... (5 Replies)
Discussion started by: fredrivard
5 Replies
9. Programming
Hi friends,
I hope everyone is doing well and fine. I have always been hearing that C/C++ are relatively low-level as compared to Java/C# etc. Could you please tell me some low-level qualities of C/C++? And I think disk deframenters are written in C/C++, please correct me if I am wrong. And please... (5 Replies)
Discussion started by: gabam
5 Replies