Linux 컀λμμ νμ΄μ§ κ΅μ²΄λ₯Ό λ€μ λ κ°μ§ λ°©λ² μ€ νλλ‘ μ²λ¦¬ν©λλ€.
- kswapd λ₯Ό ν΅ν Asynchronously,
- direct reclaim λ₯Ό ν΅ν Synchronously
νμ΄μ§ ν λΉ μκ°μ ν λΉ μμ μ zone ꡬ쑰체 μΈμ€ν΄μ€μ freelist λ©€λ²μ λ±λ‘νλ νμ΄μ§λ₯Ό μ¦μ λ°κ²λλ―λ‘ μν μ€μ΄λ μμ μ λ°λ‘ λ€μ μμ ν μ μμ΅λλ€. μ§κ°μ μ μΌλ‘ λΉμ¦λμ€ λ‘μ§(λ©λͺ¨λ¦¬ ν λΉν νλ‘κ·Έλ¨)μ μ€ννλ€κ³ λ΄ λλ€. (λ©λͺ¨λ¦¬ ν λΉ μ€λ²ν€λκ° κ±°μ μμ)
- kswapd λ₯Ό ν΅ν Asynchronously
νμ΄μ§ ν λΉμ μμ μ νμ€ν λ λ§μΉκΈ° μ§μ μ, μ¬μ© κ°λ₯ν νμ΄μ§κ° zone low watermark μ λλ¬νμ§ νμΈνκ³ λ§μ½ κ·Έλ λ€λ©΄ kswapd κ° κΉ¨μ΄λ©λλ€. Kswapd (Kswapd wake up API λ΄λΆμ kcompactd λ₯Ό κΉ¨μ°λ 루ν΄μ΄ μμ)λ μ νμ΄μ§ ν λΉμ μν 곡κ°μ λ§λ€κΈ° μν΄ μ κ±° ν λΉνμ± νμ΄μ§λ₯Ό μ°Ύλ μμ μΈ νμ΄μ§ μ€μΊμ μμν©λλ€. kswapd μμ μ ν΅ν΄ κΈ°μ‘΄ μμ μ μ§μ° μκ°μ΄ μμ΄ κ°μμ zone μ λ©€λ²μΈ freelist λͺ©λ‘μμ λ©λͺ¨λ¦¬λ₯Ό κ³μ ν λΉ ν μ μμ΅λλ€.
- direct reclaim λ₯Ό ν΅ν Synchronously
μ¬μ© κ°λ₯ν νμ΄μ§μ λν μμκ° kswapd μμ μ΄ κ³΅κΈ ν μ μλ μμ€μ μ΄κ³Όνλ©΄ νμ΄μ§ ν λΉμ΄ λ€λ₯΄κ² μλν©λλ€. ν λΉ μμ μμ μ¬μ© κ°λ₯ν νμ΄μ§ μκ° ν΄λΉ zone μ min watermark μ΄νμΈ κ²μ νμΈνλ©΄ μμ μ λ μ΄μ zone μ freelist λ©€λ² λͺ©λ‘μμ νμ΄μ§λ₯Ό κ°μ Έ μ€μ§ μμ΅λλ€. κ·Έ λμ μ, μμ μ kswapd μ λμΌν CPU-bound 루ν΄(κ° CPU μ ν΄λΉνλ zone μ νμ μ μΈ λ£¨ν΄λ€)μ μ€ννμ¬ νμ΄μ§λ₯Ό μ€μΊνκ³ μ κ±°νμ¬ μ체 ν λΉμ μΆ©μ‘±ν©λλ€. μ΄κ²μ direct reclaim (μ§μ νμ)λΌκ³ ν©λλ€.
μ§μ νμλ₯Ό μννλ λ° μμλλ μκ°μ μλΉ ν μ μμΌλ©°, μ’ μ’ μμ order0 ν λΉμ κ²½μ° μμ ~ μλ°± λ°λ¦¬ μ΄κ° κ±Έλ¦¬κ³ order9 κ±°λν νμ΄μ§ ν λΉμ κ²½μ° 0.5 μ΄ μ΄μμ΄ κ±Έλ¦½λλ€.
μ¬μ€, 리λ μ€ μμ€ν μμλ kswapd κ° μ€μ λ‘ νμνμ§ μμ΅λλ€.
μ§μ νμλ₯Ό λ°©μ§νμ¬ μ±λ₯μ μ΅μ ννκΈ° μν λͺ©μ μΌλ‘λ§ μ‘΄μ¬ν©λλ€.
λ©λͺ¨λ¦¬ λΆμ‘± νμμ΄ μ§μ νμλ₯Ό νΈλ¦¬κ±°νκΈ°μ μΆ©λΆνλ©΄ μμ€ν μμ μ€ν μ€μΈ λͺ¨λ μμ μμ λ°μν μ μμ΅λλ€. νλμ 곡격μ μΈ λ©λͺ¨λ¦¬ ν λΉ μμ μ μΆκ° λ©λͺ¨λ¦¬λ₯Ό κ±°μ ν λΉνμ§ μλ μκ·λͺ¨ μμ μ μ΄μ°¨μ μΈ λ°λ―Έμ§λ₯Ό μ€ μ μμ΅λλ€. nscd(name service cache daemon, DNS name κ²μ μμ μΊμ μν μ ν¨. DNS λ₯Ό μ§μμ μΌλ‘ μ¬μ©νλ€λ©΄ μ¬μ©νμ§ μμ λ, μ²΄κ° μμΌλ‘λ κ΅μ₯ν μλ μ°¨μ΄λ₯Ό λλ μ μμ) DNS Qeury λ₯Ό μΊμ±νκΈ° μν΄ λ©λͺ¨λ¦¬λ₯Ό ν λΉν λ μΆκ° μ§μ° μκ°μ 100msλ μ£Όμ νλ μν©μ κ³ λ €ν΄λ³΄λ©΄ μ΄λ¨κΉμ.
μ¬μλ νν(retry storms) -> κ³Όλμλ΅(overshoot)
mm: Support multiple kswapd threads per node - Buddy Lumpkin μμ λ°μ·ν¨
@ 2018-04-02 9:24