linux 内核参数修改

linux 内核参数修改
linux 内核参数修改

linux 内核参数修改

配置 Linux 内核参数(2种方法),修改后不用重启动更新: /sbin/sysctl -p

第一种:打开/etc/sysctl.conf 复制如下内容

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=262144

net.core.wmem_default=262144

net.core.rmem_max=262144

net.core.wmem_max=262144

第二种:打开终端

cat >> /etc/sysctl.conf<

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=262144

net.core.wmem_default=262144

net.core.rmem_max=262144

net.core.wmem_max=262144

EOF

这里,对每个参数值做个简要的解释和说明。

(1)shmmax:该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。(2)shmmni:这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。

(3)shmall:该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。(共享内存段的数量,以页为主,每个页是4K)

(4)sem:该参数表示设置的信号量。一般大于maxproc的一点就行了。

(5)file-max:该参数表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。

修改好内核以后,执行下面的命令使新的配置生效。

[root @linux1 /root]# /sbin/sysctl -p

以 root 用户身份运行以下命令来验证您的设置:

/sbin/sysctl -a | grep shm

/sbin/sysctl -a | grep sem

/sbin/sysctl -a | grep file-max

/sbin/sysctl -a | grep ip_local_port_range

例如:

# /sbin/sysctl -a | grep shm

kernel.shmmni = 4096

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shm-use-bigpages = 0

# /sbin/sysctl -a | grep sem

kernel.sem = 250 32000 100 128

# /sbin/sysctl -a | grep file-max

fs.file-max = 65536

# /sbin/sysctl -a | grep ip_local_port_range

net.ipv4.ip_local_port_range = 1024 65000

如果系统的参数设置的比上述参数值小,则编辑 /etc/sysctl.conf 文件,添加或更改这些参数。完成后,运行以下命令激活更改:

/sbin/sysctl -p

============================================================================================

1 内核参数的查看方法

使用“sysctl -a”命令可以查看所有正在使用的内核参数。内核参数比较多(一般多达500项),按照前缀主要分为以下几大类:net.ipv4、net.ipv6、net.core、vm、fs、dev.parport、dev.cdrom 、dev.raid、kernel等等。相同的linux,安装的组件和使用的方式不一样,正在使用的内核参数是不一样的。

所有的内核参数的说明文档是放到/usr/src/linux/Documentation/sysctl中的,如果想知道对内核参数的说明,可以到该目录下查看相应的说明文档。

2 内核参数的的设置方法

由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。也可以通过文件的方式进行设置。下面就介绍这两种修改方法。

2.1 命令设置的方式

可以用两种方法实现。

1、使用“sysctl -w 参数名=值”的方式

假设我们把net.ipv4.ip_forward的值修改为1,使用命令“sysctl -w net.ipv4.ip_forward=1”。

2、修改内核参数对应的proc文件

内核参数位于/proc/sys/之下,参数名称是以文件所在的路径,并将“/”以“.”来取代。举例来说,/proc/sys/net/ip_forward的参数名称为net.ipv4.ip_forward。

同样把net.ipv4.ip_forward的值修改为1,使用命令“echo “1” > /proc/sys/net/ipv4/ip_forward”。

注意,这里proc文件跟普通的文件不一样。一般一个文件用echo写入内容之后,会变成一个文本文件,但echo修改proc文件之后还是个空文件。

2.2 文件设置的方式

更改的内核参数默认保存在/etc/sysctl.conf文件中。修改的时候可以直接用vi编辑sysctl.conf文件,增加要修改的内核参数内容,修改的格式为:参数名=值。例如,把net.ipv4.ip_forward的值修改为1,在sysctl.conf中增加下面这行内容:

net.ipv4.ip_forward=1

文件修改好后,进行保存。然后使用“sysctl -p 配置文件名”来使配置生效,如果配置文件是默认的,可以不用输配置文件名,即使

用“sysctl -p”。

通过文件设置的方式修改的内核参数是在系统重启后将失效(我之前认为修改后的内核参数放在文件中,系统启动的时候会读这个文件,重启后设置应该不会失效。但经过验证,一般会失效,但如果把将默认的boot.sysctl服务打开,所以系统启动时就会执行这个文件的设置)。把我们修改参数的命令写入启动执行脚本文件里/etc/rc.local,这样系统重启后配置就不会失效。

文件方式的好处是内核参数设置的值可以用文件保留下来,调用“sysctl -p”可以使文件中的所有配置的值马上生效。

3 内核参数设置的实际应用

3.1 文件和网络类参数

我们一般需要关注的文件类的内核参数有fs.file-max和file-nr。fs.file-max是一个系统能申请到的最大文件句柄数;file-nr是只读的,它与file-max相关,仅用于显示已分配文件句柄的数目、已使用文件句柄的数目、文件句柄的最大数目,如下图所示。

suse11lwb:/home/zxin10/steven # sysctl -a|grep fs.file-nr

fs.file-nr = 5152 0 6815744

对于文件句柄的问题,对于要处理很多文件的接口机要注意,系统的文件句柄是否够用。以前短信网管项目就出现过文件句柄的问题,现场是Solaris系统,而家里的测试是在HP-UX进行,由于Solaris默认支持的文件句柄比HP-UX少很多(如下图所示),家里测试没有发现,从而导致故障泄漏到现场。

操作系统名称默认系统句柄数

Solaris256

AIX2000

Suse Linux1024

HP-UX2000

NT10000

下面介绍修改文件句柄限制的方法。

1、按照最大打开文件数量的需求设置内核参数,并且通过检查/proc/sys/fs/file-max文件来确认最大打开文件数已经被正确设置。

# cat /proc/sys/fs/file-max

如果设置值太小,修改文件/etc/sysctl.conf的变量到合适的值。

2、在/etc/security/limits.conf文件中设置最大打开文件数,下面是一行提示:

