常驻进程-RSA加密公钥私钥RESOURCE没有释放导致内存暴涨
内存泄露往往是比较难查找的问题,借助bcc 的memleak工具可以初步判断是哪个类库导致的,知道了哪个类型,可以大概判断是业务流程中哪一部分的代码导致的
例如:RSA加密导致内存暴涨
用BCC工具会看到类似 /lib64/libcrypt.so.xxx分配了大量的内存,再根据业务到到RSA加密的地方,没有释放
$key = 'xx';
$rsaPri = "-----BEGIN PRIVATE KEY-----\n" .
wordwrap($key, 64, "\n", true) .
"\n-----END PRIVATE KEY-----";
$merchant_private_key = openssl_get_privatekey($rsaPri);
openssl_sign($md5str, $sign_info, $merchant_private_key);
$sign = base64_encode($sign_info);
//此处不能省略,如果不释放资源,则会导致内存暴涨
openssl_free_key($merchant_private_key);