cat /proc/sys/kernel/sem
250 32000 32 128或者
ipcs -ls
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
我機器上的信號隊列arrays
ipcs -a | wc -l
144
144>128 為什么超了,這個我也不懂,但是我的openmanage插件一直超時,而且無法啟動,無法停止,真TM的 查這個問題花了我好長時間
首先 介紹下kernel.sem這4個參數的意義
cat /proc/sys/kernel/sem
250 32000 32 128
250 SEMMSL max semaphores per array 信號集容納信號數量
32000 SEMMNS max semaphores system wide 所有信號的數量
32 SEMOPM max ops per semop call 調用單個信號集中信號數量
128 SEMMNI max number of arrays 信號集的值
首先
max semaphores per array
max number of arrays
這2個參數肯定是不夠的,我們先調高一點
echo "500 641280 500 500" > /proc/sys/kernel/sem
我們利用
ipcs -a | grep nagios | wc -l
90 查看當前nagios用戶信號數量
然后把它全清理掉。
ipcs -a | grep nagios | awk '{print $2}' | xargs -n1 ipcrm -s 關于ipcs和ipcrm這2個命令的解釋網上很多,我就不再說了
ipcs -a | grep nagios | wc -l
全部清理掉后,重啟應用 比如
/opt/dell/srvadmin/sbin/srvadmin-services.sh stop
ipcs用法
ipcs -a 是默認的輸出信息 打印出當前系統中所有的進程間通信方式的信息
ipcs -m 打印出使用共享內存進行進程間通信的信息
ipcs -q 打印出使用消息隊列進行進程間通信的信息
ipcs -s 打印出使用信號進行進程間通信的信息
ipcs -t 輸出信息的詳細變化時間
ipcs -p 輸出ipc方式的進程ID
ipcs -c 輸出ipc方式的創建者/擁有者
ipcs -u 輸出當前系統下ipc各種方式的狀態信息(共享內存,消息隊列,信號)
ipcrm用法
-m SharedMemory id 刪除共享內存標識 SharedMemoryID。與 SharedMemoryID 有關聯的共享內存段以及數據結構都會在一次拆離操作后刪除。
-M SharedMemoryKey 刪除用關鍵字 SharedMemoryKey 創建的共享內存標識。與其相關的共享內存段和數據結構段都將在一次拆離操作后刪除。
-q MessageID 刪除消息隊列標識 MessageID 和與其相關的消息隊列和數據結構。
-Q MessageKey 刪除由關鍵字 MessageKey 創建的消息隊列標識和與其相關的消息隊列和數據結構。
-s SemaphoreID 刪除信號量標識 SemaphoreID 和與其相關的信號量集及數據結構。
-S SemaphoreKey 刪除由關鍵字 SemaphoreKey 創建的信號標識和與其相關的信號量集和數據結構。
ipcrm -m 18602
粵嵌科技創辦于2005年是一家IT高新技術企業,專注IT職業教育13年,主要培訓課程分別有嵌入式培訓、Java培訓、Unity游戲開發、Python人工智能、HTML5前端開發、全棧UI設計、網絡營銷、CCIE網絡等專業課程。