I’ve written about yum in the past, and how it can be used to manage packages on CentOS Linux hosts. In addition to the base functionality that is available in yum, there are also numerous plugins that can be added to extend the base yum feature set. The full list of plugins can be viewed with with yum “list” option:
$ yum list | egrep "^yum"
yum.noarch 3.2.19-18.el5.centos installed
yum-fastestmirror.noarch 1.1.16-13.el5.centos installed
yum-metadata-parser.x86_64 1.1.2-2.el5 installed
yum-updateonboot.noarch 1.1.16-13.el5.centos installed
yum-updatesd.noarch 1:0.9-2.el5 installed
yum-verify.noarch 1.1.16-13.el5.centos installed
yum-NetworkManager-dispatcher.noarch 1.1.16-13.el5.centos base
yum-aliases.noarch 1.1.16-13.el5.centos base
yum-allowdowngrade.noarch 1.1.16-13.el5.centos base
yum-changelog.noarch 1.1.16-13.el5.centos base
yum-cron.noarch 0.6-1.el5.centos extras
yum-downloadonly.noarch 1.1.16-13.el5.centos base
yum-filter-data.noarch 1.1.16-13.el5.centos base
yum-kernel-module.noarch 1.1.16-13.el5.centos base
yum-keys.noarch 1.1.16-13.el5.centos base
yum-kmod.noarch 1.1.16-13.el5.centos base
yum-list-data.noarch 1.1.16-13.el5.centos base
yum-merge-conf.noarch 1.1.16-13.el5.centos base
yum-priorities.noarch 1.1.16-13.el5.centos base
yum-protect-packages.noarch 1.1.16-13.el5.centos base
yum-protectbase.noarch 1.1.16-13.el5.centos base
yum-refresh-updatesd.noarch 1.1.16-13.el5.centos base
yum-security.noarch 1.1.16-13.el5.centos base
yum-tmprepo.noarch 1.1.16-13.el5.centos base
yum-tsflags.noarch 1.1.16-13.el5.centos base
yum-upgrade-helper.noarch 1.1.16-13.el5.centos base
yum-utils.noarch 1.1.16-13.el5.centos base
yum-versionlock.noarch 1.1.16-13.el5.centos base
yumex.noarch 2.0.3-2.el5.centos extras
Of the available plugins, here are a few of my favorites:
yum-utils:
Description: yum-utils is a collection of utilities and examples for the yum package manager. It
: includes utilities by different authors that make yum easier and more powerful to use.
: These tools include: debuginfo-install, package-cleanup, repoclosure, repodiff, repo-
: graph, repomanage, repoquery, repo-rss, reposync, repotrack, verifytree, yum-builddep,
: yum-complete-transaction, yumdownloader, yum-debug-dump and yum-groups-manager.
yum-updateonboot:
Description: Runs yum update on system boot. This allows machines that have been turned off for an
: extended amount of time to become secure immediately, instead of waiting until the next
: early morning cron job.
yum-verify:
Description: This plugin adds the commands verify, verify-all and verify-rpm. There are also a
: couple of options. This command works like rpm -V, to verify your installation.
yum-downloadonly:
Description: This plugin adds a --downloadonly flag to yum so that yum will only download the
: packages and not install/update them.
yum-list-data:
Description: This plugin adds the commands list- vendors, groups, packagers, licenses, arches,
: committers, buildhosts, baseurls, package-sizes, archive-sizes and installed-sizes.
yum-priorities:
Description: This plugin allows repositories to have different priorities. Packages in a repository
: with a lower priority can't be overridden by packages from a repository with a higher
: priority even if repo has a later version.
yum-fastestmirror:
Description: This plugin sorts each repository's mirrorlist by connection speed prior to downloading
: packages.
yum-changelog:
Description: This plugin adds a command line option to allow viewing package changelog deltas before
: or after updating packages.
yum-allowdowngrade:
Description: This plugin adds a --allow-downgrade flag to yum to make it possible to manually
: downgrade packages to specific versions.
I’ve covered a number of these plugins in previous posts, so check out the archives if you want to learn more
I have been spending a good bit of my spare time studying for the Oracle RAC certification, and am hoping to get certified by the end of summer. Once thing that annoys me is the fact that you have to attend a vendor training class in order to get certified. This is kinda silly, and I have yet to find a test that I couldn’t pass by studying the product on my own (I have 14 certifications, all of which I got by studying vendor documentation). While I can understand that Oracle wants to make money off the certification process, they should be a bit more flexible and allow people to acquire certifications through self-study (I think you learn more when you study material on your own). Since I don’t have $3,500 to spend on the class, I may have to stop once I get my OCA next month. Bummer!
I just built a quad core AMD-based server that I plan to use as a storage host in my lab. The machine has the following configuration:
ASUS M2N-LR motherboard
AMD Opteron 1354 Budapest 2.2GHz Socket AM2 75W processor
8GD of 667MHZ DDR2 ECC memory
4 750GB Western Digital SATA II disk drives
SAMSUNG 22X DVD±R DVD Burner with LightScribe
Antec earthwatts EA500 500W Continuous Power
ARK 4U-500-CA Black 4U Rackmount Case
2 masscool 80MM fans
1 Scythe 120MM case fan
1 Emulex LP1000DC fibre channel adapter
Now that the machine has been up and working for a few days, all I can say is WOW! This machine is blazing fast, and the rack mount case I purchased is absolutely amazing. It is extremely well constructed, and has TONS of space for future expansion. This rig is able to run opensolaris and CentOS Linux, and I couldn’t be happier with my purchase. Everything cost just over $600 (NewEgg and eBay rock!), which I think is an incredible price for a machine with these specifications. This machine will be a great storage server once I get COMSTAR configured!
While poking around the CentOS package repository, I came across the ktune package. Ktune comes with a set of kernel tunables that are useful for network and disk intensive workloads, and provides the ktune service to apply these settings during system startup. Ktune includes settings for TCP/IP buffers, setting the deadline scheduler as the default I/O scheduler, and entries to adjust the swappiness, dirty_ratio and pagecache settings. The full list of tunables can be viewed by paging through the following two configuration files:
$ less /etc/sysctl.ktune
$ less /etc/sysconfig/ktune
To activate the settings, you can enable the ktune service with the chkconfig and service utilities:
$ chkconfig ktune on
$ service ktune start
Saving current sysctl settings: [ OK ]
Applying ktune sysctl settings from /etc/sysctl.ktune: [ OK ]
Applying sysctl settings from /etc/sysctl.conf: [ OK ]
Applying deadline elevator: sda [ OK ]
This is an awesome package, and I definitely plan to use the network settings on all of my CentOS hosts.
I just built a new quad core AMD Opteron host, and was curious what frequency steppings were available for my processor. After a bit of poking around, I came across the cpufreq-utils package, which contains utilities to view and set processor frequency settings. To view the settings for the processors on a system, cpufreq-info can be run without any options (this assumes you installed the cpufreq-utils package):
$ cpufreq-info
cpufrequtils 005: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 0
hardware limits: 1.10 GHz - 2.20 GHz
available frequency steps: 2.20 GHz, 2.00 GHz, 1.70 GHz, 1.40 GHz, 1.10 GHz
available cpufreq governors: ondemand, userspace, performance
current policy: frequency should be within 1.10 GHz and 2.20 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1.10 GHz (asserted by call to hardware).
analyzing CPU 1:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 1
hardware limits: 1.10 GHz - 2.20 GHz
available frequency steps: 2.20 GHz, 2.00 GHz, 1.70 GHz, 1.40 GHz, 1.10 GHz
available cpufreq governors: ondemand, userspace, performance
current policy: frequency should be within 1.10 GHz and 2.20 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1.10 GHz (asserted by call to hardware).
analyzing CPU 2:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 2
hardware limits: 1.10 GHz - 2.20 GHz
available frequency steps: 2.20 GHz, 2.00 GHz, 1.70 GHz, 1.40 GHz, 1.10 GHz
available cpufreq governors: ondemand, userspace, performance
current policy: frequency should be within 1.10 GHz and 2.20 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1.10 GHz (asserted by call to hardware).
analyzing CPU 3:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 3
hardware limits: 1.10 GHz - 2.20 GHz
available frequency steps: 2.20 GHz, 2.00 GHz, 1.70 GHz, 1.40 GHz, 1.10 GHz
available cpufreq governors: ondemand, userspace, performance
current policy: frequency should be within 1.10 GHz and 2.20 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1.10 GHz (asserted by call to hardware).
The output above contains the list of frequency steppings:
available frequency steps: 2.20 GHz, 2.00 GHz, 1.70 GHz, 1.40 GHz, 1.10 GHz
As well as the current operating frequency of each core:
current CPU frequency is 1.10 GHz (asserted by call to hardware).
If you want to change the frequency profile for a processor, you can use the cpufreq-set utility. I should use this as an opportunity to pick up a kilowatt, and see how much energy is being saved by running the CPUs at 1.1GHZ instead of 2.2GHZ.