freebsd内核编译、优化
1.安装CVSUP:
最好在安装时装好cvsup;
freebsd# cd /usr/ports/net/cvsup-without-gui/
freebsd# make install clean
2.升级源码:
freebsd# ee /usr/share/examples/cvsup/stable-supfile
把:
default host=CHANGE_THIS.FreeBSD.org
改为:
default host=cvsup.FreeBSDchina.org
src-all
freebsd# ee /usr/share/examples/cvsup/ports-supfile
把:
default host=CHANGE_THIS.FreeBSD.org
改为:
default host=cvsup.FreeBSDchina.org
freebsd# cvsup -g -L 2 /usr/share/examples/cvsup/stable-supfile
或者 csup -g -L 2 /usr/share/examples/cvsup/stable-supfile
freebsd# cvsup -g -L 2 /usr/share/examples/cvsup/ports-supfile
freebsd# cd /usr/obj
freebsd# chflags -R noschg *
freebsd# rm -rf *
3.重新编译源码和内核
freebsd# cd /usr/src/sys/amd64(或i386---32位与64位,分别选择相应的)/conf/
freebsd# mkdir /root/kernels
freebsd# cp GENERIC /root/kernels/MYKERNEL
freebsd# cd /usr/src
freebsd# ln -s /root/kernels/MYKERNEL
freebsd# make buildworld //编译所有的系统程序
freebsd# make buildkernel KERNCONF=MYKERNEL //编译新的系统核心
freebsd# reboot
freebsd# make installkernel KERNCONF=MYKERNEL //安裝新的系统核心
freebsd# make installworld //安装新的系统程序
freebsd# reboot
重启系统用uname -a查看编辑后的内核是否是自己定制的内核;
device em # Broadcom BCM570xx Gigabit Ethernet //加载网卡,一定要慎重,特别是远程
如果不确定网卡型号,可用dmesg |less 查看
mv /boot/kernel /boot/kernel.bak
mv /boot/kernel.old /boot/kernel
ident MYKERNE
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCC
options SC_DISABLE_REBOOT
options IPFIREWALL_DEFAULT_TO_ACCEPT
options DUMMYNET
options HZ=1000
device crypto
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!]
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options P1003_1B_SEMAPHORES # POSIX-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options ADAPTIVE_GIANT # Giant mutex is adaptive.
options STOP_NMI # Stop CPUS using NMI instead of IPI
options AUDIT # Security event auditing
options SMP # Symmetric MultiProcessor Kernel
device apic # I/O APIC
device cpufreq
device eisa
device pci
device mpt # LSI-Logic MPT-Fusion
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device sc
#device apm
# Add suspend/resume support for the i8254.
device pmtimer
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device em
device le # Broadcom BCM570xx Gigabit Ethernet
# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device bpf # Berkeley packet filter
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
device ukbd # Keyboard
/etc/sysctl.conf
不接受源路由信息包可以防止你的内部网络被探测
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.tcp.drop_synfin=1
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65536
net.inet.udp.recvspace=49152
net.inet.udp.maxdgram=24576
net.local.stream.sendspace=65535
net.inet.tcp.rfc1323=1
net.inet.tcp.rfc3042=1
net.inet.tcp.rfc3390=1
kern.ipc.maxsockbuf=2097152
kern.maxfiles=65536
kern.maxfilesperproc=32768
net.inet.tcp.delayed_ack=1
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
net.inet.icmp.icmplim=100
net.inet.tcp.always_keepalive=1
net.inet.ip.intr_queue_maxlen=1000
net.inet.ip.intr_queue_drops=0
net.inet.tcp.msl=2500
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.tcp.inflight.enable=1
#它可以通过将 sysctl 变量 net.inet.tcp.inflight.enable 设置成 1 来启用。
#系统将尝试计算每一个连接的带宽延迟积,并将排队的数据量限制在恰好能保持最优吞吐量的水平上。
#这一特性在您的服务器同时向使用普通调制解调器,千兆以太网,乃至更高速度的光与网络连接 (或其他带宽延迟积很
#特别是当您同时使用滑动窗缩放,或使用了大的发送窗口的时候。
#如果启用了这个选项,您还应该把 net.inet.tcp.inflight.debug 设置为 0 (禁用调试),
#对于生产环境而言, 将 net.inet.tcp.inflight.min 设置成至少 6144 会很有好处。
#然而, 需要注意的是,这个值设置过大事实上相当于禁用了连接带宽延迟积限制功能。
#这个限制特性减少了在路由和交换包队列的堵塞数据数量,也减少了在本地主机接口队列阻塞的数据的数量。
#在少数的等候队列中、交互式连接,尤其是通过慢速的调制解调器,也能用低的 往返时间操作。
#但是,注意这只影响到数据发送 (上载/服务端)。对数据接收(下载)没有效果。
#调整 net.inet.tcp.inflight.stab 是 不 推荐的。
#这个参数的默认值是 20,表示把 2 个最大包加入到带宽延迟积窗口的计算中。
#额外的窗口似的算法更为稳定,并改善对于多变网络环境的相应能力,
#但也会导致慢速连接下的 ping 时间增长 (尽管还是会比没有使用 inflight 算法低许多)。
#对于这些情形, 您可能会希望把这个参数减少到 15, 10, 或 5;
#并可能因此而不得不减少 net.inet.tcp.inflight.min (比如说, 3500) 来得到希望的效果。
#减少这些参数的值, 只应作为最后不得已时的手段来使用。
net.inet.tcp.inflight.debug=0
net.inet.tcp.inflight.rttthresh=10
net.inet.tcp.inflight.min=6144
net.inet.tcp.inflight.max=1073725440
net.inet.tcp.inflight.stab=20
net.inet.ip.fastforwarding=1
net.inet.ip.random_id=1
kern.ipc.somaxconn=8192
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0
kern.securelevel=0
net.inet.tcp.log_in_vain=0
net.inet.udp.log_in_vain=0
net.inet.udp.checksum=1
net.inet.tcp.syncookies=1
kern.ipc.shm_use_phys=1
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768
kern.coredump=0
net.local.stream.recvspace=65536
net.local.dgram.maxdgram=16384
net.local.dgram.recvspace=65536
net.inet.raw.maxdgram=65536
net.inet.raw.recvspace=65536
net.inet.ip.fw.dyn_max=65535
net.isr.direct=1
net.inet.ip.rtexpire=3600
net.inet.ip.rtminexpire=2
net.inet.tcp.keepidle=600000
net.inet.ip.portrange.first=8888
net.inet.ip.portrange.hifirst=8888
compat.linux.osrelease=2.6.16
/boot/loader.conf
kern.ipc.maxsockets="16424"
kern.ipc.nmbclusters="32768"
kern.ipc.nmbufs="65535"
kern.ipc.nsfbufs="2496"
net.inet.tcp.tcbhashsize="2048"
kern.maxusers="256"
freebsd内核编译、优化相关推荐
- 简单的FreeBSD 的内核编译
简单的FreeBSD 的内核编译 删除并重新下载内核源码 删除自带的内核源码 rm -rf /usr/src 下载内核源码 wget https://download.freebsd.org/ftp/ ...
- linux 内核优化实战,Linux编译优化必须掌握的几个姿势总结
01.编译选项和内核编译 Linux内核(英语:linux kernel),是一种计算机操作系统内核,已C语言和汇编语言写成,匹配POSIX标准,以GNU通用公共许可证发布.从技术上说Linux只是一 ...
- AI System 人工智能系统 TVM深度学习编译器 DSL IR优化 计算图 编译 优化 内存内核调度优化 DAG 图优化 DFS TaiChi 函数注册机 Registry
DSL 领域专用语言 TVM深度学习编译器 AI System 人工智能系统 参考项目 TaiChi 三维动画渲染物理仿真引擎DSL TVM 深度学习DSL 密集计算DSL LLVM 模块化编译器 编 ...
- FreeBSD手册——配置FreeBSD内核
转自中文FreeBSD用户组 http://journal.cnfug.org/issue8/000045.html#45 FreeBSD手册--配置FreeBSD内核 [阅读次数: 1761次] ...
- 深度学习分布式策略优化、显存优化、通信优化、编译优化综述
综述 因为我个人最近在从事可能是AI领域对性能挑战最大的方向,自动驾驶领域,所以对整个深度学习训练的优化尤为关注,最近一直在学习相关内容,谨以此篇文章做一个总结. 我一直很看好深度学习训练优化这个方向 ...
- Linux内核编译与管理
我们说的Linux其实指的就是内核而已.这个核心控制你主机的所有硬件并提供系统所有的功能,我们开机的时候其实就是利用开机管理程序加载这个核心文件来侦测硬件,在核心加载适当的驱动程序后,你的系统才能够顺 ...
- Android Linux内核编译调试
对于在Windows上写代码写习惯的人,调试是必不可少的手段,但是转到Android以后,发现调试手段异常简陋,跟Windows简直不是一个级别,特别是Android的内核调试,网上资料也相对较少,不 ...
- 编译优化 | LLVM代码生成技术详解及在数据库中的应用
简介:作者:长别 1. 前言 随着IT基础设施的发展,现代的数据处理系统需要处理更多的数据.支持更为复杂的算法.数据量的增长和算法的复杂化,为数据分析系统带来了严峻的性能挑战.近年来,我们可以在数据库 ...
- 内核编译配置选项含义
Linux 2.6.19.x 内核编译配置选项简介 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发, ...
最新文章
- 如何创建一个最小的区块链
- 值得推荐的8个超强工具,让你万事无忧!
- oracle SQL以结尾函数,Oracle学习笔记--SQL查询和SQL函数(转) -- 迷失de天空 -- 编程爱好者......
- unity android 集成指南
- C# ---扩展方法
- 【Spring】一次线上@Transational事务注解未生效的原因探究
- 第二课 每天努力一点点【Linux培训实录】
- 场论 梯度 旋度 散度
- 关于MFC中CSpinButtonCtrl控件
- leetcode 7. 反转整数(python3)
- 在线开启mysql慢查询
- 翻书插件:bookblock.js
- PowerBuilder通过JDBC连接MySQL数据库
- 单元格下拉全选快捷键_excel下拉全选快捷键是什么
- mysql gtid dump_MySQL之mysqldump备份的--set-gtid-purged参数
- Win7怎么设置自动关机?Win7设置自动关机的方法
- MATLAB 将txt文本转化为tif图片格式
- IDEA破解补丁激活方式
- python-模拟登陆多种方法总结
- 最新PESCMS Ticket客服工单系统源码+全新的设计理念
热门文章
- 路由器上IPSEC ×××
- Installing Flex Data Services on JBoss
- 浅谈C++ STL中的优先队列(priority_queue)
- 让人欲罢不能的量子学
- SQL数据库高级查询命令(3)
- Kafka源码分析-序列3 -Producer -Java NIO(Reactor VS Peactor)
- JDBC连接数据库:单线程、多线程、批处理插入数据的对比
- Debian 7.8 通过 apt-get 安装 nodejs
- (原+转)使用opencv的DFT计算卷积
- 真正解决ASP.NET每一个页面首次访问超级慢的问题