# 添加如下这行。

* - nofile 2048

这行设置了每个用户的默认打开文件数为2048。注意"nofile"项有两个可能的限制措施。就是项下的hard和soft。要使修改过的最大打开文件数生效,必须对这两种限制进行设定。如果使用"-"字符设定, 则hard和soft设定会同时被设定。硬限制表明soft限制中所能设定的最大值。soft限制指的是当前系统生效的设置值。hard限制值可以被普通用户降低。但是不能增加。soft限制不能设置的比hard限制更高。只有root用户才能够增加hard限制值。

3、使用“ulimit -n 2048”来限制用户的最大文件打开数为2048。ulimit -n对非root用户有限制,对root用户则没有限制,能享受到整个系统可以同时打开的文件数的好处。

设置句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,把上面命令加到最后。

3.2 平台内核参数

平台在安装的过程中,会调用一个专门的shell来负责系统内核参数的设置。这个shell是checkkernel,在平台上/home/zxin10/bin目录下能找到。对于Linux,需要关注的是其中的check_linux_kernel函数。下面是涉及到设置内核参数的主要代码,除开设置了平台相关的一些内核参数,另外针对Oracle数据库也进行了相应的设置,大家可以一起分析一下。

##### 消息队列的设置

if ! grep -q "/proc/sys/kernel/shmmax" /etc/rc.d/rc.local

then

echo "echo $ShmMaxSizecfg > /proc/sys/kernel/shmmax" >> /etc/rc.d/rc.local

fi

if ! grep -q "/proc/sys/kernel/msgmni" /etc/rc.d/rc.local

then

echo "echo 300 > /proc/sys/kernel/msgmni" >> /etc/rc.d/rc.local

fi

if ! grep -q "/proc/sys/kernel/msgmnb" /etc/rc.d/rc.local

then

echo "echo 163840 > /proc/sys/kernel/msgmnb" >> /etc/rc.d/rc.local

fi

if ! grep -q "/proc/sys/kernel/msgmax" /etc/rc.d/rc.local

then

echo "echo 56383 > /proc/sys/kernel/msgmax" >> /etc/rc.d/rc.local

fi

########## 针对Oralce的一些内核参数的设置

## 2007.01.10 add for oracle10g

if [ "$db_version" = "oracle10g" ]

then

if ! grep -q "/proc/sys/net/core/rmem_max" /etc/rc.d/rc.local

then

echo "echo \"250 32000 100 128\" >/proc/sys/kernel/sem" >>/etc/rc.d/rc.local

echo "echo \"1024 65000\" >/proc/sys/net/ipv4/ip_local_port_range" >>/etc/rc.d/rc.local

echo "echo 1048576 >/proc/sys/net/core/rmem_max" >>/etc/rc.d/rc.local

echo "echo 1048576 >/proc/sys/net/core/rmem_default" >>/etc/rc.d/rc.local

echo "echo 262144 >/proc/sys/net/core/wmem_max" >>/etc/rc.d/rc.local

echo "echo 262144 >/proc/sys/net/core/wmem_default" >>/etc/rc.d/rc.local

fi

fi

下面是网上一篇redhat linux as 4.7 静默安装 oracle 10g的过程中涉及到内核参数设置的部分,跟上面平台设置的内容大致相同。检查内核参数

正在检查 semmsl=250; 已发现 semmsl=250。通过

正在检查 semmns=32000; 已发现 semmns=32000。通过

正在检查 semopm=100; 已发现 semopm=100。通过

正在检查 semmni=128; 已发现 semmni=128。通过

正在检查 shmmax=536870912; 已发现 shmmax=2147483648。通过

正在检查 shmmni=4096; 已发现 shmmni=4096。通过

正在检查 shmall=2097152; 已发现 shmall=2097152。通过

正在检查 file-max=65536; 已发现 file-max=65536。通过

正在检查 VERSION=2.6.9; 已发现 VERSION=2.6.9-78.EL。通过

正在检查 ip_local_port_range=1024 - 65000; 已发现 ip_local_port_range=1024 - 65000。通过

正在检查 rmem_default=262144; 已发现 rmem_default=1048576。通过

正在检查 rmem_max=262144; 已发现 rmem_max=1048576。通过

正在检查 wmem_default=262144; 已发现 wmem_default=262144。通过

正在检查 wmem_max=262144; 已发现 wmem_max=262144。通过

检查完成。此次检查的总体结果为: 通过

下面对上面涉及到的内核参数进行说明。

shmmax:共享内存段的最大字节数,建议设大点,甚至可以大过物理内存的字节数。该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。

shmmin:共享内存段的最小尺寸。这个参数的设置一般不会出问题。

shmmni:共享内存段的最大数目。这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是4096 。通常不需要更改。

shmseg:每个进程可分配的最大共享内存段数目

shmall:最大的并发共享内存段数目,比SGA还要大。该参数表示系统一次可以使用的共享内存总量(以页为单位,一个页大小为4KB)。缺省值就是2097152,通常不需要修改。

sem:是semaphores的缩写,该参数表示设置的信号量。它包含四个值:semmsl、semmns、semopm、semmni。

suse11lwb:~ # sysctl -a|grep sem

kernel.sem = 250 32000 100 128

semmns:信号灯的最大数量,跟ORACLE的PROCESS数有关。SEMMSL * SEMMNI

semopm:系统调用允许的信号量最大个数。至少100;或者等于SEMMSL

semmni:系统信号量set最大个数。最少128

semmsl:每个信号灯集合中最多的信号灯数目。最小250;对于processes参数设置较大的系统建议设置为processes+10。

msgmni:指定消息队列标识的最大数目。缺省设置:16

