CentOS 7 ইসি 2 উদাহরণে THP এবং THP ডিফ্র্যাগ অক্ষম করুন


9

আমি একটি CentOS 7 ইসি 2 ইভেন্টে স্বচ্ছ_হেজপেজ (টিএইচপি) অক্ষম করতে চাই, যা ডিফল্টরূপে সক্ষম করা হয়েছে:

# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never

এই সেটিংটি ম্যানুয়ালি পরিবর্তন করা যেতে পারে:

# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]

... তবে পুনরায় বুট করার পরে পরিবর্তনগুলি হারিয়ে যায়।

আমি echo never [...]নির্দেশটি আমার rc.localএবং cloud.cfgফাইলগুলিতে রাখার চেষ্টা করেছি , তবে এটি কার্যকর হয়নি।

আমি transparent_hugepage=neverকার্নেল লাইনে সেটিংস সংযোজন করার চেষ্টা করেছি /etc/grub.conf( সেখানে বর্ণিত হিসাবে ), তবে এটি আরও ভাল কাজ করে না।

সুতরাং ... আমি কীভাবে একটি এডাব্লুএস ইসি 2 ইভেন্টে চলমান সেন্টস 7 এ টিএইচপি অক্ষম করতে পারি?

সম্পাদনা করুন: শিরোনাম পরিবর্তিত হয়েছে ... আমাকে টিএইচপি এবং টিএইচপি ডিফ্র্যাগ অক্ষম করা দরকার


স্বার্থের জন্য, আমি জিজ্ঞাসা করতে পারি আপনি কেন টিএইচপি অক্ষম করতে চান?
ক্যামেরন কের


পুনরায় বুট করার পরে আপনার ইনস্ট্যান্স কাজ করবে না যদি আপনি "/_cc/grub.conf এর কার্নেল লাইনে কখনও স্বচ্ছ_হেজপেজ যোগ করুন" এবং গ্রাব ফাইল থেকে এই লাইনটি সরিয়ে ফেলতে হবে। এই উদ্দেশ্যে আমরা নতুন একটিতে বিদ্যমান উদাহরণ সংযুক্ত করতে পারি এবং ফোল্ডারে পার্টিশন মাউন্ট করতে পারি
আর্টেম.বোরসোভ

উত্তর:


14

@ মাইকেল-হ্যাম্পটন দ্বারা নির্দেশিত হিসাবে সমাধানটি সুরে রয়েছে । জটিল অংশটি হ'ল ভিএম প্লাগইন কেবল /sys/kernel/mm/transparent_hugepage/enabledসেটিংটি কনফিগার করতে পারে ।

/sys/kernel/mm/transparent_hugepage/defragসেটিংসটিও অক্ষম করতে, আমাকে একটি স্ক্রিপ্ট তৈরি করতে হয়েছিল যা সূচনাতে প্রোফাইল দ্বারা ডাকা হত।

শেষে, সম্পূর্ণ সমাধানটি হ'ল:

পদক্ষেপ 1 : কাস্টম প্রোফাইল ধরে রাখতে ডিরেক্টরি তৈরি করুন:

mkdir /etc/tuned/custom

পদক্ষেপ 2 : প্রোফাইল তৈরি করুন /etc/tuned/custom/tuned.conf:

[main]
include=virtual-guest

[vm]
transparent_hugepages=never

[script]
script=script.sh

নোট করুন যে এই প্রোফাইলটি ভার্চুয়াল-গেস্টের উত্তরাধিকার সূত্রে প্রাপ্ত , যা আমার সক্রিয় প্রোফাইল ছিল, যা ভার্চুয়ালাইজড সার্ভারের (ইসি 2) জন্য উপযুক্ত দেখাচ্ছে। আপনি কমান্ডটি দিয়ে আপনার সক্রিয় প্রোফাইলটি দেখতে পারেন tuned-adm active। আপনি যদি কৌতূহলী হন তবে আপনি পূর্বনির্ধারিত প্রোফাইলগুলির বিষয়বস্তুটি পরীক্ষা করতে পারেন/usr/lib/tuned/

