免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4416 | 回复: 6
打印 上一主题 下一主题

sun15k上,semop 报错ENOSPC,请问该如何解决,急急急!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-22 14:26 |只看该作者 |倒序浏览
在solaris上执行semop时报错ENOSPC:\r\n相关函数如下:\r\n1.初始化函数\r\nint init_shareBlk(char *lockID)\r\n{\r\n   union semun   arg;\r\n\r\n    key = atoi(lockID);\r\n        if ((shblk_sem_id = semget(key, 1, IPC_CREAT|0666)) < 0)\r\n        {\r\n            log_error(SHBLK_MODULE, \"lock semaphore error\");\r\n            return shblk_sem_id;\r\n        }\r\n        arg.val = 0;\r\n        semctl(shblk_sem_id, 0, SETVAL, arg);\r\n}\r\n\r\n2.加锁函数\r\nvoid lock_shareBlk()\r\n{\r\n    struct sembuf lockops[2];\r\n    \r\n    lockops[0].sem_num = 0;\r\n    lockops[0].sem_op = 0;\r\n    lockops[0].sem_flg = 0;\r\n    lockops[1].sem_num = 0;\r\n    lockops[1].sem_op = 1;\r\n    lockops[1].sem_flg = SEM_UNDO;\r\n    semop(shblk_sem_id, lockops, 2);\r\n}\r\n \r\n3.解锁函数\r\nvoid unlock_shareBlk()\r\n{\r\n    struct sembuf unlockop;\r\n    \r\n    unlockop.sem_num = 0;\r\n    unlockop.sem_op = -1;\r\n    unlockop.sem_flg = SEM_UNDO;\r\n    semop(shblk_sem_id, &unlockop, 1);\r\n}\r\n\r\n同时有多个并发进程,都需要刷新共享内存,当运行一段时间后就会出现ENOSPC错误,\r\nman semop:\r\n  ENOSPC\r\n      The  limit  on  the  number  of  individual  processes\r\n                 requesting an SEM_UNDO would be exceeded.:\r\n\r\n请问在sun 15k上调整哪个系统参数可以解决这个问题.谢谢!

论坛徽章:
0
2 [报告]
发表于 2006-11-22 14:30 |只看该作者
这个问题牛,估计800不会受理 \r\n\r\nsolaris的版本都没有提? 好象跟15K没有关系, 如果不是指LZ的月薪的话 \r\n\r\n也许某个补丁能解决?

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-03-19 06:20:00数据库技术版块每日发帖之星
日期:2016-07-05 06:20:00
3 [报告]
发表于 2006-11-22 14:40 |只看该作者
应该是与ENOSPC相关的内核参数太小吧

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-03-19 06:20:00数据库技术版块每日发帖之星
日期:2016-07-05 06:20:00
4 [报告]
发表于 2006-11-22 17:49 |只看该作者
查查手册,看下面的参数哪个有关。要不要试把800以下的都加大?呵呵\r\nset shmsys:shminfo_shmmax=17179869184\r\nset semsys:seminfo_semmap=250\r\nset semsys:seminfo_semmni=800\r\nset semsys:seminfo_semmns=5000\r\nset semsys:seminfo_semmsl=600\r\nset semsys:seminfo_semmnu=600\r\nset semsys:seminfo_semopm=100\r\nset semsys:seminfo_semvmx=32767\r\nset semsys:seminfo_semume=100

论坛徽章:
0
5 [报告]
发表于 2006-11-23 00:20 |只看该作者
Hope this doc could help:\r\n\r\nSolaris Tunable Parameters Reference Manual\r\n\r\nChapter 2\r\nSolaris Kernel Tunables\r\n\r\nhttp://docs.sun.com/app/docs/doc ... sj7?l=es&a=view

论坛徽章:
0
6 [报告]
发表于 2006-11-23 08:59 |只看该作者
是这个参数设置太小了,执行semop的进程使用了SEM_UNDO模式,这样每个进程会申请一个sem_undo结构,\r\nset semsys:seminfo_semmnu=600

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-03-19 06:20:00数据库技术版块每日发帖之星
日期:2016-07-05 06:20:00
7 [报告]
发表于 2006-11-23 09:14 |只看该作者
[quote]原帖由 susbin 于 2006-11-23 00:20 发表\r\nHope this doc could help:\r\n\r\nSolaris Tunable Parameters Reference Manual\r\n\r\nChapter 2\r\nSolaris Kernel Tunables\r\n\r\nhttp://docs.sun.com/app/docs/doc ... sj7?l=es&a=view [/quote\r\n\r\n 牛人,这是什么语言?\r\n\r\n
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP