ksh93 스크립트에서 메모리 사용량을 추적하는 방법

ksh93 스크립트에서 메모리 사용량을 추적하는 방법

우리는 영원히(while 루프 내에서) 또는 적어도 종료 이벤트가 전달될 때까지 실행되는 여러 ksh 스크립트를 가지고 있습니다. 우리는 이러한 스크립트를 ksh93으로 변환하고 기능을 추가하고 OS를 AIX 5.3에서 6.1로 업그레이드한 프로젝트를 진행하고 있습니다. ksh 스크립트는 AIX 5.1에서 문제 없이 실행됩니다. 이제 ksh93, AIX 6.1로 변환하고 기능을 추가했으므로 프로세스의 메모리가 한계를 초과할 때까지 계속해서 증가한다는 것을 알 수 있습니다. 메모리 임계값에 도달하면 프로세스를 종료하고 다시 시작하는 논리를 추가해야 했습니다.

우리는 일부 ksh93 함수에 메모리 누수가 있다고 가정했습니다(아마도 잘못되었을 수도 있음).

메모리를 해제하지 않는 특정 함수가 있는지 확인하려고 합니다. 내가 사용해 온 프로세스 메모리를 얻으려면 svmon -P $$ | grep $$ | awk '{ print $3 }'아마도 더 좋은 방법이 있을 것입니다.

다음은 스크립트의 다양한 지점에서 svmon 명령의 출력입니다. 외부 "while" 루프의 하단을 표시하기 위해 "루프 끝"을 추가했습니다. 값이 시작 값에 가깝게 떨어지는 간헐적인 읽기를 제외하고는 메모리 사용량이 계속 증가하는 것을 확인할 수 있습니다. 저점 이후의 다음 수치는 저점 전 수치를 따르는 것처럼 보이기 때문에 이러한 낮은 값이 잘못된 것이라고 추측하고 있습니다. 더 낮은 값을 제거하면 메모리 사용량이 계속 증가합니다. 이 스크립트는 다른 프로세스가 존재하는지 확인하는 감시 스크립트입니다. 다른 프로세스의 스크립트도 동일한 유형의 동작을 나타냅니다.

메모리 사용량을 확인하는 더 좋은 방법이 있습니까? 메모리를 올바르게 해제하지 않는 일반적인 ksh93 기능을 아는 사람이 있습니까? IBM에서는 AIX 7.x로 업그레이드할 것을 권장하지만 이는 현재 불가능합니다.

지금 경고해야겠습니다. 저는 ksh 스크립트 개발자가 아닌 DBA입니다.