পদক্ষেপ 3 : স্ক্রিপ্ট তৈরি করুন /etc/tuned/custom/script.sh:

#!/bin/sh

. /usr/lib/tuned/functions

start() {
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    return 0
}

stop() {
    return 0
}

process $@

এটি সম্পাদনযোগ্য করুন:

sudo chmod 755 /etc/tuned/custom/script.sh

পদক্ষেপ 4 : নতুন প্রোফাইল সক্রিয় করুন:

tuned-adm profile custom

এখন আপনার পাওয়া উচিত:

# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]

এটি পুনরায় বুট করার পরেও স্থির থাকবে।


আমরা দেখেছি যে এটি একটি এডাব্লুএস রেডহাট 7.4 ভিএম-এ কাজ করেছে। ধন্যবাদ!
জন সাম্পসন

2

গ্রাব কমান্ড লাইনটি সেট করার পাশাপাশি আপনাকে টিউনযুক্ত কনফিগার করতে হবে। তবে আপনি যে নির্দেশনাগুলি লিঙ্ক করেছেন সেগুলি ব্যবহার না করে, কারণ এগুলি এতগুলি ত্রুটিপূর্ণ কারণ তারা সমস্ত ব্যাখ্যা করতে আধা দিন সময় লাগবে।

একটি কাস্টম সুরযুক্ত প্রোফাইল তৈরি করুন (যা আমি কল করব custom), এবং তারপরে প্রোফাইলটি সেট করুন। আপনি এটি কোনও বিদ্যমান প্রোফাইলের উপর ভিত্তি করে তৈরি করবেন, যেমন virtual-guestআপনি যদি ভার্চুয়াল মেশিনে চালাচ্ছেন (ইসি 2 অবশ্যই হয়), অথবা throughput-performanceআপনি যদি কোনও শারীরিক মেশিনে আছেন।

কাস্টম প্রোফাইল ধরে রাখতে ডিরেক্টরি তৈরি করুন:

mkdir /etc/tuned/custom

কাস্টম প্রোফাইল তৈরি করুন /etc/tuned/custom/tuned.conf, উদাহরণস্বরূপ:

[main]
include=virtual-guest

[vm]
transparent_hugepages=never

এখন প্রোফাইল সেট করুন:

tuned-adm profile custom

ত্রুটি পূর্ণ এই নির্দেশাবলী? বুঝাতে কি অর্ধেক দিন লাগবে? এটাই আমি বোঝার চেষ্টা করছি।
ভেকেরেল

আমি আপনার উত্তরটি বুঝতে পারি না। আমাকে গ্রাব কনফিগার করতে এবং সম্পূর্ণরূপে টিউন ব্যবহার করতে হবে কেন ?
ভেকেরেল

1
কারণ এটা কার্নেল কনফিগারেশনের ডিফল্টভাবে চালু আছে এবং টিউন কনফিগারেশন ডিফল্টরূপে উপর। এটি পুরোপুরি কার্যকর হওয়ার জন্য আপনাকে উভয়কেই পরিবর্তন করতে হবে।
মাইকেল হ্যাম্পটন

1
সুরযুক্ত কনফিগারেশন যথেষ্ট মনে হচ্ছে ... আমাকে গ্রাব কনফিগারেশন পরিবর্তন করতে হবে না। বিটিডাব্লু, আরও কি টিএইচপি ডিফ্র্যাগ অক্ষম করার জন্য সুরযুক্ত সেটিং আছে?
vcarel

@vcarel এটি প্রয়োজনীয় নয় কারণ স্বচ্ছ বিশাল পাতাগুলি ইতিমধ্যে অক্ষম!
মাইকেল হ্যাম্পটন

1

