Disable a few cores when you want to save power.

If you have a lot of CPU power and working on battery. If you do not need that much of power and would like to rather save some battery power by disabling some cpus then you can use the below script. This script disables cpus from 4 to 7. You can change the number in the for loop. You would need the sudo to be setup or remove sudo and run the script as root. The script will show you the currently active cpu’s before and after disabling the CPU’s.

If you want to disable to cpus from the grub itself then you can add the below parameter in grub.cfg or grub2.cfg in the vmlinuz line:

1
maxcpus=4

Here is the script:

#!/bin/bash -
#===============================================================================
#
#          FILE: disablecpu.sh
#
#         USAGE: ./disablecpu.sh
#
#   DESCRIPTION:
#
#       OPTIONS: ---
#  REQUIREMENTS: ---
#          BUGS: ---
#         NOTES: ---
#        AUTHOR: Amit Agarwal (aka)
#      REVISION:  ---
#===============================================================================

#set -o nounset                              # Treat unset variables as an error
cat /proc/cpuinfo|grep cores|wc -l
for i in {4..7}
do
    sudo sh -c "echo 0 > /sys/devices/system/cpu/cpu$i/online"
done
cat /proc/cpuinfo|grep cores|wc -l
Enhanced by Zemanta

Music players on Linux – the poor mans random song player.

If you have more applications running on your system then your system can handle them then you know what I mean when I say that the Music Players take a lot of CPU. Otherwise harmless, but when you are doing too many things, then lot of times you would feel that probably stopping the Music player might help. But then Linux is all about alternatives. So, there is a command line player called mpg123, which does not use so much CPU. But what about playlist ūüôā

playlist="/tmp/playlist"
(find . -type f |sort -R) > $playlist
trap exit INT TERM EXIT 1 2 3 15
while read line
do
    mpg123 "$line"
done < $playlist

Just copy this to somewhere as .sh file or just type this in your directory of choice and it will play all the music in that folder in random order without hogging your CPU.

Enhanced by Zemanta

Benchmarking the system/CPU performance

Have you ever wanted to have a quick check on your CPU performance. I know that lot of people will say that this is not the right way to do this, but here is something that you can use to check the CPU speed.

#!/bin/bash -
#===============================================================================
#
#          FILE:  benchmark.sh
#
#         USAGE:  ./benchmark.sh
#
#   DESCRIPTION:  Benchmark the CPU
#
#       OPTIONS:  ---
#  REQUIREMENTS:  ---
#          BUGS:  ---
#         NOTES:  ---
#        AUTHOR: Amit Agarwal (aka), amit.agarwal@roamware.com
#       COMPANY: Roamware India Pvt Ltd
#       CREATED: 09/21/2011 11:46:03 AM IST
# Last modified: Wed Sep 21, 2011  12:22PM
#      REVISION:  ---
#===============================================================================

add ()
{
    COUNTER=0
    exec 2>&1
    time=$(exec 2>&1;(time while [[  $COUNTER -lt 100000 ]]; do ((COUNTER++)) \
        ; done))
    echo "Time for 100000 additions is "$time
}	# ----------  end of function add  ----------
mul ()
{
    COUNTER=0
    test=2
    exec 2>&1
    time=$(exec 2>&1;(time while [[  $COUNTER -lt 100000 ]]; do ((COUNTER++)) \
        ; ((test=test*2));done))
    echo "Time for 100000 mul is "$time
}	# ----------  end of function add  ----------
div ()
{
    COUNTER=0
    test=1000000000000
    exec 2>&1
    time=$(exec 2>&1;(time while [[  $COUNTER -lt 100000 ]]; do ((COUNTER++)) \
        ; (( test=test/2)); done)|tr -d '\n')
    echo "Time for 100000 divisions is "${time}
}	# ----------  end of function add  ----------

time add
time mul
time div

And here is the output :

Time for 100000 additions is  real 0m1.166s user 0m1.089s sys 0m0.074s

real    0m1.168s
user    0m1.089s
sys    0m0.074s
Time for 100000 mul is  real 0m1.862s user 0m1.778s sys 0m0.082s

real    0m1.863s
user    0m1.779s
sys    0m0.082s
Time for 100000 divisions is  real 0m1.916s user 0m1.825s sys 0m0.089s

real    0m1.918s
user    0m1.825s
sys    0m0.090s

Enhanced by Zemanta