‘壹’ linux 锻戒护琛 缂揿啿鍖哄お灏忔庝箞锷
浣犲ソ锛屾牴鎹銆妉inux灏辫ヨ繖涔埚︺嬭繖链涔﹂噷鍏充簬history锻戒护镄勮茶В锛岀粰鍑轰笅鍒楄В閲婏细
鎺у埗铡嗗彶锻戒护璁板綍镄勪釜鏁帮细
export HISTSIZE=1000 璁剧疆鍐呭瓨涓镄删istory锻戒护镄勪釜鏁
export HISTFILESIZE=1000 璁剧疆鏂囦欢涓镄删istory锻戒护镄勪釜鏁
淇鏀硅繖涓涓や釜鍙傛暟鍗冲彲鏀瑰彉锻戒护琛岀紦鍐插尯镄勫ぇ灏 锛屽傛灉杩樻槸链変笉鏄庣槠镄勫湴鏂瑰彲浠ョ湅鐪嬫垜涓婇溃鎻愬埌镄勯偅链涔︾睄锛岃茬殑寰堣︾粏锛屽笇链涘逛綘链夊府锷╋紒
‘贰’ linux如何修改音频播放缓冲区
debian是点右上角的喇叭,audio mixer->output device->advanced,latency offset修改延迟缓冲的毫秒数,因为用到audiciy修饰音频一般调整在10-20ms,各大linux发行版本默认硬件缓冲128block可支持一般播放,ac97或者realtek本身硬件支持asio自带缓存。
‘叁’ 修改linux系统socket缓冲区大小
进行socket编程有时候可能需要修改下socket的接收缓冲区大小,这里可以使用 setsockopt 函数,但是如果需要修改的缓冲区很大(比如500MB),则还需要修改系统内核的TCP/IP参数,不然接收缓冲区大小会收到内核参数的限制,所以需要改两个地方。下面以把socket接收缓冲区修改为500MB说明一下要作的修改。《Linux就该这么学》
修改内核TCP/IP参数
在终端用sysctl命令修改socket最大缓冲区限制:
sudo sysctl -w net.core.rmem_max=5242880001
在代码中用setsockopt函数修改SO_RCVBUF选项
int recvbuff = 500*1024*1024;
if(setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (const char*)&recvbuff, sizeof(int)) == -1)
printf("setsocket error
");
else
printf("setsocket success
");12345
以上两点,只改第1点,一个socket只会预留63个报文的接收缓冲;只改第2点,缓冲区大小会受到rmem_max的限制,如果需要的缓冲区很大的话,必须两点都改。
‘肆’ 请教Linux关于UDP最大缓冲区设置
1. tcp 收发缓冲区默认值
[root@ www.linuxidc.com]# cat /proc/sys/net/ipv4/tcp_rmem
4096 87380 4161536
87380 :tcp接收缓冲区的默认值
[root@ www.linuxidc.com]# cat /proc/sys/net/ipv4/tcp_wmem
4096 16384 4161536
16384 : tcp 发送缓冲区的默认值
2. tcp 或udp收发缓冲区最大值
[root@ www.linuxidc.com]# cat /proc/sys/net/core/rmem_max
131071
131071:tcp 或 udp 接收缓冲区最大可设置值的一半。
也就是说调用 setsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 时rcv_size 如果超过 131071,那么
getsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 去到的值就等于 131071 * 2 = 262142
[root@ www.linuxidc.com]# cat /proc/sys/net/core/wmem_max
131071
131071:tcp 或 udp 发送缓冲区最大可设置值得一半。
跟上面同一个道理
3. udp收发缓冲区默认值
[root@ www.linuxidc.com]# cat /proc/sys/net/core/rmem_default
111616:udp接收缓冲区的默认值
[root@ www.linuxidc.com]# cat /proc/sys/net/core/wmem_default
111616
111616:udp发送缓冲区的默认值
4. tcp 或udp收发缓冲区最小值
tcp 或udp接收缓冲区的最小值为 256 bytes,由内核的宏决定;
tcp 或udp发送缓冲区的最小值为 2048 bytes,由内核的宏决定
‘伍’ 请教Linux关于UDP最大缓冲区设置
1. tcp 收发缓冲区默认值 [root@ ]# cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 4161536 87380 :tcp接收缓冲区的默认值 [root@ ]# cat /proc/sys/net/ipv4/tcp_wmem 4096 16384 4161536 16384 : tcp 发送缓冲区的默认值 2. tcp 或udp收发缓冲区最大值 [root@ ]# cat /proc/sys/net/core/rmem_max 131071 131071:tcp 或 udp 接收缓冲区最大可设置值的一半。 也就是说调用 setsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 时rcv_size 如果超过 131071,那么 getsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 去到的值就等于 131071 * 2 = 262142 [root@ ]# cat /proc/sys/net/core/wmem_max 131071 131071:tcp 或 udp 发送缓冲区最大可设置值得一半。 跟上面同一个道理 3. udp收发缓冲区默认值 [root@ ]# cat /proc/sys/net/core/rmem_default 111616:udp接收缓冲区的默认值 [root@ ]# cat /proc/sys/net/core/wmem_default 111616 111616:udp发送缓冲区的默认值 4. tcp 或udp收发缓冲区最小值 tcp 或udp接收缓冲区的最小值为 256 bytes,由内核的宏决定; tcp 或udp发送缓冲区的最小值为 2048 bytes,由内核的宏决定