ldconfig与 /etc/ld.so.conf -zt

上一篇 / 下一篇  2009-02-24 17:53:34 / 个人分类:linux

 

现在我们知道了动态与静态函数库,也知道了当前的Linux大多是将函数库做成动态函数库,下面来讨论增加函数库读取性能的方法。我们知道,内存的访问速度是硬盘的好几倍,所以,如果将常用的动态函数库加载到内存中(高速缓存,cache),当软件套件要采用动态函数库时,就不需要重新从硬盘里读出,这样就可以提高动态函数库的读取速度。这个时候需要ldconfig/etc/ld.so.conf的帮助。

将动态函数库加载到高速缓存(cache)中的过程如下:

1.首先,要在/etc/ld.so.conf中写下“想要读入高速缓存中的动态函数库所在的目录”,注意,是目录而不是文件。

2.利用ldconfig执行文件将/etc/ld.so.conf的数据读入高速缓存中。

3.同时在/etc/ld.so.cache文件中记录数据。

事实上,ldconfig还可以用来判断动态函数库的连接信息。赶紧测试吧。假设要将MySQL函数库加入到高速缓存中:

[root@linux ~]#ldconfig [-f conf] [ -C cache] [-p]

参数:

-f conf: conf指的是某个文件名称,也就是说,使用conf作为libarary

          函数库的取得路径,而不以/etc/ld.so.conf为默认值

-C cache : cache指的是某个文件名称,也就是说,使用cache作为高速缓存暂存

          函数库信息,而不以/etc/ld.so.cache为默认值

-p      :列出当前所拥有的所有函数库数据内容(在/etc/ld.so.cache中的数据)。

范例:

范例一:假设MySQL数据库函数库在/usr/lib/mysql中,如何读入高速缓存?

[root@linux ~]#vi /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/lib/mysql  <==这一行是新增的。

[root@linux ~]#ldconfig

#画面上不会显示任何信息,正常。

[root@linux ~]#ldconfig -p

928 libs found in cache `/etc/ld.so.cache'

       libz.so.1 (libc6) => /usr/lib/libz.so.1

       libz.so (libc6) => /usr/lib/libz.so

......中间省略......

 

范例二:

Ø      echo "/usr/lib/mysql" >> /etc/ld.so.conf

Ø      ldconfig

Øldconfig -p

 

通过上面的操作,我们可以将MySQL的相关函数库读入高速缓存中,这样可以加快函数库读取的速度。有时您可能会自行加入某些Tarball安装的动态函数库,当您想让这些动态函数库的相关连接可以读入到高速缓存中时,可以将动态函数库所在的目录名称写入/etc/ld.so.conf中,然后执行ldconfig

TAG: ldconfig

 

评分:0

我来说两句

Open Toolbar