msgmax:从一个进程发送到另一个进程的消息的最大长度。进程间的消息传递是在内核的内存中进行,不会交换到磁盘上,所以如果增加该值,则将增加操作系统所使用的内存数量。缺省设置:8192

msgmnb:一个消息队列中最大的字节数。缺省设置:16384

optmem_max:每个socket的最大缓存大小

rmem_default:接收socket的缺省缓存大小(字节)

rmem_max:接收socket的最大缓存大小(字节)

wmem_default:发送的socket缺省缓存大小(字节)

wmem_max:发送的socket最大缓存大小(字节)

p_local_port_range:表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为10000到65000。(注意:这里不要将最低值设的太低,否则可能会占用掉正常的端口!

file-max:表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。如果设置过小,Oracle将无法启动,或运行不正常。

Linux内核修改与编译图文教程

Linux 内核修改与编译图文教程 1

1、实验目的 针对Ubuntu10.04中,通过下载新的内核版本,并且修改新版本内核中的系统调用看,然后,在其系统中编译,加载新内核。 2、任务概述 2.1 下载新内核 https://www.360docs.net/doc/0410219632.html,/ 2.2 修改新内核系统调用 添加新的系统调用函数,用来判断输入数据的奇偶性。 2.3 进行新内核编译 通过修改新版内核后,进行加载编译。最后通过编写测试程序进行测试 3、实验步骤 3.1 准备工作 查看系统先前内核版本: (终端下)使用命令:uname -r 2

3.2 下载最新内核 我这里使用的内核版本是 3.3 解压新版内核 将新版内核复制到“/usr/src”目录下 在终端下用命令:cd /usr/src进入到该文件目录 解压内核:linux-2.6.36.tar.bz2,在终端进入cd /usr/src目录输入一下命令: bzip2 -d linux-2.6.36.tar.bz2 tar -xvf linux-2.6.36.tar 文件将解压到/usr/src/linux目录中 3

使用命令: ln -s linux-2.6.36 linux 在终端下输入一下命令: sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt 4

FANUC 0系统如何保护你的参数和程序不被修改

FANUC 0系统如何保护你的参数和程序不被修改 保护你的程序 FANUC 0系统:修改参数:10.4改为1就可以保护9000~~9999的程序不被修改。 FANUC 0I系统:修改参数:3202#4(NE9)改为1 #0(NE8)改为1就可以保护9000~~9999和8000~~8999的程序不被修改。修改3210的值就可以设置密码了,只有在3211里输入和3210一样的密码才可以修改3020#4为0或1。 保护你的参数: 参数3290.7设定成1可以保护程序和参数,将3290.7设定成1后即无法设定PWE=1参数无法修改,通过设定画面(OFFSET画面)找到3290.7设定成0即可恢复(注意恢复时不是在SYSTEM画面设置参数3290.7而是在设定画面 FANUC系统维修中常用的参数 fanuc系统维修中常用的参数 1.手摇脉冲发生器损坏。一台fanuc 0td数控车床,手摇脉冲发生器出现故障,使对刀不能进行微调,需要更换或修理故障件。当时没有合适的备件,可以先将参数900#3置“0”,暂时将手摇脉冲发生器不用,改为用点动按钮单脉冲发生器操作来进行刀具微调工作。等手 摇脉冲发生器修好后再将该参数置“1”。 2.当机床开机后返回参考点时出现超行程报警。上述机床在返回参考点过程中,出现510 或511超程报警,处理方法有两种: (1)若x轴在返回参考点过程中,出现510或是511超程报警,可将参数0700lt1x1数值改为+99999999(或将0704lt1x2数值修改为-99999999)后,再一次返回参考点。若没有问题,则将参数0700或0704数值改为原来数值。 (2)同时按p和can键后开机,即可消除超程报警。 3.一台fanuc 0i数控车床,开机后不久出现alm701报警。从维修说明书解释内容为控制部上部的风扇过热,打开机床电气柜,检查风扇电机不动作,检查风扇电源正常,可判定风扇损坏,因一时购买不到同类型风扇,即先将参数rrm8901#0改为“1”先释放alm701报警,然后在强制冷风冷却,待风扇购到后,再将prm8901改为“0”。 4.一台fanuc 0m数控系统加工中心,主轴在换刀过程中,当主轴与换刀臂接触的一瞬间,发生接触碰撞异响故障。分析故障原因是因为主轴定位不准,造成主轴头与换刀臂吻合不好,

linux 内核参数修改

linux 内核参数修改 配置 Linux 内核参数(2种方法),修改后不用重启动更新: /sbin/sysctl -p 第一种:打开/etc/sysctl.conf 复制如下内容 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=262144 net.core.wmem_max=262144 第二种:打开终端 cat >> /etc/sysctl.conf< kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=262144 net.core.wmem_max=262144 EOF 这里,对每个参数值做个简要的解释和说明。 (1)shmmax:该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。(2)shmmni:这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。 (3)shmall:该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。(共享内存段的数量,以页为主,每个页是4K) (4)sem:该参数表示设置的信号量。一般大于maxproc的一点就行了。 (5)file-max:该参数表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。 修改好内核以后,执行下面的命令使新的配置生效。 [root @linux1 /root]# /sbin/sysctl -p 以 root 用户身份运行以下命令来验证您的设置: /sbin/sysctl -a | grep shm /sbin/sysctl -a | grep sem /sbin/sysctl -a | grep file-max /sbin/sysctl -a | grep ip_local_port_range 例如: # /sbin/sysctl -a | grep shm kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.shmmax = 2147483648

关于Linux 内核中五个主要子系统的介绍

关于Linux 内核中五个主要子系统的介绍 发布时间:2008.01.02 06:23来源:赛迪网作者:sixth 1.进程调度(SCHED):控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。 2.内存管理(MM)允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码,数据,堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。 3.虚拟文件系统(VirtualFileSystem,VFS)隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。 4.网络接口(NET)提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。 5.进程间通讯(IPC) 支持进程间各种通信机制。处于中心位置的进程调度,所有其它的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。一般情况下,当一个进程等待硬件操作完成时,它被挂起;当操作真正完成时,进程被恢复执行。例如,当一个进程通过网络发送一条消息时,网络接口需要挂起发送进程,直到硬件成功地完成消息的发送,当消息被成功的发送出去以后,网络接口给进程返回一个代码,表示操作的成功或失败。其他子系统以相似的理由依赖于进程调度。

内核参数的修改方法

Linux内核参数修改方法 由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数,因此将内核的参数配置写入这个文件中,是一个比较好的选择。 首先打开/etc/sysctl.conf文件,查看如下两行的设置值,这里是: kernel.shmall = 2097152 kernel.shmmax = 4294967295 如果系统默认的配置比这里给出的值大,就不要修改原有配置。同时在/etc/sysctl.conf文件最后,添加以下内容: fs.file-max = 6553600 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 262144 这里的“fs.file-max = 6553600”其实是由“fs.file-max = 512 * PROCESSES”得到的,我们指定PROCESSES的值为12800,即为“fs.file-max =512 *12800”。 sysctl.conf文件修改完毕后,接着执行“sysctl -p”使设置生效。 [root@localhost ~]# sysctl -p 常用的内核参数的含义如下。 kernel.shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系,这里设定的为4GB,即 “4294967295/1024/1024/1024=4G”。 kernel.shmmni:表示单个共享内存段的最小值,一般为4kB,即4096bit. kernel.shmall:表示可用共享内存的总量,单位是页,在32位系统上一页等于4kB,也就是4096字节。 fs.file-max:表示文件句柄的最大数量。文件句柄表示在Linux系统中可以打开的文件数量。 ip_local_port_range:表示端口的范围,为指定的内容。 kernel.sem:表示设置的信号量,这4个参数内容大小固定。 net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)。 net.core.rmem_max :表示接收套接字缓冲区大小的最大值(以字节为单位) net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)。 net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)。

Linux之TCPIP内核参数优化

Linux之TCPIP内核参数优化 /proc/sys/net目录 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),例如下面这些重要的参数: 参数(路径+文件) 描述 默认值 优化值 /proc/sys/net/core/rmem_default 默认的TCP数据接收窗口大小(字节)。 229376 256960 /proc/sys/net/core/rmem_max 最大的TCP数据接收窗口(字节)。 131071 513920 /proc/sys/net/core/wmem_default 默认的TCP数据发送窗口大小(字节)。

229376 256960 /proc/sys/net/core/wmem_max 最大的TCP数据发送窗口(字节)。 131071 513920 /proc/sys/net/core/netdev_max_backlog 在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。 1000 2000 /proc/sys/net/core/somaxconn 定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。 128 2048 /proc/sys/net/core/optmem_max 表示每个套接字所允许的最大缓冲区的大小。

20480 81920 /proc/sys/net/ipv4/tcp_mem 确定TCP栈应该如何反映内存使用,每个值的单位都是内存页(通常是4KB)。第一个值是内存使用的下限;第二个值是内存压力模式开始对缓冲区使用应用压力的上限;第三个值是内存使用的上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的BDP 可以增大这些值(注意,其单位是内存页而不是字节)。 94011 125351 188022 131072 262144 524288 /proc/sys/net/ipv4/tcp_rmem 为自动调优定义socket使用的内存。第一个值是为socket接收缓冲区分配的最少字节数;第二个值是默认值(该值会被rmem_default覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是接收缓冲区空间的最大字节数(该值会被rmem_max覆盖)。 4096 87380 4011232 8760 256960 4088000 /proc/sys/net/ipv4/tcp_wmem 为自动调优定义socket使用的内存。第一个值是为socket发送缓冲区分配的最少字节数;第二个值是默认值(该值会被wmem_default覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是发送缓冲区空间的最大字节数(该值会被wmem_max覆盖)。 4096 16384 4011232

linux环境变量修改

redhat和ubuntu中修改环境变量 2010-03-06 23:43 有些命令的路径没有在PATH环境变量中,可以用echo $PATH命令查询得知,添加路径到PATH环境变量的方法如下: (如添加/sbin到PATH环境变量中) (1)如果只想在本次开机过程中临时性的添加修改,下次开机就无效的话,可以: 输入export PATH=$PATH:/sbin (2)如果只给当前用户永久添加,则: 在~/.bash_profile中的靠近末尾有类似这样的一行 PATH=$PATH:$HOME/bin后添加:/sbin,就变成 PATH=$PATH:$HOME/bin:/sbin 文件修改并保持完以后,运行source ~/.bash_profile命令即可使修改操作立即生效 (3)如果给系统中所有的用户都永久添加,则: 在/etc/profile文件中添加pathmunge :/sbin 如:/etc/profile文件打开后有如下代码 .....................

16 # Path manipulation 17 if [ `id -u` = 0 ]; then 18 pathmunge /sbin 19 pathmunge /usr/sbin 20 pathmunge /usr/local/sbin 21 fi ........................ 你将之改成: ........................ 16 # Path manipulation 17 if [ `id -u` = 0 ]; then 18 pathmunge /sbin 19 pathmunge /usr/sbin 20 pathmunge /usr/local/sbin 21 pathmunge /usr/local/arm/bin 22 fi ....................... 表示将/usr/local/arm/bin添加进环境变量 文件修改并保持完以后,运行source etc/profile命令即可使修改操

FANUC系统参数的输入方法

第五节:FANUC系统参数的输入方法 数控系统的参数是机床的重要数据,丢失后将造成机床无法正常运行。这些数据在运行时,是存储在数控系统的内存中的。长时间停电期间,参数靠电池保存。当系统电源受到干扰或电池电压过低时,参数容易丢失或出错。为此,数据应做出书面或磁盘备份。当数据一旦丢失时,可以快速恢复数据。 有时,我们也可能仅需要修改部分数据。下面,我们结合几种典型的系统,说明根据已有备份恢复参数的方法。 一.FANUC 3T系统的手动参数输入(数控车床)该系统数据丢失或出错时,屏幕显示“PARITY ERROR”(校验错误)报警。这时首先要清除原错误数据,再重新输入。要注意的是,这时的NC程序也一起被清除掉了。 恢复系统数据和程序的方法是两个人配合做如下操作: 1.系统停电。 2.把电箱数控主板上端的“PARAMETER INPUT”(参数输入)开关拨到ON位置。屏幕出现“PS100”报警。 3.一个人在操作面板MDI键盘上同时按住RESET键和DEL键。另一个人在数控电箱上启动数控系统。系统启动后,松开两个键,“校验错误”报警可以消除。 4.按下急停按钮,面板开关选择“手动数据输入(MDI)”方式。按键盘上PARAMETER键,进入参数画面。选择参数,相应参数后出现“=”号。5.逐一输入正确参数,INPUT键确认。 6.参数输入完成后,把前面板“程序保护”钥匙开关打开。 7.按下PROGRAM键,调出程序界面,输入正确程序。 8.把主板“参数输入”和前面板“程序保护”开关关掉。 9.按RESET键复位所有故障。 完成上述操作后,重新启动机床,调试设备。 部分修改数据时,可按照2、4、5、8、9几步进行。 二.FANUC 0系统的参数输入(日平磨床) 该系统参数丢失后,不影响数控程序。因此,恢复数据或修改参数,都可以按如下操作进行: 1.面板上选择MDI方式。 2.按下PARAM/DGNOS键,切换到参数界面。 3.翻页到设定参数页面(左上角显 示“PARAMETER(SETTING2)),移动光标到“PWE”,键入“1”,用

如何对CAD变量进行更改

摘要:AutoCAD 是当今最为流行的计算机辅助设计软件,其实,除了我们平时使用的 内核命令以外,AutoCAD 还提供了许多非常实用的附加工具(bonus tools),它们存放在bonus 目录下(R14版),如果用户在自己的AutoCAD 下没有发现该目录,可运行Setup 程序,在Setup Choices 对话框选择“Add ”,添加Bonus 。另外对某些系统变量的重新设置,也可以让我们工作起来得心应手,达到事半功倍的效果。 关键词:AutoCAD 附加工具 系统变量 AutoCAD 是当今最为流行的计算机辅助设计软件,其实,除了我们平时使用的内核命令以外,AutoCAD 还提供了许多非常实用的附加工具(bonus tools),它们存放在bonus 目录下(R14版),如果用户在自己的AutoCAD 下没有发现该目录,可运行Setup 程序,在Setup Choices 对话框选择“Add ”,添加Bonus 。另外对某些系统变量的重新设置,也可以让我们工作起 来得心应手,达到事半功倍的效果。下面向大家介绍几个较为实用的附加工具和系统变量。 系统变量:访问系统变量一般有两种方法:大多数系统变量可以通过下拉菜单或命令来访问(如:用ddunits 命令设置angbase 变量);所有系统变量都能通过Autolisp 程序或在命令行中直接键入该变量名来访问。下面介绍的几个变量。除特殊说明外,均针对R14版。 Angbase 和Angdir :分别控制当前坐标系零度角的方向和角度的旋转方向。地质工作中常用测地坐标,我们可以改变这两个变量的值,使正北方向为零度,坐标按照顺时针方向旋转,符合我们的专业习惯,省去许多中间换算的麻烦。 cursorsize :控制十字叉光标的大小。用过R14以前各版本的用户,或许更习惯于全屏幕十字光标,或需要用全屏幕十字光标来大致对照实体。该变量也正是为满足这这一需要。 dwgcodepage :设置码页(R12版)。许多用户也许正被一个问题困扰:以前用R12版做的图形文件无法在R14版中打开,或者打开后汉字全为乱码。试着在R12版打开该图,改变该变量的值为“iso8859-2”,存盘后再用R14版打开,你会惊喜:一切如前(别忘了:先用Preferences 命令将该图所需要的字体文件目录加入到“surport file search path ”)! Mirrtext :控制文字实体镜向后的显示方向。对文本镜向后,在缺省状态下,文字不具可读性,就象我们在镜子中看到的文字一样,是反写的。将该变量的值改为0,文字镜向后仍然保持原书写方向。 Plinetype :确定是否使用优化的轻便多义线。优化多义线将大大减少存储空间;而为了涉及到Pline 线码表的原Autolisp 程序能依旧运行,有些用户更希望Pline 线仍然为原来格式。 explmode :非等比例插入的块能否炸开。在缺省状态下,非等比例插入的块不会响应explode 命令,改变explmode 的值,可以炸开这种块。 Useri1-Useri5、 Userr1-Userr5、Users1-users5:分别为能存放5个整数、5个实数、5个字符窜的共15个系统变量,变量值随图形文件一起保存(笔者认为只有5个整数、5个实数变量的值才能保存)。程序开发人员可能需要保存图形的某些参数以供程序访问,随图形文件一起保存在这些变量中,不失为一种非常安全、有效的方法。 此外,编程人员经常要用到的,例如:当前图形文件名(包括路径)、当前时间、当前图形修改状态等许多数据或状态,都可以通告访问系统变量而获知。详情请查阅有关资料。 附加工具:由Autodesk 公司免费提供给用户。附加工具本身是程序(包括.lsp 、.arx 和.exe),这些程序由ac_bonus.lsp 统一组织、装入。在ac_bonus.lsp 内部还定义了一些这些程序的公用程序。可以用bonus 菜单(菜单文件名为ac_bonus.mnc)、工具条或者人为装入后用命令来启动。这些程序对 AtuoCAd 内核命令是个非常好的补充,也可以将其修改后加入到自己的lisp 程序中。这里

LINUX内核源文件介绍以及头文件介绍

LINUX 内核源文件介绍以及头文件介绍 LINUX 内核源文件介绍以及头文件介绍.txt两人之间的感情就像织毛衣,建立的时候一针一线,小心而漫长,拆除的时候只要轻轻一拉。。。。*******************LINUX 内核(0.11)源文件介绍****************** 1、内核源文件放置目录: | |————boot 系统引导汇编程序目录 | |————fs 文件系统目录 | |————include 头文件目录 | |————init 内核初始化程序目录 | |————kernel 内存进程调度、信号处理、系统调用等程序的目录 | |————lib 内核库函数目录 | |————mm 内存管理程序目录 | |————tools 生成内核Image文件的工具程序目录 | |————Makefile文件 | 2、引导启动程序目录boot 包含3个汇编语言文件,是内核源文件中最先被编译的程序。 功能:当计算机家电时引导内核启动,将内核代码加载到内存中,并完成系统初始化工作。 boot | |————bootsect.s 磁盘引导块程序,编译后会驻留在磁盘的第一个扇区中| |————setup.s 读取机器的硬件配置参数,并把内核模式system移动到适当的内存位置处 |

|————head.s 会被编译连接在system模块的最前部分,主要进行硬件设备的探测配置和内存管理页面的配置工作 | 3、文件系统目录fs 包含17个C语言程序 fs | |——buffer.c 管理高速缓冲区 | |——file_table.c 在0.11仅定义了一个文件句柄(描述符)结构数组 | |——ioctl.c 将引用kernel/chr_dev/tty.c中的函数,实现字符设备的IO 控制功能 | |——exec.c 主要包含一个执行程序函数do_execve() | |——fcntl.c 实现文件I/O控制的系统调用函数 | |——read_write.c 实现文件读/写和定位的三个系统调用函数 | |——stat.c 实现了两个获取文件状态的系统调用函数 | |——open.c 主要包含实现修改文件属性和创建与关闭文件的系统调用函数 | |——char_dev.c 主要包含字符设备读写函数rw_char() | |——pipe.c 包含管道读写函数和创建管道的系统调用函数 | |——file_dev.c 包含基于i节点和描述符结构的文件读写函数。 | |——namei.c 主要包括文件系统中目录名和文件名的操作函数和系统调用函数 | |——block_dev.c 包含块数据读和写函数 | |——inode.c 包含针对文件系统i节点操作的函数 | |——truncate.c 用于在删除文件时释放文件所占用的设备数据空间 | |——bitmap.c 用于处理文件系统中i节点和逻辑数据块的位图 |

给变量下定义的方法

第五章给变量下定义的方法 科学研究来不得半点马虎,没有精确也就没有科学。在教育研究之前,首先要对研究问题中的变量作全面、清晰地了解。对研究问题中变量的表述要尽可能清晰、准确,不得含糊其辞。因此,我们要对研究问题中涉及的某些词语或术语作出精确的说明,为了便于研究的可操作性和可行性,还有必要对有关变量涉及的词语或术语下操作性定义。给变量下抽象定义和操作性定义是研究科学性的体现,也是研究者必须具备的基本素质。 一、变量的定义与操作 在研究设计过程中,我们常常会遇到教育领域中的一些变量(概念),如教学,素质,教学目标,创造性等。对这些变量,不同的人由于经验、认识、所处地位、理解角度等的差异,可能会作出不同的解释。为了使其他人能在共同理解的基础上探讨问题,为了使研究结论准确可靠,研究者必须厘清概念的含义,在厘清概念的基础上,确定测量方法或操作性定义。厘清概念通常是给概念下抽象性定义(概念性定义),规定测量指标则是给概念下操作性定义。 课题的主要变量或概念一经确定,接下来的事就是要给这些变量下定义,界定变量的含义。但是变量是有变化、有差异的因素,人们对它们的理解和认识往往不一致,解释也不尽相同,另外人们通常所使用的词汇术语的含义是模糊的和会意的,变量本身不会告诉我们需要收集什么样的资料或怎样进行测量,然而科学研究要求我们必须使每一个术语具有明确的含义。因此在研究设计时有必要使研究变量精确化、概念化,具体描述变量含义,赋予变量以意义,在某种程度上使研究者和读者形成共识。 当然现实生活中的模糊观念是可以转化为可认知的、可测量的概念的。美国心理学家桑代克(E. L. Thorndike)认为:凡客观存在的事物都有其数量,任何存在的事物都是可以测量的,只不过测量的方式方法不同罢了。只要变量存在,就能对其进行测量,这是科学研究的基本原则和前提。但测量要达到的精确程度是有区别的。下面是巴比(Earl Babbie)在《社会研究方法》一书中所用的一个例子①: 我:社会科学家可以对任何存在的事物进行测量。 你:哈!我赌你做不到。 我:你告诉我要测量什么吧,我可以告诉你如何去测量它。 你:好吧,怎样测量“偏见”。 我:不错的选择。不过,我不愿意把时间浪费在一些根本不存在的事物上。你说,社会上真的有偏见吗? 你:当然!谁都知道有偏见。谁都知道!如果你够聪明的话,我想你也知道。傻瓜也知道。 我:从前每个人都认为地球是平的。我想知道的是,你怎么知道就真的存在偏见? 你:好了,好了!你似乎不会“观察”。好了,“我看见过偏见。” 我:你到底看到了什么?偏见是怎样存在的呢? 你:我认识一个生意人,他说他永远也不会让女人做主管,因为他认为女人不着边际,而且没有理性。看吧!这个例子不错吧! ①(美)巴比著;邱泽奇译,《社会研究方法》(上册),华夏出版社,2000年,第150-151页。

查看HP-UX内核参数命令

sysdef kmtune -l 仅供参考: acctresume 和acctsuspend 只在启用HP-UX 统计时使用。这些变量是统计日志文件所在文件系统(缺省情况下为/var/adm)的百分比。在文件系统自 由空间降到acctsuspend指定的百分比(绝对百分比)时,即终止统计;只有达到分配给acctresume的百分比时才能恢复。 例如: acctsuspend 分配0 (假定缺省的文件系统值)- 当自由空间低于minfree(缺省情况下为10%,在bdf输出中文件系统将显 示100%使用)时,统计将被终止。如果acctresume为80,当文件系统的利用率降到80%时(bdf显示),就会再次启用统 计。重新启用统计后,就会产生“Accounting resumed”信息。 欲了解其它信息,请参考/usr/share/doc/doc_map.txt中所列的统计白皮书以及统计帮助信息。bufpages 这个值以前用于定义为文件系统IO中使用的高速缓冲区分配的物理内存量(以4096字节页面为单位)。 以前的HP-UX版本一般将10% 的物理内存用于此任务,但是最近的版本已实现了内存的动态分配。在10.X版中,如果 bufpages是一个非零值,它就成为高速缓冲区可用内存页面的最大值,实质变成一个限制,尽管可能很少使用,但不会超过这个值。在10.X版中,bufpages经常设为0,它表示请求动态高速缓冲区,dbc_min_pct 和dbc_max_pct参数将设置一个高速缓冲区允许的可用内存的最小和最大百分比。 在9.X版中,高速缓冲区的内存用bufpages变量明确确定。如果/etc/conf/dfile (700系列)或/etc/conf/gen/S800(800系列)中缺少了这个变量,高速缓冲区就被设为可用内存的10%;否则该值以页面(4096字节)数填入。 create_fastlinks 允许在HFS文件系统内创建高速符号链接。版本注释中应当包含有关的附加信息。从根本上来说,高速符号链接减少了磁盘 块访问,从而略微减少磁盘IO。 * 注:在10.0以前的800系统或9.0以前的700系统上没有这个变量。 dbc_max_pct 和dbc_min_pct 这两个变量定义缓冲文件系统页(也叫做高速缓冲区)可用的内存百分比范围。适当取值一般可以产生以下效果: - 低于或等于95% 的读缓冲命中率- 低于或等于70% 的写缓冲命中率 用sar -b 5 5 (分别为%rcache 和%wcache)可以对该值进行监视。也许可以保证减少读缓冲命中。 为高速缓冲分配过多内存的另一个现象可能是用户响应时间中无法解释的偶然或间歇性停顿。dbc_min_pct的缺省值是5, dbc_max_pct的缺省值是50。在许多情况下,建议为高速缓冲区分配200mb或更少的内存空间。Dbc_max_pct是机器上一个 主要的减少对象,在其中可以观察到内存压力,以及刚才所描述的停顿。 default_disk_ir

Linux设置内核参数的方法

Linux设置内核参数的方法 1内核参数的查看方法 使用“sysctl -a”命令可以查看所有正在使用的内核参数。内核参数比较多(一般多达500项),按照前缀主要分为以下几大类:net.ipv4、net.ipv6、net.core、vm、fs、dev.parport、dev.cdrom 、dev.raid、kernel等等。相同的linux,安装的组件和使用的方式不一样,正在使用的内核参数是不一样的。 所有的内核参数的说明文档是放到/usr/src/linux/Documentation/sysctl中的,如果想知道对内核参数的说明,可以到该目录下查看相应的说明文档。 2内核参数的的设置方法 由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。也可以通过文件的方式进行设置。下面就介绍这两种修改方法。 2.1命令设置的方式 可以用两种方法实现。 1、使用“sysctl -w 参数名=值”的方式 假设我们把net.ipv4.ip_forward的值修改为1,使用命令“sysctl -w net.ipv4.ip_forward=1”。 2、修改内核参数对应的proc文件 内核参数位于/proc/sys/之下,参数名称是以文件所在的路径,并将“/”以“.”来取代。举例来说,/proc/sys/net/ip_forward的参数名称为net.ipv4.ip_forward。 同样把net.ipv4.ip_forward的值修改为1,使用命令“echo “1”> /proc/sys/net/ipv4/ip_forward”。 注意,这里proc文件跟普通的文件不一样。一般一个文件用echo写入内容之后,会变成一个文本文件,但echo修改proc文件之后还是个空文件。 2.2文件设置的方式 更改的内核参数默认保存在/etc/sysctl.conf文件中。修改的时候可以直接用vi编辑sysctl.conf文件,增加要修改的内核参数内容,修改的格式为:参数名=值。例如,把net.ipv4.ip_forward的值修改为1,在sysctl.conf中增加下面这行内容:net.ipv4.ip_forward=1 文件修改好后,进行保存。然后使用“sysctl -p 配置文件名”来使配置生效,如果配置文件是默认的,可以不用输配置文件名,即使用“sysctl -p”。 通过文件设置的方式修改的内核参数是在系统重启后将失效(我之前认为修改后的内核参数放在文件中,系统启动的时候会读这个文件,重启后设置应该不会失效。但经过验证,一般会失效,但如果把将默认的boot.sysctl服务打开,所以系统启动时就会执行这个文件的设置)。把我们修改参数的命令写入启动执行脚本文件里/etc/rc.local,这样系统重启后配置就不会失效。 文件方式的好处是内核参数设置的值可以用文件保留下来,调用“sysctl -p”可以使文

修改LINUX内核报告

操作系统实验一 一、基本信息: 实验题目:向Linux内核新增一个系统调用 完成人姓名:袁昌铃学号:71115138 报告日期:2017.3.18 二、实验目的: 通过实验,熟悉Linux操作系统的使用,掌握构建与启动Linux内核的方法;掌握用户程序如何利用系统调用与操作系统内核实现通信的方法,加深对系统调用机制的理解;进一步掌握如何向操作系统内核增加新的系统调用的方法,以扩展操作系统的功能。 三、实验内容: 1. Linux环境下的C或C++编译和调试工具的使用。 2. 向Linux内核增加新的系统调用,系统调用名称和功能自行定义,但必须实现如下输出功能:“My Student No. is ×××,and My Name is ×××”。 3. Linux新内核的编译、安装和配置。 4. 编写应用程序以测试新的系统调用并输出测试结果。 四、实验步骤: 准备 源码下载 内核源码下载 下载合适内核, 我选择的是目前最新的linux-4.10。 Busybox 源码下载

下载Busybox, 我选择的是目前最新的 busybox-1.26.2。 目录设置 上面两个源码压缩包下载后解压到下面对应目录。 o $KERNEL 内核工作目录 o $LINUX Linux 内核源码目录 o $BUSYBOX Busybox 源码目录 PS: $KERNEL 目录是另外两个目录的父目录。 编译 kernel 编译 1 2 3 4 5 6 7 8 9 cd $LINUX # 此处应为你的 linux 源码根目录 make x86_64_defconfig cat <.config-fragment CONFIG_DEBUG_INFO=y CONFIG_GDB_SCRIPTS=y EOF ./scripts/kconfig/merge_config.sh .config .config-fragment # -j? 可加快编译速度。若报错取消该选项方便查看报错信息 make bzImage -j4 若遇到编译报错 1 s cripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: 没有那个文件或目录 安装 Openssl 即可 1 s udo apt-get install libssl-dev Busybox 编译 设置编译选项 因为Linux 运行环境当中是不带动态库的,所以必须以静态方式来编译BusyBox 。

模型1 输入参数和输出参数 (修改)

1. 模型概况 (1)模型输入参数总览 (2)模型风荷载信息 风压单位: kN/m2迎风面积单位: m2 本层风荷载、楼层剪力单位:kN 楼层弯矩单位: kN.m

表1 X向顺风向风荷载信息 (3)工况组合 表2 工况设定

表3 组合系数

(4)模型配筋信息 ①一、二、三、四层配筋

②五层配筋

2. 分析结果 (1)结构周期 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-65-6-5 G 0.4-0.45-0-65-6-5 G 0.4-0.45-0-65-6-5 G 0.4-0.45-0-65-6-5 G 0.4-0.45-0-65-6-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-65-6-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-55-6-5 G 0.4-0.45-0-55-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-65-6-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-65-5-5 G 0.4-0.46-0-55-6-5 G 0.4-0.45-0-55-5-5 G 0.4-0.4 6-0-55-6-5 G 0.4-0.46-0-55-6-5 G 0.4-0.46-0-55-6-5 G 0.4-0.46-0-55-6-5 G 0.4-0.46-0-55-6-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 G 0.4-0.45-0-55-5-5 (0.03) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.03) 2.0 8 8G 1.3-0.0 1.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.0 1.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.09) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.0 1.2 (0.03) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.05) 2.0 8 8G 1.3-0.01.2 (0.03) 2.0 8 8G 1.3-0.0 1.2

