提交的变更: 修改: code/sys_nicmonitor/README 修改: code/sys_nicmonitor/mnic.c 修改: code/sys_nicmonitor/version.h Signed-off-by: Wei, Jing <jwei@linx-info.com>
151 lines
7.0 KiB
Plaintext
151 lines
7.0 KiB
Plaintext
--V1.14 --
|
||
2015-12-29
|
||
修正了common.c中对日志消息队列的操作,其中包括:交换log_prepare与log_writing>队列指针的bug;以及在写入log_prepare队列时未检查已写入消息是否大于队列长度的b
|
||
ug。修正了log_path(即日志文件名)不会随时间改变的bug。
|
||
--V1.13 --
|
||
2015-12-23
|
||
修正在记录日志中检查目录时(在函数create_dir中),由于采用线程进行日志记录,多次调用get_nic_info可能会导致的将日志文件路径名变错的问题。在get_nic_info中判断log_path是否被初始化过,如过未初始化,则到共享内存中读取。否则,为初始化过,直接使用该值,并在create_dir中使用局部变量保存该值,在create_dir中使用操作该局部变量,而不去改变该全局变量的值。
|
||
|
||
-V1.12 --
|
||
2015-12-23
|
||
修正在程序开始时对IPC变量删除的错误函数调用。
|
||
添加配置项crazyping,当其不为零时,会在每次取网卡信息时进行ping操作。
|
||
|
||
|
||
--V1.11 --
|
||
2015-12-18
|
||
添加在程序开始时对IPC变量是否已存在的判断,如果已存在,则将其删除。
|
||
将宏TESTINTERVAL的定义去除,不然不会调用南瑞的库函数。
|
||
|
||
--V1.10 --
|
||
2015-12-11
|
||
修改IPC信号量的相关操作
|
||
|
||
1)通过对代码的分析发现:在使用信号量时存在错误。在使用进行PV原语操作时,进行了相反的操作,其中加锁操作应减少信号量的计数,而去锁应增加信号量的计数,但库中进行了相反的操作,对其进行了修改。即将get_sem中对信号量的操作改为-1,而在release_sem函数中对信号量的操作变为1(即+1)。同时在init_sem函数中将该信号量的值初始化为1。
|
||
|
||
2)信号量应由网卡监控程序sys_nicmonitor创建,而不应由用户程序创建,对其进行了相应的修改(在创建信号量时在flag中添加IPC_EXCL,并将用户程序引用信号量时的flag中去除IPC_CREATE)。
|
||
|
||
3)在对获取网卡信息函数get_nic_info中添加获取时间的操作后得知,其中对getpwdnam的调用会减慢函数的工作(该函数并非每次都减慢函数很多,多数在30~40ms左右,但在测试中曾达到2s左右)。对其修改为在sys_nicmonitor程序启动时,调用getpwdnam函数,并将得到的用户主目录名写入到一块共享内存中。当用户程序要获得该目录名时,则从该值从共享内存中读取出来,而不需要每次都通过getpwdnam来获取,故可以提高该函数的速度。
|
||
|
||
|
||
=-======update 2015-11-17
|
||
编译前,进入dep目录运行sh run.sh,安装编译依赖文件.
|
||
|
||
然后sh build.sh编译1.9版本的sys_nicmonitor#1.9-x86_64-Linx-Rocky4.2.pkg.tar.gz
|
||
|
||
调试模式下:
|
||
cd sys_nicmonitor-1.9
|
||
make clean
|
||
make
|
||
make test
|
||
make runtest
|
||
|
||
版本号变更方法,更新sys_nicmonitor/version.h文件,需要同时修改//后面的和define中的,前者用于pkg包,后者用于sys_nicmonitor程序.
|
||
制作pkg包方法: sh build.sh
|
||
|
||
|
||
|
||
=========
|
||
编译前准备:
|
||
编译前先安装dotconf软件包。
|
||
libman.so拷贝到/usr/lib64/下
|
||
pkgadd dotconf#1.0.13-1.pkg.tar.gz
|
||
|
||
编译说明:
|
||
在Rocky 4.2上编译
|
||
|
||
执行: sh build.sh
|
||
将在当前的目录下生成安装包:
|
||
sys_nicmonitor#1.9-x86_64-Linx-Rocky4.2.pkg.tar.gz
|
||
|
||
========
|
||
安装说明:
|
||
1)安装,以root的用户执行安装命令:
|
||
pkgadd sys_nicmonitor#1.9-x86_64-Linx-Rocky4.2.pkg.tar.gz
|
||
如果之前已经安装,则可先卸载旧的然后再安装,或者通过更新方式安装
|
||
卸载命令: pkgrm sys_nicmonitor
|
||
更新方式安装命令:
|
||
pkgadd -u sys_nicmonitor#1.9-x86_64-Linx-Rocky4.2.pkg.tar.gz
|
||
|
||
2)查看安装是否成功
|
||
pkginfo -i|grep sys_nicmonitor
|
||
或者
|
||
查看d5000用户的目录下lib/libnic_shm.so和bin/sys_nicmonitor的日期是否匹配
|
||
|
||
========
|
||
|
||
版本说明:
|
||
--V1.22 --
|
||
2021-12-13
|
||
1)修复问题:华为5885V3型号服务器科东应用启动网卡监视程序检测到失败
|
||
问题描述:使用科东应用启动工具启动网卡监视程序失败
|
||
解决办法:修改调用科东注册接口函数位置,提升优先级优先调用。
|
||
|
||
版本说明:
|
||
--V1.21 --
|
||
2019-09-05
|
||
1)修复问题:monitor_interval参数溢出导致cpu 100%
|
||
问题描述:当monitor_interval参数配置为1000时,出现进程cpu占用100%的问题
|
||
解决办法:增加对monitor_interval配置的检测和限制
|
||
|
||
--V1.9 --
|
||
2013-08-12
|
||
1)修复问题:占用内存快速累加,导致内存占用很大
|
||
问题描述:日志线程资源退出时未回收,导致占用内存快速累加
|
||
解决办法:修改为一个日志线程,并且线程退出时设置为自动回收。
|
||
将日志写文件的地方放到common.c中,以便动态库和daemon程序使用一个。
|
||
|
||
2)修复问题:日志文件名在家目录或者var目录下,未在规定位置
|
||
问题描述:日志文件命名在一个单独的线程进行,导致日志线程和该线程对log_path存在同时访问的情况。
|
||
导致在换天或者换月时,日志文件名变更一半时,日志写线程此时写日志,用未更新完成的
|
||
log_path创建日志,导致日志文件不再规定的位置。
|
||
解决办法:增加线程互斥锁pthread_mutex对log_path进行保护,修复该问题。
|
||
|
||
|
||
--V1.8.1--
|
||
2013-06-05
|
||
1)修改BUG:ping_gw函数当PING失败时没有尝试对余下的GW进行PING操作
|
||
2)增加环境变量SYS_NIC_DEBUG用于调试流量抖动问题。
|
||
|
||
--V1.8 --
|
||
2013-05-27
|
||
对系统高磁盘IO情况下,应用如果进行IO将可能会被阻塞。本版本为此作出调整。
|
||
cs-fes1上编译测试OK。
|
||
|
||
1) 去掉shm和sem的实体文件
|
||
#define SHM_PATH "$D5000_HOME/share/sys_netcard_shm_path"
|
||
#define SEM_PATH "$D5000_HOME/share/sys_netcard_sem_path"
|
||
|
||
用key=0x1d5200 代替 sem
|
||
用key=0x1d5010 代替 shm
|
||
|
||
|
||
2)去掉动态库中get_nic_info接口中,判断路径的opendir调用,采用实际路径
|
||
上层应用每秒可能调用3次这个接口,每判断一个网卡都调用一次,判断都个网卡的状态时就调用多次。
|
||
|
||
可改进:一次调用get_nic_info接口,可输入多个网卡,一次返回所有网卡状态信息。
|
||
|
||
3) record_log函数为日志函数,每次写一次,都重新打开一次文件。
|
||
修改为线程模式,当记录日志时,不会被磁盘IO阻塞。
|
||
|
||
4) 安装目录为d5000用户的HOME目录下的lib和bin目录
|
||
|
||
----
|
||
|
||
|
||
V1.6与V1.7差异
|
||
共享内存路径修改:
|
||
由/home/d5000/someone/tmp/sys_netcard_shm_path 改为 /home/d5000/someone/share/sys_netcard_shm_path
|
||
信号量路径修改:
|
||
由/home/d5000/someone/tmp/sys_netcard_sem_path 改为 /home/d5000/someone/share/sys_netcard_sem_path
|
||
|
||
注意:在编译过程中,需要动态看libman.so,它存放在目录 tags/下面 ,在进行编译的时候需要将其拷贝到
|
||
/lib64/目录下,编译的基础环境是 Rocky 4.2 系统。
|
||
|
||
pkgmk命令的使用:
|
||
将源代码打包成name-version.tar.gz样式,编写Pkgfile文件。
|
||
使用命令:
|
||
pkgmk -um #更新软件包的md5值
|
||
pkgmk -kw #制作pkg安装包
|
||
|