28721   
Start-Of-Loop   
28435   <--- low value  
28733   
28737   
28740   
28745   
28747   
28435   <--- low value   
28755   
28759   
28762   
28767   
28770   
28774   
28777   
28780   
28783   
28787   
28791   
28806   
28809   
28813   
28817   
28822   
28825   
28828   
28831   
28833   
28835   
28835   
28838   
28839   
28843   
28843   
28843   
28435   <--- low value   
28843   
28843   
28846   
28846   
28847   
28408   <--- low value   
28853   
28853   
28853   
28408   <--- low value  
28854   
28854   
28857   
28857   
28859   
28860   
28863   
28863   
28864   
28865   
28867   
28869   
28871   
28874   
28878   
28878   
28879   
28879   
28882   
28882   
28883   
28884   
28887   
28888   
28891   
28891   
28435   <--- low value  
28894   
28897   
28898   
28901   
28436   <--- low value  
28904   
28904   
28906   
28906   
28910   
28910   
28914   
28407   <--- low value  
28917   
28435   <--- low value  
28921   
28923   
28927   
28927   
28930   
28436   <--- low value  
28935   
28935   
28935   
28938   
28942   
28942   
28435   <--- low value  
28946   
28948   
28950   
28953   
28953   
28953   
28953   
28953   
28953   
28957   
28957   
28958   
28958   
28959   
28959   
28961   
28962   
28965   
28408   <--- low value  
28966   
28966   
28967   
28968   
28970   
28971   
28974   
28974   
28975   
28975   
28976   
28976   
28408   <--- low value  
28978   
28978   
End-Of-Loop  
28436   <--- low value  
28982   
28982   
28983   
28408   <--- low value  
28984   
28984   
28985   
28440   <--- low value  
28989   
28990   
28436   <--- low value  
28991   
28991   
28991   
28991   
28991   
28994   
28995   
28995   
28995   
28995   
28997   
29001   
29004   
29008   
28435   <--- low value  
29008   
29008   
28408   <--- low value  
29011   
29011   
29011   
29015   
29015   
29019   
29019   
29019   
29019   
29020   
28435   <--- low value  
29025   
29026   
29028   
29030   
29033   
29033   
28435   <--- low value  
29035   
29039   
28436   <--- low value  
29039   
29039   
29041   
29043   
28408   <--- low value  
29047   
29050   
29050   
29052   
29052   
29055   
29055   
29057   
29057   
29058   
28408   <--- low value  
29061   
29062   
29067   
29067   
29068   
28408   <--- low value  
29069   
29070   
29075   
28408   <--- low value  
29076   
29076   
29076   
28408   <--- low value  
28408   <--- low value  
28435   <--- low value  
29080   
29083   
28408   <--- low value  
29087   
29089   
29089   
29092   
29094   
28430   <--- low value  
29097   
29100   
29101   
29103   
28408   <--- low value  
29103   
29103   
29104   
29104   
28435   <--- low value  
29107   
28408   <--- low value  
29111   
29113   
29114   
29117   
29117   
29120   
29120   
29122   
29122   
29124   
29124   
29127   
29127   
29129   
29129   
28408   <--- low value  
29134   
29135   
29135   
29135   
29135   
29139   
29139   
29139   
29139   
28440   <--- low value  
29139   
28435   <--- low value  
28408   <--- low value  
29139   
End-Of-Loop  
29141   
29145   
29145   
29147   
28435   <--- low value  
29150   
29150   
29153   
29153   
29155   
29157   
29157   
29157   
29157   
29157   
29159   
29159   
29159   
29159   
29163   
29163   
29167   
29169   
29172   
29172   
29175   
29175   
29177   
29177   
29177   
29179   
28435   <--- low value  
29181   
29186   
29186   
29189   
29189   
29191   
29193   
29196   
29196   
29198   
29198   
29199   
29200   
29202   
29202   
29205   
29205   
28435   <--- low value  
29209   
29211   
28435   <--- low value  
29216   
29217   
29220   
28435   <--- low value  
29225   
29225   
28433   <--- low value  
29227   
28433   <--- low value  
29229   
29230   
29231   
29233   
29233   
29235   
29237   
29238   
29239   
29244   
29247   
29250   
29252   
29258   
29260   
29263   
29264   
29268   
29269   
29271   
29271   
29274   
29274   
28435   <--- low value  
28408   <--- low value  
29283   
29286   
29287   
29291   
29291   
29295   
29295   
29295   
29299   
29303   
29303   
29306   
29306   
29308   
29310   
29312   
28440   <--- low value  
29312   
29312   
29317   
29318   
29322   
29322   
29323   
29323   
28408   <--- low value  
28407   <--- low value  
29327   
29327   
29329   
29329   
28435   <--- low value  
29329   
29330   
29331   
28437   <--- low value  
29333   
29336   
29336   
29336   
29336   
29336   
29336   
29336   
29336   
29336   
End-Of-Loop  
29338   
29342   
29343   
29343   
29345   
29347   
28435   <--- low value  
28435   <--- low value  
29349   
29349   
29351   
29353   
29353   
29354   
29354   
29354   
29354   
29354   
28436   <--- low value  
28408   <--- low value  
29356   
29357   
29357   
29361   
29361   
28435   <--- low value  
29361   
29363   
29363   
29366   
29367   
29373   
28408   <--- low value  
29376   
29376   
29380   
28407   <--- low value  
28435   <--- low value  
29381   
28440   <--- low value  
29387   
29387   
29390   
29394   
29394   
28436   <--- low value  
29396   
29398   
29399   
29401   
29401   
29402   
29402   
29403   
29404   
29406   
28436   <--- low value  
29411   
28408   <--- low value  
29417   
29417   
29418   
29419   
29421   
29421   
29423   
29424   
29426   
29426   
28408   <--- low value  
29431   
29435   
29435   
28435   <--- low value  
29439   
29442   
29444   
28435   <--- low value  
29447   
29449   
29449   
29451   
29451   
29455   
29455   
28435   <--- low value  
29458   
29461   
29462   
29465   
29467   
28408   <--- low value  
29470   
29473   
29475   
29478   
29479   
29483   
29483   
29485   
29485   
29488   
29488   
29489   
29489   
29489   
29489   
29491   
29492   
29493   
29493   
29495   
29497   
29501   
29503   
29504   
29504   
29506   
29508   
29509   
29511   
29515   
29515   
29519   
29519   
28436   <--- low value  
29521   
28408   <--- low value  
29522   
29523   
28435   <--- low value  
29523   
29523   
29523   
End-Of-Loop  

관련 정보