এটিও চেষ্টা করে দেখুন

ন্যানো /etc/init.d/disable- ট্রান্সপারেন্ট- হুগেজ

#!/bin/sh
### BEGIN INIT INFO
# Provides:          disable-transparent-hugepages
# Required-Start:    $local_fs
# Required-Stop:
# X-Start-Before:    mongod mongodb-mms-automation-agent
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Disable Linux transparent huge pages
# Description:       Disable Linux transparent huge pages, to improve
#                    database performance.
### END INIT INFO

case $1 in
  start)
    if [ -d /sys/kernel/mm/transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/transparent_hugepage
    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
      thp_path=/sys/kernel/mm/redhat_transparent_hugepage
    else
      return 0
    fi

    echo 'never' > ${thp_path}/enabled
    echo 'never' > ${thp_path}/defrag

    unset thp_path
    ;;
esac

sudo chmod 755 /etc/init.d/disable-Transparent-hugepages

sudo chkconfig - অ্যাড-ডিসএবল করুন-স্বচ্ছ-বিশাল পাতাগুলি


0

আপনি /etc/rc.local ফাইল সম্পাদনা করতে পারেন এবং নিম্নলিখিত ফাইলটি এই আদেশটি যুক্ত করতে পারেন:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

এবং chmod +x /etc/rc.d/rc.localস্ক্রিপ্ট বুট চলাকালীন কার্যকর হবে তা নিশ্চিত করতে চালান । অ্যামাজন লিনাক্স 2 এ পরীক্ষিত।


-2

সম্পাদনা করুন: উপরের উত্তরটি ভুল , কারণ এই মুহুর্তে স্বচ্ছ বিশাল পৃষ্ঠার নোব সিসটেল থেকে নিখোঁজ রয়েছে। গোলমাল জন্য দুঃখিত।


আপনি পছন্দসই মান রাখতে পারেন /etc/sysctl.conf

Sysctl.conf (5) ম্যান পৃষ্ঠা থেকে:

SYSCTL.CONF (5) ফাইল ফর্ম্যাটগুলি SYSCTL.CONF (5)

NAME এর
       sysctl.conf - sysctl প্রিললোড / কনফিগারেশন ফাইল

বর্ণনা
       sysctl.conf একটি সরল ফাইল যা সিস্টেপ্টাল মানগুলি পড়তে এবং সিস্টেমেট দ্বারা সেট করা থাকে। বাক্য গঠনটি কেবল নিম্নরূপ:

              # মন্তব্য
              ; মন্তব্য

              টোকেন = মান

       নোট করুন যে ফাঁকা রেখাগুলি উপেক্ষা করা হবে এবং একটি টোকেন বা মান অগ্রাহ্য করার আগে এবং পরে সাদা স্থান স্পেসিপ করা হবে, যদিও কোনও মানের মধ্যে শ্বেতস্পেস থাকতে পারে। যে লাইনগুলি একটি # বা দিয়ে শুরু হয়; বিবেচিত
       মন্তব্য এবং উপেক্ষা।

EXAMPLE টি
              # sysctl.conf নমুনা
              #
                কার্নেল.ডোমনেম = উদাহরণ.com
              ; এটির একটি স্পেস রয়েছে যা সিস্টেমে লেখা হবে!
                কার্নেল.মোডপ্রোব = / এসবিন / মোড প্রোব

1
এটি সিসেক্টল ব্যবহার করে কনফিগার করা যায় না।
মাইকেল হ্যাম্পটন

কেন? আমি প্রায়শই সিস্টেস্টল.কনফ ব্যবহার করে টুইঙ্ক / সিস / জানব ... আমি এখানে কিছু মিস করছি? সম্পাদনা: কিছু মনে করবেন না, আমি এটি আরএইচএল ডকুমেন্টেশনে পেয়েছি। আমাকে ইশারা করার জন্য ধন্যবাদ;)
shodanshok
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.