错误 参数类型错误

错误参数类型错误 当我运行程序后,输入插入点,提示:错误:参数类型错误:numberp: nil 为什么? 我用autolisp编制绘向心球轴承的二维图形,程序如下: (defun c:zch1 (/ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 pc1 pc2 a fx1 fx2 t1 ) (setq d (getreal"\n 输入轴承外径")) (setq d1 (getreal"\n 输入轴承内径")) (setq b (getreal"\n 输入轴承宽度")) (if (> d 40) (setq t1 1.5) ;t1为绘制刨面线的线间距比例因子 (setq t2 0.7) ) (setq a (/ (- d d1) 2.0) ) ;计算三个中间参数值 (setq fx1 (/ pi 2)) (setq fx2 (/ (* 3 pi) 2)) ) (setq p0 (getpoint"\n 输入图形插入点:")) (setq p1 (polar p0 fx1 (/ d 2.0))) (setq p2 (polar p1 0 b)) (setq pc1 (list (+ (car p0) (/ b 2.0)) (+ (cadr p0) (/ (- d a) 2.0)))) (setq pc2 (polar pc1 fx2 (- d a))) (setq p9 (polar pc1 (/ (* pi 11) 6) (/ a 4))) (setq p8 (polar pc1 (/ (* pi 7) 6) (/ a 4))) (setq p4 (polar pc1 (/ pi 6) (/ a 4))) (setq p5 (polar pc1 (/ (* pi 5) 6) (/ a 4))) (setq p3 (list (car p2) (cadr p4))) (setq p6 (list (car p1) (cadr p5))) (setq p7 (list (car p1) (cadr p8))) (setq p10 (list (car p2) (cadr p9))) (setq p11 (polar p2 fx2 a)) (setq p12 (polar p1 fx2 a)) (setq p13 (polar p0 fx2 (/ d1 2.0))) (setq p14 (polar p13 0 b)) (setq p15 (polar p2 fx2 (/ d 2.0))) (setq p16 (polar p15 0 b)) (nlayer) ;调用层设置函数 (command "zoom" "w" (polar p1 fx1 10) (polar p16 fx2 10)) (command "layer" "s" 1 "") ;绘制轴承的上半部分 (command "pline" p1 p2 p3 p4 "") (command "arc" p4 "ce" pc1 "a" 120) (command "pline" p5 p6 p1 "") (command "pline" p6 p7 p8 "") (command "arc" p8 "ce" pc1 "a" 120)

相关文档
最新文档