WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Trivadis TechEvent 2016 cgroups im Einsatz von Florian Feicht
1. BASLE BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA
HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
cgroups im Einsatz
Resource Management mal andersrum
Florian Feicht
Consultant
2. Florian Feicht
cgroups im Einsatz2 26.09.2016
Consultant and Trainer at Trivadis GmbH
Focus on:
– Oracle Database High Availability
– Database Administration
– Backup/Recovery
– Upgrades/Migrations
– Linux Administration
3. Agenda
cgroups im Einsatz3 26.09.2016
1. Resource Management
2. What are cgroups?
3. cgroups in init.d and systemd environments
4. Configuration
5. Implementation
6. Use Cases
7. Conclusion
7. What are cgroups?
cgroups im Einsatz7 26.09.2016
Linux Kernel feature (since 2.6.24) to limit resources
Process groups
Based on „everything is a file“ unix paradigma
sched_setaffinity Check cgroup
root Unlimited
cgroup
Check cpuset
configuration
mbind,
set_mempolicy
Check cgroup
root Unlimited
cgroups
Check cpuset
configuration
8. What are cgroups?
cgroups im Einsatz8 26.09.2016
Consists of resource controller
Base technology for Linux Container systems
Resource
Controller
cgroups
10. Structure
cgroups im Einsatz10 26.09.2016
Process orientated
No cgroup mount per default
libcgroup is available for administration
[root@doagdb-ol6 ~]# lssubsys -am
cpu
memory
devices
net_cls
cpuset,cpuacct,freezer,blkio,perf_event /mnt/cgroup
13. Structure
cgroups im Einsatz13 26.09.2016
Essential component
Moved from process to application layer
Administration with built-in systemd tools
libcgroup is deprecated
19. Manual configuration
cgroups im Einsatz19 26.09.2016
Limitation of resources
Creation of subgroups under depending resource controller
– „Files“ will be created automatically
mkdir /sys/fs/cgroup/cpuset/db1
echo 0 > /sys/fs/cgroup/cpuset/db1/cpuset.cpus
echo 0 > /sys/fs/cgroup/cpuset/db1/cpuset.mems
20. systemd
cgroups im Einsatz20 26.09.2016
Resource Controller:
– CPU
– Memory
– I/O
– Devices
Configuration using systemctl
systemctl set-property unit-name property=value
system.slice ora_db2.service ora_pmon_DB2
21. Monitoring I
cgroups im Einsatz21 26.09.2016
/proc/
ps
ps -ax --format args,cgroup
ora_pmon_DB2 1:name=systemd:/system.slice/oracle_db2.service
ora_psp0_DB2 1:name=systemd:/system.slice/oracle_db2.service
cat /proc/2911/cgroup
10:perf_event,blkio,freezer,cpuacct,cpuset:/tvd12cdb
23. cgroups im Einsatz23 26.09.2016
How to configure cgroups in Oracle
database environment
24. Database start in a cgroup
cgroups im Einsatz24 26.09.2016
cgexec
cgexec -g cpuset,cpuacct,blkio:tvd12cdb sqlplus / as sysdba
Redirect Shell
systemd Service
echo $$ > /mnt/cgroup/tvd12cdb/tasks
init.ora parameter
– Only with manual configuration
25. Configuration proposal by Oracle I
cgroups im Einsatz25 26.09.2016
MOS: Doc ID 1585184.1 and Doc ID 1928328.1
Provided configuration script: setup_processor_group.sh
– manual cgroup mount will be done
– Resource controller: cpuset
– Persistence is ensured
26. Configuration proposal by Oracle II
cgroups im Einsatz26 26.09.2016
Change of init.ora Parameter
– Restart necessary
Only on CDB level
Entry in alert.log
Instance started in processor group tvd12cdb (NUMA Nodes: 0
CPUs: 0)
ALTER SYSTEM SET processor_group_name='tvd12cdb' SCOPE=SPFILE;
27. Configuration proposal by Oracle III
cgroups im Einsatz27 26.09.2016
Advantages
– Easy naming
– Same functionality in init.d and
systemd environments
– cgroup usage entry in alert.log
– cpuset is enabled by default
– Permission for oracle user is set
Disadvantages
– cgroup necessary for DB startup
– Further resource controller have to be
mounted manually
– Check of the script is very limited
28. Further configuration possibilities
cgroups im Einsatz28 26.09.2016
systemd configuration
– No need to set init parameter
– No cpuset controller possible
Manual configuration
– Init parameter necessary
– Flexible resource controller
– Persistence has to be configured manually
29. Necessary DB parameter
cgroups im Einsatz29 26.09.2016
No special settings necessary
Ensure correct cgroup for server processes
One listener per database is recommended
– Check startup configuration
– DEDICATED_THROUGH_BROKER_listener_name
ALTER SYSTEM SET dedicated_server=TRUE;
31. Manual configuration: test database
cgroups im Einsatz31 26.09.2016
Requirements
– Usage of just one CPU
– Maximum of 10MB/s IO read und write
echo 1 > cpuset.cpus
echo "252:0 10485760" > blkio.throttle.read_bps_device
echo "252:0 10485760" > blkio.throttle.write_bps_device
32. Manual configuration: test database
cgroups im Einsatz32 26.09.2016
Comparison of AWR reports
– Unlimited:
– Limited:
33. systemd
cgroups im Einsatz33 26.09.2016
BlkIO controller has to be activated
Resource controller cpuset is not available
systemctl set-property oracle_db2.service CPUAccounting=TRUE
systemctl set-property oracle_db2.service CPUShares=500
systemctl set-property oracle_db2.service BlockIOAccounting=TRUE
systemctl set-property oracle_db2.service
BlockIOWriteBandwidth="/dev/sda 10M"
35. Use Cases
cgroups im Einsatz35 26.09.2016
Database cloud environments
– Service classes by defined cgroups
– Increased security level by device mapping
Test and production database on the same hardware
Resource management in Standard Edition
Assigment of CPU and memory segments (NUMA Systeme)
I/O limitation
39. Session Feedback – now
TechEvent September 201639 09.09.2016
Please use the Trivadis Events Mobile App to give session feedback
Use "My schedule" if you registered for this session
Otherwise use "Agenda" and the search function
If the mobile App does not work (or if you have a Windows Phone) use your Mobile
Browser
– URL: http://trivadis.quickmobileplatform.eu/
– Username: <your_loginname> (like svv)
– Password: sent by mail...